• ベストアンサー

Linuxのメモリの関して

質問1: freeというコマンドで見たところ、freeが少ないで、大半がcachedとして 使われているそうです。 このcachedに使われたメモリはどんなコマンドで解放することできるでしょうか? 質問2: topというコマンドで見たところ、httpdというプロセスが沢山のメモリ使っている(ひとつのhttpdプロセスは140MBぐらい)そうです、このhttpdはApacheのプロセスで、どうしてこんなに沢山メモリ使うでしょうか? 以上、どうぞよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

同じプロセスがたくさんあっても、メモリをシェアしているだけだと思われるので、問題ないと思います。 本当に足りない場合はswapを利用すると思いますし。 Apacheは立ち上げるサーバ数を加減できるので、ご自分の環境に合わせてチューニングされては如何でしょうか。 多分、最低でも8つ立ち上げるというのが初期値だと思います。 使用しているメモリ量についても、チューニング可能と思いますよ。(不要なモジュールを読み込ませないとか)

参考URL:
http://www.apache.jp/

その他の回答 (2)

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

1)#1の方の回答どおり、cache や buffer のサイズは自動的に最適化されますので、何もする必要はありません。free は「何にも使われていない無駄になっているメモリ」ということで、少ないほうがいいです。ただし、瞬間的(ミリ秒単位)なアプリ起動レスポンスタイムが必要なケースを除く。cacheは他のプログラムがメモリを必要としたら単に領域を開放するだけですのでほとんどオーバーヘッドは無いはずです。 2)SIZEの単位はキロバイトですが、140MBということは6桁の数字が表示されているということですか?それは確かに大きいですね。手元の2台だと4桁ですね。たくさんのモジュールを組み込んだからではないでしょうか?ミドルソフトが動いているとか。 また、SIZE(仮想メモリ)が大きくてもRSS(実メモリ)が小さければ他のプロセスへの影響は少ないと思います。

iandyouand
質問者

補足

1)の方よくわかりました。どうも有難うございました。 2)のほうですが、SIZEは140Mという表示です。そしてRSSも同じぐらい で、しかもこういうようなhttpdのプロセスが十個ぐらいあります、メモリ 不足が心配です。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

1の方だけ: この cache は, カーネルが誰も使っていないメモリをファイルキャッシュとして使っているだけです. なので, 特に解放するコマンドとかがあるわけではなくカーネルが「おっと, メモリが足りないからファイルキャッシュで使っていたメモリをそっちに回さないと」と思ったら解放されます.

iandyouand
質問者

補足

cacheの内容を見えますでしょうか? あるいは誰が使っているかわかりますでしょうか?

関連するQ&A