我想知道Linux上单个进程的CPU和内存使用情况——我知道PID。希望我每秒钟都能得到它,并使用'watch'命令将其写入CSV。我可以使用什么命令从Linux命令行中获得这些信息?
当前回答
这是一个很好的技巧,可以实时跟踪一个或多个程序,同时还可以查看其他工具的输出: 看"top -bn1 -p$(pidof foo),$(pidof bar);工具”
其他回答
caf的答案是: Top -p <pid>
这将自动刷新CPU使用情况,因此非常适合监控。
要获得应用程序的内存使用情况(而不是它使用的共享库),需要使用Linux smaps接口。这个答案很好地解释了这一点。
Ps命令(不应使用):
CPU使用率目前表示为进程整个生命周期中运行所花费时间的百分比。
最高命令(应使用):
自上次屏幕更新以来,任务占用CPU时间的份额,表示为总CPU时间的百分比。
使用top实时获取CPU使用情况(当前短间隔):
Top -b -n 2 -d 0.2 -p 6962 | tail -1 | awk '{打印$9}'
会像这样回响:78.6
- b:批处理模式 -n 2:迭代次数,使用2是因为:当你第一次运行它时,它没有前值 样本进行比较,因此这些初始值是启动后的百分比。 -d 0.2:延时时间(单位:秒,这里是200ms) -p 6962: monitor - pid 尾部-1:最后一行 Awk '{print $9}':第9列(CPU使用率)
您可以通过使用的进程名获取结果
ps -C chrome -o %cpu,%mem,cmd
-C选项允许你在不知道pid的情况下使用进程名。
ps axo pid,etime,%cpu,%mem,cmd | grep 'processname' | grep -v grep
PID -进程号
etime -进程运行/活时长
%cpu - cpu使用率
%mem -内存使用率
cmd -命令
将processname替换为任何你想跟踪的进程,mysql nginx php-fpm等等…
推荐文章
- 在Bash中检查变量是否存在于列表中
- 查看PS命令的全部输出
- 确保一次只运行一个shell脚本实例的快速方法
- 为什么ARC仍然需要@autoreleasepool ?
- Linux命令将域名转换为IP
- 如何从命令行在windows中找到mysql数据目录
- 如何在Makefile中设置子进程的环境变量
- 如何让“wc -l”打印没有文件名的行数?
- 有效地测试Linux上的端口是否打开?
- 如何从另一个文件A中删除文件B中出现的行?
- 对以制表符分隔的文件进行排序
- 在内存的哪里我的变量存储在C?
- Shell脚本删除超过n天的目录
- 使用sudo时未找到命令
- 当有命令行参数时,如何使用GDB分析程序的核心转储文件?