如何监控 linux 中 php 的内存使用情况?
我过去曾使用valgrinds地块工具来监控内存使用情况。
有谁知道如何捕获在linux lighttpd服务器上生成的php进程的内存使用?
我发现Valgrind不能附加到预运行进程(无论如何,我之前都不会知道php进程的PID)
我只看到lighttpd的内存使用情况,而不是lighttpd cgi模块生成的PHP进程。
提前致谢。
我过去曾使用valgrinds地块工具来监控内存使用情况。
有谁知道如何捕获在linux lighttpd服务器上生成的php进程的内存使用?
我发现Valgrind不能附加到预运行进程(无论如何,我之前都不会知道php进程的PID)
我只看到lighttpd的内存使用情况,而不是lighttpd cgi模块生成的PHP进程。
提前致谢。
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 是进程的实内存(驻留集)大小(以千字节为单位)。
总结一下(有点生锈的抱歉)
#!/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中内存部分的可靠性受到质疑,但至少它能让您了解其用法。