一.查看进程信息
第一种:
ps aux
ps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。
a:显示当前终端下的所有进程信息,包括其他用户的进程。
u:使用以用户为主的格式输出进程信息。
x:显示当前用户在所有终端下的进程。
第二种:
ps -elf
-e:显示系统内的所有进程信息。
-l:使用长(long)格式显示进程信息。
-f:使用完整的(full)格式显示进程信息。
ps -ef 与 ps aux
ps -ef:标准格式显示进程
ps -aux:BSD格式显示进程
第三种:
top
以全屏交互式的界面显示进程排名,及时跟踪包括CPU、内存等系统资源占用情况,默认情况下每三秒刷新一次,其作用基本类似于Windows系统中的任务管理器
内容解释:
- PID:进程的ID
- USER:进程所有者
- PR:进程的优先级别,越小越优先被执行
- NInice:值
- VIRT:进程占用的虚拟内存
- RES:进程占用的物理内存
- SHR:进程使用的共享内存
- S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
- %CPU:进程占用CPU的使用率
- %MEM:进程使用的物理内存和总内存的百分比
- TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
- COMMAND:进程启动命令名称
top时常用的命令:
- P:按%CPU使用率排行
- T:按TIME+排行
- M:按%MEM排行
二. 查看进程的线程数
2.1 pstree -p 32296 | wc -l
[F1335883@devops-ci ~]$ pstree -p 32296 | wc -l
45
2.2 top -H -p 32296
2.3 直接去“/proc”对应PID的status目录查看
[F1335883@devops-ci ~]$ cat /proc/32296/status
Name: java
Umask: 0022
State: S (sleeping)
Tgid: 32296
Ngid: 0
Pid: 32296
PPid: 1
TracerPid: 0
Uid: 1021 1021 1021 1021
Gid: 1021 1021 1021 1021
FDSize: 128
Groups: 992 1021
VmPeak: 3039868 kB
VmSize: 2948244 kB
VmLck: 4 kB
VmPin: 0 kB
VmHWM: 175976 kB
VmRSS: 112220 kB
RssAnon: 109308 kB
RssFile: 2912 kB
RssShmem: 0 kB
VmData: 2527244 kB
VmStk: 132 kB
VmExe: 4 kB
VmLib: 28860 kB
VmPTE: 780 kB
VmSwap: 0 kB
Threads: 46
SigQ: 0/15074
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000001000
SigCgt: 20000001810044ff
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: 0000001fffffffff
CapAmb: 0000000000000000
NoNewPrivs: 0
Seccomp: 0
Speculation_Store_Bypass: vulnerable
Cpus_allowed: 3
Cpus_allowed_list: 0-1
Mems_allowed: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001
Mems_allowed_list: 0
voluntary_ctxt_switches: 12
nonvoluntary_ctxt_switches: 99
那么获取内存使用情况
cat /proc/3779/status | grep VmRSS
参考:
Linux下查看线程数的几种方法汇总