top 动态地查看进程占用资源的情况,ps命令输出的只是当前查询状态下进程瞬间的状态信息。top可以按照CPU使用,内存使用,执行时间等指标对进程进行排序。默认情况下,top是按照CPU使用率来进行排序的,按P键进入CPU使用率排序,按字母M键按照Memory的使用率来排序。
内部命令如下:
top [-] [d] [p] [q] [c] [C] [S] [s] [n]
- d 指定每两次屏幕信息刷新之间的时间间隔。
- p 通过指定监控进程ID来仅仅监控某个进程的状态。
- q 该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
- S 指定累计模式
- s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
- i 使top不显示任何闲置或者僵死进程。
- c 显示整个命令行而不只是显示命令名
例如,按照CPU使用率,对进程排序如下。
1、常用命令 top -p pid 来监控某个进程的内存占用和CPU使用情况。pid可以通过ps来查询。
top -p 12345 //每隔5秒显示pid是12345的进程的资源占用情况
top -H -p 12345 //查看指定进程12345的线程占用情况。
2、可以使用top,jstack来查找占用CPU最高的线程,找出程序中的死锁或占用内存高的线程。
具体可以参考这里。
参考: