top查资源占用
linux top 按CPU占用排序的命令
top -o %CPU
linux top 按内存大小排序的命令
- top -o %MEM:按照内存使用率排序,从高到低展示进程信息。
- top -o RES:按照进程占用的物理内存大小进行排序。 RES是Resident Size的缩写,表示进程占用的实际物理内存大小。
- top -o VIRT:按照进程占用的虚拟内存大小进行排序。 VIRT是Virtual Memory的缩写,表示进程使用的虚拟内存大小(包括实际物理内存和虚拟内存)。
- top -o SZ:按照进程的总内存大小排序,SZ是SIZE的缩写,表示进程的总内存大小(包括映像和共享库)。
- top -o SHR:按照进程占用的共享内存大小排序,SHR是SHARED的缩写,表示进程占用的共享内存大小,即多个进程共享的内存区域。
内存占用前10查看,看着不大对劲,但是找不出问题(与systemctl status app.service看到的有不小出入,可能是top统计信息中包含了buffer/cache缓存,共享内存一般很小,不足物理内存1%,可忽略)
top -b -n 1|awk '{if(NF==12)a[$12]+=$10}END{for(i in a)print a[i]"\t"i}'|sort -nr|head -10
此公式不适于cpu套用,top瞬时状态,cpu变化还是挺大的,这个统计看着不太准确挺多任务当0忽略了%
top查看进程下线程信息
-H
:这个选项让top
显示每个线程的 CPU 使用情况,而不仅仅是每个进程的。对于多线程的应用程序,这非常有用,因为它可以显示每个线程的 CPU 使用率,而不仅仅是整个进程的。-p
:这个选项后面通常跟着一个或多个进程 ID(PID)。它告诉top
只显示这些特定进程的信息,而不是显示所有进程的信息。
示例:
top -H -p 3693459
这个命令的意思是:实时显示 PID 为 3693459 的进程及其所有线程的 CPU 使用情况