正文
获取当前进程的全部线程
jps 获取jvm的进程信息.
top -Hp $pid -bn 1 > 1.txt
可以获取当前特定进程的所有子进程.
注意linux与Windows的不太一样.
linux下面的线程实现,其实是子进程的模式.
Windows的更是process-thread的映射模式.
其他部分命令
o或者O 改变显示项目的顺序。
l 切换显示平均负载和启动时间信息。
m 切换显示内存信息。
t 切换显示进程和CPU状态信息。
c 切换显示命令名称和完整命令行。
M 根据驻留内存大小进行排序。
P 根据CPU使用百分比大小进行排序。
T 根据时间/累计时间进行排序。
W 将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。
top的其他用法
top //每隔5秒显式所有进程的资源占用情况
top -d 2 //每隔2秒显式所有进程的资源占用情况
top -c //每隔5秒显式进程的资源占用情况,并显示进程的命令行参数(默认只有进程名)
top -p 12345 -p 6789//每隔5秒显示pid是12345和pid是6789的两个进程的资源占用情况
top -d 2 -c -p 123456 //每隔2秒显示pid是12345的进程的资源使用情况,并显式该进程启动的命令行参数
top列的含义
序号 |
列名 |
含义 |
1 |
PID |
进程id |
2 |
PPID |
父进程id |
3 |
RUSER |
Real user name |
4 |
UID |
进程所有者的用户id |
5 |
USER |
进程所有者的用户名 |
6 |
GROUP |
进程所有者的组名 |
7 |
TTY |
启动进程的终端名。不是从终端启动的进程则显示为 ? |
8 |
PR |
优先级 |
9 |
NI |
nice值。负值表示高优先级,正值表示低优先级 |
10 |
P |
最后使用的CPU,仅在多CPU环境下有意义 |
11 |
%CPU |
上次更新到现在的CPU时间占用百分比 |
12 |
TIME |
进程使用的CPU时间总计,单位秒 |
13 |
TIME+ |
进程使用的CPU时间总计,单位1/100秒 |
14 |
%MEM |
进程使用的物理内存百分比 |
15 |
VIRT |
进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES |
16 |
SWAP |
进程使用的虚拟内存中,被换出的大小,单位kb。 |
17 |
RES |
进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA |
18 |
CODE |
可执行代码占用的物理内存大小,单位kb |
19 |
DATA |
可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb |
20 |
SHR |
共享内存大小,单位kb |
21 |
nFLT |
页面错误次数 |
22 |
nDRT |
最后一次写入到现在,被修改过的页面数。 |
23 |
S |
进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程) |
24 |
COMMAND |
命令名/命令行 |
25 |
WCHAN |
若该进程在睡眠,则显示睡眠中的系统函数名 |
26 |
Flags |
任务标志,参考 sched.h |
top的其他用法
id: idle进程执行所占的CPU时间百分比,当系统当中没有足够的进程让CPU执行的时候,
idle进程会被调度到CPU上进行执行,这个进程是为了让操作系统能够良好的执行起来所设置
idle进程主要执行HLT指令,这个指令主要是让CPU节能,不需要CPU满负荷运转,
因为这个时候没有具体的进程需要执行,这个百分比越大说明系统负载越轻,CPU不繁忙。
wa: 这个很好解释,等待IO的时间。
hi: 处理硬件中断所消耗的时间。
si: 处理软件中断所消耗的时间
st: 这个主要是虚拟机的虚拟CPU等待真实物理CPU的时间,
可以大致认为是Ready状态到Running状态的等待时间,
如果这个值越大说明虚拟机运行状态越不好,因为它等待真实CPU的时间很长。