获取任何网站的内存使用情况的最佳方法是什么

时间:2016-06-14 17:17:19

标签: php linux shell memory nginx

在处理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服务器的解决方案。

1 个答案:

答案 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之类的内容,您将能够从日志中提取所需的信息。这就是我做到的,而且效果很好。

相关问题