我想知道Linux上单个进程的CPU和内存使用情况——我知道PID。希望我每秒钟都能得到它,并使用'watch'命令将其写入CSV。我可以使用什么命令从Linux命令行中获得这些信息?
当前回答
下面的命令获取特定进程(pid)每40秒CPU和内存使用率的平均值
pidstat 40 -ru -p <pid>
我的案例的输出(前两行为CPU使用率,后两行为内存):
02:15:07 PM PID %usr %system %guest %CPU CPU Command
02:15:47 PM 24563 0.65 0.07 0.00 0.73 3 java
02:15:07 PM PID minflt/s majflt/s VSZ RSS %MEM Command
02:15:47 PM 24563 6.95 0.00 13047972 2123268 6.52 java
其他回答
使用pidstat(来自sysstat -参考链接)。
例如,每5秒监控这两个进程id(12345和11223)的使用情况
$ pidstat -h -r -u -v -p 12345,11223 5
ps -p <pid> -o %cpu,%mem,cmd
(您可以省略“cmd”,但这可能有助于调试)。
注意,这给出了进程在运行期间的平均CPU使用率。
ps aux | awk '{print $4"\t"$11}' | sort | uniq -c | awk '{print $2" "$1" "$3}' | sort -nr
或者每个进程
ps aux | awk '{print $4"\t"$11}' | sort | uniq -c | awk '{print $2" "$1" "$3}' | sort -nr |grep mysql
ps aux|awk '{print $2,$3,$4}'|grep PID
其中第一列是PID,第二列是CPU使用率,第三列是内存使用率。
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使用率)
推荐文章
- 如何首次配置postgresql ?
- 检索Linux上单个进程的CPU使用情况和内存使用情况?
- 如何从远程SSH会话发送数据到本地剪贴板
- 我如何得到bash完成工作与别名?
- SSH端口转发~/。ssh /配置文件?
- 通过使用shell脚本替换文件名中的特定模式来重命名多个文件
- 在Linux中安装Java SDK后,我可以在哪里找到它?
- 如何将多个文件的内容追加到一个文件
- linux cat命令可以用来写入文本文件吗?
- 如何杀死僵尸进程
- 如何进入每个目录并执行命令?
- 如何通过脚本创建crontab
- 我可以在/etc/hosts中映射主机名*和端口*吗?
- Tar归档,从文件列表中获取输入
- 寻找不属于特定用户的文件