top 显示进程所占系统资源
[root@localhost ~]# top
top - 16:31:49 up 4:42, 3 users, load average: 0.02, 0.05, 0.00
Tasks: 74 total, 1 running, 73 sleeping, 0 stopped, 0 zombie
Cpu(s): 1.4%us, 7.8%sy, 0.0%ni, 89.2%id, 1.0%wa, 0.3%hi, 0.3%si, 0.0%st
Mem: 326616k total, 321172k used, 5444k free, 23664k buffers
Swap: 2097144k total, 588k used, 2096556k free, 227416k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
11194 root 20 0 43936 36m 1128 S 3.8 11.3 2:38.95 perl
5373 root 20 0 2572 1072 860 R 0.6 0.3 0:00.05 top
24160 root 20 0 12412 2124 1376 S 0.3 0.7 0:01.12 sshd
1 root 20 0 2900 800 652 S 0.0 0.2 0:01.52 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
这个命令用于动态监控进程所占系统资源,每隔3秒变一次。这个命令的特点是把占用系统资源(CPU,内存,磁盘IO等)最高的进程放到最前面。top命令打印出了很多信息,包括系统负载(loadaverage)、进程数(Tasks)、cpu使用情况、内存使用情况以及交换分区使用情况。其实上面这些内容可以通过其他命令来查看,所以用top重点查看的还是下面的进程使用系统资源详细状况。这部分东西反映的东西还是比较多的,不过需要您关注的也就是几项:%CPU, %MEM, COMMAND 这些项目所代表的意义,不用阿铭介绍相信您也能看懂吧,RES 这一项为进程所占内存大小,而 %MEM 为使用内存百分比。在 top 状态下,按 “shift + m”, 可以按照内存使用大小排序。按数字 ‘1’ 可以列出各颗cpu的使用状态。
另外,阿铭经常用的一个命令 top -bn1 它表示非动态打印系统资源使用情况,可以用在shell脚本中:
[root@localhost ~]# top -bn1
top - 16:44:12 up 4:54, 3 users, load average: 0.54, 0.18, 0.05
Tasks: 78 total, 1 running, 77 sleeping, 0 stopped, 0 zombie
Cpu(s): 1.4%us, 3.3%sy, 0.0%ni, 93.3%id, 1.4%wa, 0.1%hi, 0.5%si, 0.0%st
Mem: 326616k total, 318672k used, 7944k free, 62704k buffers
Swap: 2097144k total, 588k used, 2096556k free, 177848k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7236 root 20 0 2936 1220 624 D 7.8 0.4 0:03.22 ls
7237 root 20 0 2568 956 760 R 1.9 0.3 0:00.03 top
1 root 20 0 2900 800 652 S 0.0 0.2 0:01.52 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
4 root 20 0 0 0 0 S 0.0 0.0 0:11.08 ksoftirqd/0
5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
6 root RT 0 0 0 0 S 0.0 0.0 0:00.94 watchdog/0
7 root 20 0 0 0 0 S 0.0 0.0 0:04.38 events/0
和 top 命令唯一的区别就是,它一次性全部把所有信息输出出来而非动态显示。