我们经常使用top命令来查看Linux系统的运行情况,如下面:
[root@localhost ~]# top
top - 17:31:03 up 20 days, 20:29, 1 users, load average: 0.06, 0.60, 0.48
Tasks: 172 total, 1 running, 164 sleeping, 7 stopped, 0 zombie
Cpu(s): 3.9%us, 1.0%sy, 0.0%ni, 94.9%id, 0.0%wa, 0.0%hi, 0.2%si, 0.0%st
Mem: 8057552k total, 7056128k used, 1001424k free, 159324k buffers
Swap: 8388604k total, 95676k used, 8292928k free, 819348k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
14265 root 20 0 4683m 1.3g 15m S 1.0 16.7 19:56.97 java
...
前五行是系统的统计信息
第一行:top - 17:31:03 up 20 days, 20:29, 3 users, load average: 0.00, 0.00, 0.00
17:31:03 当前时间 up 20 days, 20:29 系统运行了20天,20小时29分钟 1 user 当前登录用户数 load average: 0.06, 0.60, 0.48 系统负载,即任务队列的平均长度。三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。
第二行:Tasks: 172 total, 1 running, 164 sleeping, 7 stopped, 0 zombie
total 进程总数
running 正在运行的进程数
sleeping 睡眠的进程数
stopped 停止的进程数
zombie 僵尸进程数
第三行:Cpu(s): 3.9%us, 1.0%sy, 0.0%ni, 94.9%id, 0.0%wa, 0.0%hi, 0.2%si, 0.0%st
3.9% us 用户空间占用CPU百分比 1.0% sy 内核空间占用CPU百分比 0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比 94.9% id 空闲CPU百分比 0.0% wa 等待输入输出的CPU时间百分比 0.0%hi:硬件CPU中断占用百分比 0.2%si:软中断占用百分比 0.0%st:虚拟机占用百分比
第四行:Mem: 8057552k total, 7056128k used, 1001424k free, 159324k buffers
8057552k total 物理内存总量
7056128k used 使用的物理内存总量
1001424k free 空闲内存总量
159324k buffers 用作内核缓存的内存量
第五行:Swap: 8388604k total, 95676k used, 8292928k free, 819348k cached
8388604k total 交换区总量 95676k used 使用的交换区总量 8292928k free 空闲交换区总量 819348k cached 缓冲的交换区总量,内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,该数值即为这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入。
接着空行,下面的显示了各个进程的详细信息:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
14265 root 20 0 4683m 1.3g 15m S 1.0 16.7 19:56.97 java
...
其中各列项说明:
列名 说明 PID 进程id PPID 父进程id RUSER Real user name UID 进程所有者的用户id USER 进程所有者的用户名 GROUP 进程所有者的组名 TTY 启动进程的终端名。不是从终端启动的进程则显示为 ? PR 优先级 NI nice值。负值表示高优先级,正值表示低优先级 P 最后使用的CPU,仅在多CPU环境下有意义 %CPU 上次更新到现在的CPU时间占用百分比 TIME 进程使用的CPU时间总计,单位秒 TIME+ 进程使用的CPU时间总计,单位1/100秒 %MEM 进程使用的物理内存百分比 VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。 RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA CODE 可执行代码占用的物理内存大小,单位kb DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb SHR 共享内存大小,单位kb nFLT 页面错误次数 nDRT 最后一次写入到现在,被修改过的页面数。 S 进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程) COMMAND 命令名/命令行 WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名 Flags 任务标志,参考 sched.h..