第二行,Tasks为任务(进程)。从上面的信息可以看出,系统现在共有77个进程,其中处于运行状态的有1个,76个在休眠(sleep),stoped状态0个,zombie状态(僵死)的有0个。
第三行,CPU状态信息
[x] 0.0%us 用户空间占用CPU的百分比
[x] 0.0%sy 内核空间占用CPU的百分比
[x] 0.0%ni 改变过优先级的进程占用CPU的百分比
[x] 100.0%id 空闲CPU百分比
[x] 0.0%wa I/O等待占用CPU的百分比
[x] 0.0%hi 硬中断(Hardware IRQ)占用CPU的百分比
[x] 0.0%si 软中断(Software Interrupts)占用CPU的百分比
[x] 0.0%st 虚拟机占用CPU的百分比
第四行,内存状态
[x] 1004412k total 物理内存总量
[x] 152112k used 使用中的内存总量
[x] 852300k free 空闲内存总量
[x] 11312k buffers 缓冲的内存量
第五行,swap交换分区信息
[x] 2031608k total 交换区总量
[x] 0k used 使用的交换区总量
[x] 2031608k free 空闲交换区总量
[x] 42304k cached 缓存的内存量
第六行,空行
第七行开始,给出的是各进程(任务)的状态监控
[x] PID 进程id
[x] USER 进程所有者
[x] PR 进程优先级
[x] NI nice值,负值表示高优先级,正值表示低优先级。
[x] VIRT 进程使用的虚拟内存总量,单位kb。
[x] RES 进程使用的、未被换出的物理内存大小,单位为kb。
[x] SHR 共享内存大小,单位为kb
[x] S 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
[x] %CPU 上次更新到现在的CPU时间占用百分比
[x] %MEM 进程使用的物理内存百分比
[x] TIME+ 进程使用的CPU时间总计,单位1/100秒
[x] COMMAND 进程名称(命令名/命令行)
特别提示:
1)计算真正可用的内存数为:第四行的free+第四行的buffers+第五行的cached
2)在对内存进行监控时,我们要时刻关注top命令里第五行swap交换分区的used,如果这个数值还在不断地变化,则说明内核正在不断进行内存和swap的数据交换,这表示内存真的不够用了或者程序运行有内存溢出问题。
(2)显示多核不同核CPU的信息
在top基本视图中,按键盘数字“1”,可监控每个逻辑CPU的状况。
![1.png-42.8kB][2]
从上图可以发现,服务器有8个逻辑CPU,实际上是2个物理CPU。再按数字键1,就会返回到top基本视图界面。
(2)将进程按照使用内存排序。
[root@Mr_chen ~]# top -a #使用参数-a将进程按照使用内存排序 top - 18:07:36 up 42 min, 1 user, load average: 0.00, 0.00, 0.00 Tasks: 164 total, 1 running, 163 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 1004412k total, 153948k used, 850464k free, 10296k buffers Swap: 2031608k total, 0k used, 2031608k free, 37868k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1236 root 20 0 98.0m 4036 3056 S 0.0 0.4 0:00.20 sshd 1209 postfix 20 0 81524 3424 2544 S 0.0 0.3 0:00.01 qmgr 1202 root 20 0 81272 3400 2496 S 0.0 0.3 0:00.03 master 1208 postfix 20 0 81352 3380 2504 S 0.0 0.3 0:00.03 pickup(3)以批处理模式显示进程信息
[root@Mr_chen ~]# top -b #使用参数-b可以看到命令执行结果不停地向下刷新 ...... 1229 root 20 0 4064 576 496 S 0.0 0.1 0:00.00 mingetty 1231 root 20 0 4064 576 496 S 0.0 0.1 0:00.00 mingetty 1233 root 20 0 4064 576 496 S 0.0 0.1 0:00.00 mingetty 1235 root 20 0 4064 576 496 S 0.0 0.1 0:00.00 mingetty 1236 root 20 0 98.0m 4036 3056 S 0.0 0.4 0:00.22 sshd 1243 root 18 -2 12344 2580 516 S 0.0 0.3 0:00.00 udevd 1244 root 18 -2 12344 2584 516 S 0.0 0.3 0:00.00 udevd 1248 root 20 0 105m 1876 1520 S 0.0 0.2 0:00.04 bash 1301 root 20 0 17384 668 452 S 0.0 0.1 0:00.00 anacron 1318 root 20 0 15032 1340 984 R 0.0 0.1 0:00.01 top ^C #退出使用快捷键Ctrl+C(4)显示进程的完整路径
[root@Mr_chen chen]# top -c #使用参数-c显示进程的整个命令路径。 top - 18:19:38 up 54 min, 1 user, load average: 0.00, 0.00, 0.00 Tasks: 164 total, 1 running, 163 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 1004412k total, 154196k used, 850216k free, 10316k buffers Swap: 2031608k total, 0k used, 2031608k free, 37904k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 19232 1484 1220 S 0.0 0.1 0:00.98 /sbin/init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 [kthreadd] 3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 [migration/0](5) 设置执行top命令后的信息刷新时间
[root@Mr_chen chen]# top -d 3 #使用参数-d指定更新周期为3秒,也就是说命令结果每隔3s刷新一次