1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
| $ top top - 14:08:03 up 2 days, 20:36, 1 user, load average: 0.06, 0.03, 0.01 Tasks: 87 total, 1 running, 47 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.1 us, 0.0 sy, 0.0 ni, 99.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 912836 total, 65564 free, 99648 used, 747624 buff/cache KiB Swap: 0 total, 0 free, 0 used. 667600 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 558 root 20 0 17832 1772 1288 S 0.1 0.2 0:45.25 assist_daemon 585 root 20 0 813912 10888 5104 S 0.1 1.2 3:51.47 aliyun-service 587 root 20 0 733348 9636 4604 S 0.1 1.1 0:11.96 rsyslogd 1 root 20 0 51640 4432 3156 S 0.0 0.5 0:33.44 systemd
第一行为任务队列信息,同 uptime 第二行为进程信息: total :进程总数 running :正在运行的进程数 sleeping :睡眠的进程数 stopped :停止的进程数 zombie :僵尸进程数 第三行为CPU信息: 0.1 us :用户空间占用CPU百分比 0.0 sy :内核空间占用CPU百分比 0.0 ni :用户进程空间内改变过优先级的进程占用CPU百分比 99.9 id :空闲CPU百分比 0.0 wa :等待输入输出的CPU时间百分比,通过查看 CPU 的 wa% 值来判断当前磁盘 IO 性能,如果这个数值过大,很可能是磁盘 IO 太高了,当然也可能是其他原因,例如网络 IO 过高等。 0.0 hi :硬件CPU中断占用百分比 0.0 si :软中断占用百分比 0.0 st :虚拟机占用百分比 第四行和第五行为内存信息: Mem: 912836 total 物理内存总量 65564 free 空闲内存总量 99648 used 使用的物理内存总量 747624 buff/cache 用作内核缓存的内存量 Swap: 0 total 交换区总量 0 free 空闲交换区总量 0 used 使用的交换区总量 667600 avail Mem 缓冲的交换区总量,内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,该数值即为这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入。
之后是进程信息区:默认情况下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。 运行top后按f会查看到全部的展示项,这里只对部分展示项进行说明 序号 列名 含义 a PID 进程id b PPID 父进程id c RUSER Real user name d UID 进程所有者的用户id e USER 进程所有者的用户名 f GROUP 进程所有者的组名 g TTY 启动进程的终端名。不是从终端启动的进程则显示为 ? h PR 优先级。默认20。这个优先级对应实时进程,只使用1-99号优先级队列,序号越大优先级越高,0号留给普通进程使用 i NI nice值。默认0。负值表示高优先级,正值表示低优先级 j P 最后使用的CPU,仅在多CPU环境下有意义 k %CPU 上次更新到现在的CPU时间占用百分比 l TIME 进程使用的CPU时间总计,单位精确到秒, 3:51 表示 3分51秒 m TIME+ 进程使用的CPU时间总计,单位精确到1/100秒,3:51.47 表示 3分51秒多 n %MEM 进程使用的物理内存百分比 o VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES p SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。 q RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA r CODE 可执行代码占用的物理内存大小,单位kb s DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb t SHR 共享内存大小,单位kb u nFLT 页面错误次数 v nDRT 最后一次写入到现在,被修改过的页面数。 w S 进程状态(D=不可中断的睡眠状态,I=空闲内核线程,R=运行,S=睡眠,T=因作业控制信号而停止,Z=僵尸进程) x COMMAND 命令名/命令行 y WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名 z Flags 任务标志,参考 sched.h 0 PGRP 进程组id
h :获得帮助 q :退出程序。 d :指定刷新时间 m :切换内存信息显示效果 t :切换显示进程和CPU状态信息。 c :切换显示命令名称和完整命令行。 u :查看指定用户的进程 k :终止执行中的进程 pid,系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。 r :重新设置进程优先级 n pid,系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。 翻页: Shift + < :上翻 Shift + > :下翻 Ctrl+L 擦除并且重写屏幕。 i :忽略闲置和僵死进程。这是一个开关式命令。 l :切换显示平均负载和启动时间信息。 M :根据驻留内存大小进行排序。 P :根据CPU使用百分比大小进行排序。 T :根据时间/累计时间进行排序。 W :将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。 f :从当前显示中添加或者删除项目。按d添加或删除,esc返回。此时也可以调整每一列的显示顺序,按右键会将当前项全选,然后上下调整位置后按回车即可。默认情况下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列 o :过滤指定的内容,如过滤用户则输入:USER=username,匹配时采用模糊匹配,多次输入o会在当前过滤基础上增加新的过滤条件,q退出 S :切换到累计模式。
top [-] [d] [p] [q] [c] [C] [S] [s]
d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。 p 通过指定监控进程ID来仅仅监控某个进程的状态。 S 指定累计模式 s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。 i 使top不显示任何闲置或者僵死进程。 c 显示整个命令行而不只是显示命令名
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 -p进程1的ID -p进程2的id -p进程3的id …… //查看某几个进程的状态
|