是否有一种工具可以运行命令行并报告峰值RAM使用总量?
我正在想象类似于/usr/bin/time的东西
是否有一种工具可以运行命令行并报告峰值RAM使用总量?
我正在想象类似于/usr/bin/time的东西
当前回答
也许(gnu) time(1)已经做了您想要的。例如:
$ /usr/bin/time -f "%P %M" command
43% 821248
但其他分析工具可能会根据您正在寻找的内容提供更准确的结果。
其他回答
你可以使用Valgrind这样的工具来做到这一点。
好吧,如果你真的想显示内存峰值和一些更深入的统计数据,我建议使用一个分析器,如valgrind。一个很好的valgrind前端是alleyoop。
因为/usr/bin/time在许多现代发行版中都不存在(取而代之的是Bash内置时间),你可以使用Busybox time实现带-v参数:
busybox time -v uname -r
它的输出类似于GNU时间输出。 Busybox在大多数Linux发行版(Debian, Ubuntu等)中都是预安装的。如果你使用Arch Linux,你可以安装它:
sudo pacman -S busybox
'htop'是查看哪个进程使用了多少RAM.....的最佳命令
欲知详情 http://manpages.ubuntu.com/manpages/precise/man1/htop.1.html
下面是(基于其他答案)一个非常简单的脚本,用于监视已经运行的进程。你只需要用你想要观察的进程的pid作为参数来运行它:
#!/usr/bin/env bash
pid=$1
while ps $pid >/dev/null
do
ps -o vsz= ${pid}
sleep 1
done | sort -n | tail -n1
使用示例:
max_mem_usage.sh 23423