財務モデリングを実行する重いDrupal Webサイトを運営しています。私たちは、Apacheプロセスの数が安定したままで、Apacheが使用するメモリが時間外に増加するという事実を考えると、ある種のメモリリークに直面しているようです。
/etc/init.d/httpd reload
メモリ使用量が低下するため、apache / PHPからメモリの問題が発生していることがわかります(上記のスクリーンショットおよびCLI出力を参照)。
httpdのリロード前
$無料 キャッシュされた使用済み共有バッファの合計 Mem:49447692 45926468 3521224 0 191100 22609728 -/ +バッファ/キャッシュ:23125640 26322052 スワップ:2097144 536552 1560592
httpdのリロード後
$無料 キャッシュされた使用済み共有バッファの合計 Mem:49447692 28905752 20541940 0 191360 22598428 -/ +バッファ/キャッシュ:6115964 43331728 スワップ:2097144 536552 1560592
各Apacheスレッドにはmemory_limit
、512MBのPHPが割り当てられます。これは、高いメモリ使用量が要求の少ないボリュームを悪化させることを説明し、max_execution_time
120秒のスレッドは実行に時間がかかるスレッドを終了するため、メモリ使用量の継続的な増加を防ぐ必要があります見て。
Q:このメモリリークの原因を調査するにはどうすればよいですか?
理想的には、開発チームを煩わせることなくシステムで実行できるトラブルシューティング手順を探しています。
追加情報:
OS: RHEL 5.6
PHP: 5.3
Drupal: 6.x
MySQL: 5.6
参考までに、私たちは個別に調査しているスワッピングの問題を認識しており、スワッピングが発生する前に観察したメモリリークとは何の関係もありません。
memcached
ライブラリを使用しています。memcacheの管理ページに基づいてmemcache.php
確認できるのは、使用中の5GB
memcacheに割り当てられて3.3GB
いることだけです。ここで私たちをさらに支援できれば素晴らしいと思います。
memcached
デーモン自体はおそらく問題ありません。メモリをリークする場合としない場合があるのは、PHP memcacheライブラリです(したがって、Apacheプロセスのメモリ使用量が増加します)。私の問題は約1〜2年前だったので、その後は問題が修正された可能性があります。とにかく、memcachedが必須でない場合は、しばらく無効にして、Apacheのメモリ使用量が増え続けるかどうかを確認してください。
httpd
と、メモリ使用量が増加し続け、メモリ不足のカーネルメッセージが表示されてボックスが最終的にクラッシュすることです。パフォーマンスは良好です(メモリ使用量がメモリ制限に近づくまで)。スワッピングの問題を無視してください。