- ベストアンサー
Linuxのメモリの関して
質問1: freeというコマンドで見たところ、freeが少ないで、大半がcachedとして 使われているそうです。 このcachedに使われたメモリはどんなコマンドで解放することできるでしょうか? 質問2: topというコマンドで見たところ、httpdというプロセスが沢山のメモリ使っている(ひとつのhttpdプロセスは140MBぐらい)そうです、このhttpdはApacheのプロセスで、どうしてこんなに沢山メモリ使うでしょうか? 以上、どうぞよろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
同じプロセスがたくさんあっても、メモリをシェアしているだけだと思われるので、問題ないと思います。 本当に足りない場合はswapを利用すると思いますし。 Apacheは立ち上げるサーバ数を加減できるので、ご自分の環境に合わせてチューニングされては如何でしょうか。 多分、最低でも8つ立ち上げるというのが初期値だと思います。 使用しているメモリ量についても、チューニング可能と思いますよ。(不要なモジュールを読み込ませないとか)
- 参考URL:
- http://www.apache.jp/
その他の回答 (2)
- notnot
- ベストアンサー率47% (4900/10358)
1)#1の方の回答どおり、cache や buffer のサイズは自動的に最適化されますので、何もする必要はありません。free は「何にも使われていない無駄になっているメモリ」ということで、少ないほうがいいです。ただし、瞬間的(ミリ秒単位)なアプリ起動レスポンスタイムが必要なケースを除く。cacheは他のプログラムがメモリを必要としたら単に領域を開放するだけですのでほとんどオーバーヘッドは無いはずです。 2)SIZEの単位はキロバイトですが、140MBということは6桁の数字が表示されているということですか?それは確かに大きいですね。手元の2台だと4桁ですね。たくさんのモジュールを組み込んだからではないでしょうか?ミドルソフトが動いているとか。 また、SIZE(仮想メモリ)が大きくてもRSS(実メモリ)が小さければ他のプロセスへの影響は少ないと思います。
- Tacosan
- ベストアンサー率23% (3656/15482)
1の方だけ: この cache は, カーネルが誰も使っていないメモリをファイルキャッシュとして使っているだけです. なので, 特に解放するコマンドとかがあるわけではなくカーネルが「おっと, メモリが足りないからファイルキャッシュで使っていたメモリをそっちに回さないと」と思ったら解放されます.
補足
cacheの内容を見えますでしょうか? あるいは誰が使っているかわかりますでしょうか?
補足
1)の方よくわかりました。どうも有難うございました。 2)のほうですが、SIZEは140Mという表示です。そしてRSSも同じぐらい で、しかもこういうようなhttpdのプロセスが十個ぐらいあります、メモリ 不足が心配です。