top与ps命令输出结果差异以及top结果的重定向

时间:2021-07-07 16:23:56
烦请各位大侠赐教:
top中的CPU%与ps aux结果中的CPU%使用量,同一个进程为什么会有不同呢?
我同时使用top和watch -n 1 "ps aux | grep tomcat"来观察tomcat的cpu使用率,ps结果中CPU使用率基本不变,但是每秒刷新的使用率一直在变化……请问这个是为什么?
我的设想:可能是因为一个统计的是所有cpu平均值,一个是单个cpu。如果是这个原因的话,那怎样看每个cpu不同的使用情况?

另外,我使用top -d 1 >>top.txt,查看结果,发现有无数乱码……
而且使用top | grep tomcat >>top.txt就无法重定向了……麻烦各位大侠解惑……

6 个解决方案

#1


top是会刷新的  

top | grep tomcat
这个组合有问题吧

#2


为什么不查看帮助文档man top,使用linux一定要自己勤动手!

top -d 1 >>top.txt
----------------
top -bd 1 >> top.txt

top | grep tomcat >>top.txt
-------------
如果tomcat只有一个进程pid 则
top -bd 1 -p `pgrep tomcat`  >>top.txt
如果有多个进程id
top -bd 1 -p `pgrep tomcat |xargs perl -e "print join ',',@ARGV"` >>top.txt

#3


以前碰到过这个问题,最后改用ps命令。今天看到答案,豁然开朗

#4


引用 1 楼 chinasingle 的回复:
top是会刷新的  

top | grep tomcat
这个组合有问题吧


top | grep tomcat 这个确实有问题,因为top的结果里面没有tomcat这个进程名
top | grep java 就可以显示结果了,但是重定向还是不能获得结果。

#5


引用 2 楼 steptodream 的回复:
为什么不查看帮助文档man top,使用linux一定要自己勤动手!

top -d 1 >>top.txt
----------------
top -bd 1 >> top.txt

top | grep tomcat >>top.txt
-------------
如果tomcat只有一个进程pid 则
top -bd 1 -p `pgrep tomcat` >>top.t……


非常感谢。
在这个环境里用的是裁剪的linux,没有man了……所以想看帮助也看不到……
谢谢!但是pgrep tomcat不行,要用pgrep java,估计是因为top的预设置没有打开C模式……

#6


还有一个问题未解决的就是为什么ps aux的cpu占用率和top看到的的结果差那么多……
先给分了……

#1


top是会刷新的  

top | grep tomcat
这个组合有问题吧

#2


为什么不查看帮助文档man top,使用linux一定要自己勤动手!

top -d 1 >>top.txt
----------------
top -bd 1 >> top.txt

top | grep tomcat >>top.txt
-------------
如果tomcat只有一个进程pid 则
top -bd 1 -p `pgrep tomcat`  >>top.txt
如果有多个进程id
top -bd 1 -p `pgrep tomcat |xargs perl -e "print join ',',@ARGV"` >>top.txt

#3


以前碰到过这个问题,最后改用ps命令。今天看到答案,豁然开朗

#4


引用 1 楼 chinasingle 的回复:
top是会刷新的  

top | grep tomcat
这个组合有问题吧


top | grep tomcat 这个确实有问题,因为top的结果里面没有tomcat这个进程名
top | grep java 就可以显示结果了,但是重定向还是不能获得结果。

#5


引用 2 楼 steptodream 的回复:
为什么不查看帮助文档man top,使用linux一定要自己勤动手!

top -d 1 >>top.txt
----------------
top -bd 1 >> top.txt

top | grep tomcat >>top.txt
-------------
如果tomcat只有一个进程pid 则
top -bd 1 -p `pgrep tomcat` >>top.t……


非常感谢。
在这个环境里用的是裁剪的linux,没有man了……所以想看帮助也看不到……
谢谢!但是pgrep tomcat不行,要用pgrep java,估计是因为top的预设置没有打开C模式……

#6


还有一个问题未解决的就是为什么ps aux的cpu占用率和top看到的的结果差那么多……
先给分了……