お世話になります。
CentOS6.4を使ってPHPアプリを動かしています。
結構メモリを消費するアプリなので、
使っているうちにOutOfMemoryになることがあります。
※正常終了する場合もあります。
正常に終了しようがOutOfMemoryになろうが、
大量にメモリを確保した後は、そのまま解放されていないように見えます。
例えば、freeコマンドで見たときにに usedが減りません。
【例】
アプリケーション実行前
# apachectl restart
# free
total used free shared buffers cached
Mem: 16334660 472788 15861872 0 105700 120124
-/+ buffers/cache: 246964 16087696
Swap: 2047992 0 2047992
ここでアプリケーション実行し正常に終了。
# free
total used free shared buffers cached
Mem: 16334660 1754276 14580384 0 106836 120484
-/+ buffers/cache: 1526956 14807704
Swap: 2047992 0 2047992
apacheを再起動すればusedは減るのですが、
他にusedになっているメモリを開放する方法はあるのでしょうか?
また、どのようなメカニズムで解放されないのか教えていただけるとありがたいです。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
>apacheを再起動すればusedは減るのですが、
>他にusedになっているメモリを開放する方法はあるのでしょうか?
ないです。
>また、どのようなメカニズムで解放されないのか教えていただけるとありがたいです。
多くの場合、プログラムがOSから借り受けたメモリはプログラムが終了するまでOSには返さず、
再度必要になったときのために備えておきます。
この回答への補足
そうですね。
OutOfMemoryで異常終了したときにメモリが解放されないという点についてはご説明のとおりで納得なのですが、正常終了しているケースでも解放されないとい点で、疑問を感じたものですから質問を投稿しました。
No.4
- 回答日時:
>OutOfMemoryで異常終了したときにメモリが解放されないという点についてはご説明のとおりで納得なのですが、正常終了しているケースでも解放されないとい点で、疑問を感じたものですから質問を投稿しました。
私が#2で書いた「プログラムの終了」というのは、今回の件でいえばphpモジュールを組み込んでいるapacheの事です。
あなたのいう「phpアプリ」の事ではないです。
phpアプリを動かしているプログラムといえばわかります?
この回答への補足
理解しました。
ついでに言えば、前回のご回答がヒントになりました。
apacheのMPM関係のパラメータをデフォルトにしていたのですが、apacheのプロセスが残る場合があるようですね。
現在は以下のとおり極端に小さい値で試行していますが、、
とりあえずメモリは解放されるようになりました。
<IfModule prefork.c>
StartServers 1
MinSpareServers 1
MaxSpareServers 1
ServerLimit 1
MaxClients 1
MaxRequestsPerChild 1
</ifModule>
No.3
- 回答日時:
Linuxでは空きメモリをページキャッシュに使用します。
ページキャッシュとは、ファイルI/O を高速に行うため、最近参照
したファイルの内容のメモリ上へのキャッシュです。ページキャッ
シュはメモリ領域を専有しますが、他でメモリ必要になった場合は
開放される領域なので、空き領域として計上することができます。
ですから、厳密ではありませんが、freeを使ってメモリ使用量を算
出したい場合は、usedではなく、total - free - buffers - cached
で算出する必要があります。
ところで下記で強制的にページキャッシュを開放できますが、通常
はこれをやるメリットはありません。
# echo 1 > /proc/sys/vm/drop_caches
この回答への補足
なるほどです。
たしかに
-/+ buffers/cache: 1527988 14806672
となっていますね。
また、教えていただいた方法でページキャッシュを開放してみましたが、
元のキャッシュ容量が大きくないので、
格段に空きが増えるわけではないですね。
No.1
- 回答日時:
PHPはapacheのモジュールでうごいているのでしょうか?
またtopで観察していても変化はないでしょうか?
この回答への補足
PHPはモジュール版です。
LoadModule php5_module modules/libphp5.so
topで見ていても変化はありません。
質問の投稿から1時間経過しても以下のとおりです。
top - 14:09:42 up 22:25, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 126 total, 1 running, 125 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.2%sy, 0.0%ni, 99.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 16334660k total, 1756508k used, 14578152k free, 108768k buffers
Swap: 2047992k total, 0k used, 2047992k free, 120696k cached
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CPU・メモリ・マザーボード Windows11アップデート後の不具合(メモリ不足)について 9 2023/01/04 11:34
- Visual Basic(VBA) vba メモリ節約 3 2022/09/16 21:45
- 英語 Since there is no change in external dimensions, t 1 2023/04/03 22:42
- TOEFL・TOEIC・英語検定 辞書における do とdoing はどういう用法、意味ですか? 4 2022/06/12 17:49
- Firefox(ファイヤーフォックス) firefoxが頻繁に停止する 1 2023/01/09 10:26
- 英語 Collagens are the most common type used. この英文の文法的解 2 2022/07/28 10:08
- Mac OS MacのFinderでmovファイルのサムネイルが表示されないのと、クイックルックが出来ません。 こ 3 2023/07/24 18:40
- CPU・メモリ・マザーボード Windows10 64bitパソコンのメモリ 4GBから8GBへ増設 11 2023/01/25 18:20
- Outlook(アウトルック) outlook メモリ不足 1 2022/05/31 10:16
- 英語 並べるのを避けるべき似た単語の判断基準について 5 2022/05/30 09:17
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・ハマっている「お菓子」を教えて!
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
メモリの「コミット済み」の意...
-
最先端のCPUを詰んだAndroidス...
-
Windows98SE ・Meの動作「上限...
-
backing storeって何ですか?
-
WindowsアップデートでExcelが...
-
MacとWinのメモリの違いについて
-
会計ソフトJDL macで使いたい W...
-
mac book proにアプリケーショ...
-
Mac でDTM する際 Mac book air...
-
プロファイルエラーについて
-
LAN内でのIPアドレスの重複につ...
-
メモリが"written"になることは...
-
\\Device\\Harddisk1\\DR1 でコ...
-
RECOVERY(D:)ってなんですか?
-
FORMが開いているかどうかの確...
-
NECノートPC 初期化方法を教え...
-
このエラーはどういうことでし...
-
Win10の「スタートアップ設定」...
-
メビウスのリカバリ方法を早急...
-
パソコン起動時に画面が4分割で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
メモリの「コミット済み」の意...
-
Windows98SE ・Meの動作「上限...
-
win10 仮想メモリ
-
最先端のCPUを詰んだAndroidス...
-
backing storeって何ですか?
-
vmstatで、メモリ使用率を計算する
-
MacとWinのメモリの違いについて
-
会計ソフトJDL macで使いたい W...
-
「タスクマネージャ」で「イメ...
-
実装メモリとタスクマネージャ...
-
Windows NT 4.0 のシステム要件
-
Windows XPの32ビット版と6...
-
AMDCPUのfx6300とメモリ8GB+8GB...
-
メモリ割り当ての増やし方
-
ubuntuで、ブラウザが黒画面
-
Mac でDTM する際 Mac book air...
-
WindowsアップデートでExcelが...
-
mac book proにアプリケーショ...
-
メモリのOS管理外領域
-
Finderが暴走してCPUを独占
おすすめ情報