我现在已经习惯top
了查看内存使用情况。但我想监控一段时间内的内存使用情况。比如开始监控,然后执行几个命令,最后停止监控,看看这段时间内使用了多少内存。
如何在 Ubuntu 服务器上执行此操作?
我想我可以每隔 5 秒左右启动一个 cronjob,然后调用一个在文本文件中记录当前内存使用情况的命令。但是我应该使用什么命令以易于记录到文本文件的格式获取当前内存使用情况?
我现在已经习惯top
了查看内存使用情况。但我想监控一段时间内的内存使用情况。比如开始监控,然后执行几个命令,最后停止监控,看看这段时间内使用了多少内存。
如何在 Ubuntu 服务器上执行此操作?
我想我可以每隔 5 秒左右启动一个 cronjob,然后调用一个在文本文件中记录当前内存使用情况的命令。但是我应该使用什么命令以易于记录到文本文件的格式获取当前内存使用情况?
我建议结合以前的答案
请注意,Linux 喜欢使用任何额外的内存来缓存硬盘块。所以你不想只看免费的
Mem
。您想查看行free
的-/+ buffers/cache:
列。这显示有多少内存可供应用程序使用。所以我只是跑了free -m
,得到了这个:我知道我正在使用1528 MB并且有2170 MB可用。
注意:要停止此
watch
循环,您只需按Ctrl+即可C。我认为
htop
是最好的解决方案。sudo apt-get install htop
通过这种方式,您会注意到哪些程序正在使用最多的 RAM。如果你愿意,你可以很容易地终止一个。这是一个屏幕截图!
如果您想详细了解每个正在运行的进程所使用的内存,那么我可能会建议您查看ps_mem.py(可在pixelbeat.org 上找到)。
我知道在上面的评论中,您提到想要免费的单行快照,但我认为其他人可能会觉得这很有用。
示例输出:
我不喜欢的唯一部分是该脚本声称需要 root 权限。我还没有机会确切地了解为什么会这样。
使用免费命令。例如,这是 的输出
free -m
:free -m | grep /+
将只返回第二行:watch命令可能很有用。尝试
watch -n 5 free
通过每五秒更新一次来监控内存使用情况。您可以使用
cat /proc/meminfo
.我刚刚找到了这个解决方案,它工作得很好,通过 CLI 创建了一个图形界面:
对于整体 RAM 使用情况的可视化监控,如果您使用Byobu,它会将您的内存使用情况保持在终端的右下角,并在您处于任何终端会话时运行。
从屏幕截图中可以看出,我的虚拟机的正常运行时间为 1 小时 3 分钟,负载为 0.00,具有 2.8GHz(虚拟)处理器和 994MB(21%)系统上可用的 RAM。
单线解决方案和输出:
以下是预期输出的示例:
我会用Cacti。这将绘制一段时间内您的内存使用情况等,您将能够使用您的网络浏览器检查使用情况。