在处理PHP脚本时我需要获取服务器内存使用情况现在这是我采用的方法:
$a= function_exists('memory_get_usage') ? round(memory_get_usage() / 1024 / 1024, 2) : 0;
$memory_consumption_percent = round ($a / $a * 100, 0);
但我意识到这不是最好的方法,因为它只返回当前分配给PHP脚本的内存量(以字节为单位)。
所以,我联系了我的朋友,他在shell脚本方面有更多的经验,以确定是否有任何方法可以获取这个内存使用数据,我可以通过shell_exec()
运行。但他表示不可能在任何环境中运行任何类型的通用shell脚本。
他说Apache,Lightspeed,lighthttpd,nginx处理PHP的方式不同,所以很难编写一个脚本来说明你的网站消耗了多少内存。此外,如果您只是检查服务器上的空闲RAM或RAM使用情况,那么它将完全不明确,因为服务器上运行的许多东西消耗内存,但这不是您网站的内存消耗。
站在这一点上,我想我应该问你们这个问题,因为你们有更多的经验,可能会帮助我提出一个通用的解决方案。
P.S。:我期待只有基于Linux服务器的解决方案。
答案 0 :(得分:0)
这是我做过的一种方式。我这样做是因为它不仅报告物理内存,还报告交换和缓冲区。
启动cron job
以运行您希望更新此信息的频率(例如,每分钟)编辑cron
的命令为sudo crontab -e
。在你里面设置一些看起来像这样的东西:
* * * * * rm /path/to/your/log/file/memory.log; while true; do free -s 1 > /path/to/your/log/file/memory.log; sleep 1; done
然后,您可以随时通过您的php文件访问该日志...使用strpos
之类的内容,您将能够从日志中提取所需的信息。这就是我做到的,而且效果很好。