You should typically size your swap space to approximately 2x main memory. If you do not have a lot of RAM, though, you will generally want a
lot more swap. It is not recommended that you configure any less than
256M of swap on a system and you should keep in mind future memory expansion when sizing the swap partition. The kernel's VM paging algorithms
are tuned to perform best when there is at least 2x swap versus main memory.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main() {
size_t s = 1024 * 1024 * 256; int *p; int i, j;
while (1) {
/* p = calloc(s, sizeof(int)); */
p = malloc(s * sizeof(int));
for (i = 0; i < 10; i++) {
p[j = rand() % s] = i;
if (i == 9) fprintf(stderr, "%d\n", j);
}
}
return 0; }
4GB以上のメモリ使いたいですか (スコア:1)
Re:4GB以上のメモリ使いたいですか (スコア:1, 参考になる)
squidで700Mぐらい使用するマシンはメモリ1.5G,SWAP 3G
Re:4GB以上のメモリ使いたいですか (スコア:0)
そしてその構成が適用するシステムに合致しているか、
きちんと説明できます?
# 慣習で…とかは無しでお願いします
Re:4GB以上のメモリ使いたいですか (スコア:3, 参考になる)
ということで2倍程度の時に最良の性能を示すらしいです。
Re:4GB以上のメモリ使いたいですか (スコア:3, 参考になる)
ってことで、私はメインメモリ=スワップ程度が適当かな、と同じ量を割り当てています。
まあ、実質的に動いているプロセスがスワップを始めるとダメダメですが、重くなった際に待機プロセスがスワップアウトされるくらいというのが目安と思います。
の
Re:4GB以上のメモリ使いたいですか (スコア:3, 参考になる)
メモリ割り当て時に同じ大きさのスワップを同時に取るというのは, むしろMachVMよりも前の物だったように記憶しているのですが. MachVM以降mmap等も含めてスワップと実メモリが統合された設計になったような...
実際のところ業務で使うサーバでは, スワップしたらシステムサイジング失敗と考えてよいぐらいなので, 統合VMをサポートしているOSではスワップ領域は完全に飾りなのですが, 商用UNIXの中では唯一HP-UXが統合VM化されていないので無駄なスワップ領域を食うんですよね. 逆にFreeBSDではカーネルパラメータで明示的にスワップを禁止することも可能(組み込みに近い用途を考慮しているのかな?)なのですが, このことはmalloc等でメモリが確保できないこともありうるということなので, ユーザプログラム側もちゃんとそれに対処していないと有効に使えませんが.
個人的にはFreeBSDでのサーバ構築は, 基本はon memoryで設計して, スワップ領域は将来のメモリ増設も含めて主記憶と同じ容量とし, 万一の時のスワップと障害時のメモリダンプ領域としています.
HP-UX(オフトピック) (スコア:1)
この解決方法が本質的な改善であるかどうかは...わからんです。
Re:4GB以上のメモリ使いたいですか (スコア:2, 参考になる)
tuning(7)を書いた [freebsd.org]のはFreeBSD 4.xのVMデザイン [freebsd.org]に大きな貢献をしているMatthew Dillonです。Mach VMのことは考慮されていません。
例えばスワップ領域の割り当てが馬鹿だとスワップイン/アウトの際にたくさんシークしなくてはいけないわけですが、そうならないよう効率的に行うには、物理メモリの2倍が目安ということのようです。
relnotes - pae(4) - tuning(7) (スコア:1)
そういうことでした。 問い [srad.jp]の回答になったでしょうか。
マニュアルを読もう (スコア:0)
Re:4GB以上のメモリ使いたいですか (スコア:0)
その構成が特定の条件で良い性能を発揮するとは限らないのでは?
FreeBSD4.8 + squid の proxy が激しい pagein/out で固まるので AC
Re:4GB以上のメモリ使いたいですか (スコア:0)
> 用途によって違うのでいちがいには言えないと思いますが、
が読めないですか?
話を盛り上げたいなら、特定の条件てのを何か出して考察してみせてよ。
Re:4GB以上のメモリ使いたいですか (スコア:0)
大元は用途に対する物理メモリ搭載量の問いかけなので、
物理メモリとスワップサイズの比率が話題となっているこのインデントでは、
引き合いに出すのは不適切。
# スワップに関する性能低下は、十分な物理メモリを積めで話題は終わるし。
SWAPの大きさ (スコア:0)
Re:SWAPの大きさ (スコア:1, 参考になる)
>足りなくなって始めてSWAPを確保しに行きます。だから、
>LINUXは最低16MB程度のSWAPがあれば、それ以上はあっても
>なくてもどうでもいいと書いてあるようです。
そのかわり、SWAPが十分確保されてないと、プロセスがメモリの
新規割り当てを要求した時点でそのプロセスは落とされていき
ますがなにか?
Re:SWAPの大きさ (スコア:0)
FreeBSDはすごいねぇー。
Re:SWAPの大きさ (スコア:1)
OSカーネルは本当に落ちません. 新しいプロセスは上がりませんが. またメモリが足りなくなることを想定していないプロセスは落ちますが, そうなってもOSカーネルは動き続けます.
で, それに対してLinuxは昔(2.0カーネルのころだったか?)スワップ領域を含めたメモリ空間が確保されないとカーネルごと落ちると聞いたことがあって, Linuxダメじゃんと思ったことがありました. まあ設計思想の問題だとは思うのですが, 最近の2.4や2.6カーネルってどうなっているんでしょうね?
Re:SWAPの大きさ (スコア:1)
2.4(RedHat9だから2.4.20)では落ちはしないけど、プロセスがCPUを食ったままハングアップして、カーネルも反応しなくなって、結局リセットするしかなくなりました。
アプリがちゃんとmallocの返り値見てエラー処理してれば、問題ないとは思うんですけど。
ちなみに使ってたアプリはcinepaint0.18です。ファイル閉じるときにメモリ開放してないバグあって、何枚も開いて閉じてしてるとスワップ食いつぶしてハングアップ。
今はパッチ当てて使ってるので、2.6では未確認です。
Re:SWAPの大きさ (スコア:1, すばらしい洞察)
Re:SWAPの大きさ (スコア:0)
Re:SWAPの大きさ (スコア:1)
>ディスクI/Oに忙がしくて反応が遅れてる
という意味で、
>>プロセスがCPUを食ったままハングアップして、カーネルも反応しなくなって
と書いたのを理解してもらえないんじゃ、仕方ないでしょ。
反応遅すぎて、5分以上待っても応答が帰ってこないんだもん、リセットするわい。そっちの方が速いもん。
Re:SWAPの大きさ (スコア:0)
そんな馬鹿な書き方をする方が悪いんです。反応が遅れるのとカーネルが「ハングアップ」するのとはまったく別のことですから。このコメント [srad.jp]にもあるように、このスレッドではスワップ領域の寡多によって
という話をしていたのに、いきなり「カー
Re:SWAPの大きさ (スコア:1)
プロセスがハングアップとは書いたけど、カーネルがハングアップとはどこにも書かなかったよ。
カーネルが反応しなくなった、とは書いたけど。
>日本語は不自由だし技術的な話も頓珍漢
そりゃあなたでしょ(苦笑)
Re:SWAPの大きさ (スコア:0)
そういう見苦しい屁理屈はやめたらどうですか?実際あなたは このコメント [srad.jp] で
ってはっきり書いてます。実際、プロセスはCPUなんかこれっぽっちも食ってない、単にI/Oの終了を待ってるだけ。一方、カーネルから見た場合、いちユーザープロセスにCPUを食われてしまって正常に資源のスケジューリングと管理ができなくなった状態がまさしく「ハングアップ」(OSのカーネルがしなければいけな
Re:SWAPの大きさ (スコア:1)
>カーネルもきちんと動いている
だから、「落ちはしないけど」って、その前に書いてあるでしょ?
「カーネルも反応しなくなった」というのは、確かに言い過ぎで「Xが反応しなくなった」と書くべきでしたね。この点は謝ります。
>SilberschatzでもASTでも見ればよい
はあ。Xが固まって動かない状態でですか。外からリモートでならできるんでしょうけど、私は普段は外部からアクセスするためのデーモンは全部止めているもので。
Re:SWAPの大きさ (スコア:0)
> はあ。Xが固まって動かない状態でですか。
> 外からリモートでならできるんでしょうけど、
> 私は普段は外部からアクセスするためのデーモンは全部止めているもので。
Silberschatz
オペレーティングシステムの概念〈上〉 [amazon.co.jp]
オペレーティングシステムの概念〈下〉 [amazon.co.jp]
まぁ、↓の方がお勧め。
Operating System Concepts [bell-labs.com]
AST 先生は、とりあえずここら辺?
オペレーティングシステム [amazon.co.jp]
Re:SWAPの大きさ (スコア:0)
「はあ」じゃないよ。自分でも
と書いてるようにカーネルが動いていたことは認めてるんだろ?カーネルが動いてたんなら、
なんて言いぐさは頓珍漢極まりないのがわかんないのか。カーネルが動いてるなら、いちユーザープロセスが「CPU食ったまま」になることなんかあり得ないんだよ。本当にOSのこと何もわかってないんだなあ。その程度の知識しかない
Re:SWAPの大きさ (スコア:1)
>Silberschatz [amazon.com]やAST [amazon.com]を知らないってのもかなり酷い
すみませんねぇ、話の流れからてっきりプロセスの状態を監視or管理するツールでそういう名前のものがあるのか思い込んでしまったもので。
教科書読んで勉強しろって意味でしたか。
>カーネルが動いてるなら、いちユーザープロセスが「CPU食ったまま」になることなんかあり得ない
だから「プロセスがハングアップ」するということは、「カーネルがハングアップ」することを意味するということですか。ハングアップという言葉の意味がそういう意味だとは知りませんでした。
Re:SWAPの大きさ (スコア:0)