私は過去にvalgrindsmassifツールを使用してメモリ使用量を監視しました。
Linuxのlighttpdサーバーで生成されたphpプロセスのメモリ使用量をキャプチャする方法を知っている人はいますか?
Valgrindは実行前のプロセスにアタッチできないことがわかりました(とにかく、事前にphpプロセスのPIDを知りません)
Lighttpd cgiモジュールによって生成されるPHPプロセスではなく、lighttpdのメモリ使用量のみが表示されます。
前もって感謝します。
PHPには独自のメモリテスト関数があり、それがあなたに役立つかどうかはわかりませんが、ログに記録したいだけの場合は、次を使用できます: http://php.net/manual/en/function。 memory-get-peak-usage.php
echo "Using ", memory_get_peak_usage(1), " bytes of ram.";
'ps'ツールを使用できませんか?
$ ps -F -C php-cgi
UID PID PPID C SZ RSS PSR STIME TTY TIME CMD
http 10794 10786 0 4073 228 0 Jun09 ? 00:00:00 /usr/bin/php-cgi
http 10795 10794 0 4073 28 0 Jun09 ? 00:00:00 /usr/bin/php-cgi
http 10796 10786 0 4073 228 0 Jun09 ? 00:00:00 /usr/bin/php-cgi
http 10797 10796 0 4613 3544 0 Jun09 ? 00:00:00 /usr/bin/php-cgi
...
RSSはプロセスのキロバイト単位の実メモリ(常駐セット)サイズです。
すべてをbashで要約すると(少し錆びて申し訳ありません)
#!/bin/bash
total=0
for i in `ps -C php-cgi -o rss=`
do
total=$(($total + $i))
done
echo "Memory usage: $total kb"
# Output: Memory usage: 4540 kb
一発ギャグ:
total=0; for i in `ps -C php-cgi -o rss=`; do total=$(($total+$i)); done; echo "Memory usage: $total kb";
psのメモリ部分の信頼性が疑問視されていることは知っていますが、少なくとも使用法がどのようなものかがわかります。
http://php.net/manual/en/function.memory-get-usage.php
スクリプト自体の中からスレッドが使用しているメモリの量を提供する必要があります。スクリプト(およびスレッド)はせいぜい数ミリ秒(ページの生成にかかる時間)しか存在しないため、PHPの外でそれをキャッチするのは難しいかもしれません。
サーバーからより正確なデバッグ情報を取得することもできます。私はxdebugを個人的に使用しており、エラー/通知をスローすると、スタックトレース、時間、およびメモリ使用量が表示されます。スクリプトの最後に次の方法でトリガーできます。
trigger_error ('Finished', E_USER_NOTICE);
そしてそれはあなたに情報を与えるでしょう。データを取得するのがよくわかりません-必要に応じて、ドキュメントに関数が含まれている可能性があります-ぼんやりと見たのを覚えています。