天天看点

系统性能分析工具之top

1.top的输出介绍

[root@zhu3 ~]# top
top - 12:26:46 up 15:22,  2 users,  load average: 0.00, 0.00, 0.00
Tasks: 112 total,   2 running, 110 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.2%sy,  0.0%ni, 99.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    527116k total,   376812k used,   150304k free,    93384k buffers
Swap:  1534196k total,        0k used,  1534196k free,   131816k cached
PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
3509 zabbix    15   0 51384 3276 1452 S  0.3  0.6   0:01.58 zabbix_server
17822 root      15   0  2320 1020  804 R  0.3  0.2   0:00.03 top
1 root      15   0  2072  632  544 S  0.0  0.1   0:00.44 init
2 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 migration/0
3 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0
4 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 watchdog/0
5 root      10  -5     0    0    0 S  0.0  0.0   0:00.10 events/0
6 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 khelper
7 root      16  -5     0    0    0 S  0.0  0.0   0:00.00 kthread
10 root      10  -5     0    0    0 S  0.0  0.0   0:00.20 kblockd/0
11 root      20  -5     0    0    0 S  0.0  0.0   0:00.00 kacpid
69 root      20  -5     0    0    0 S  0.0  0.0   0:00.00 cqueue/0
72 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 khubd
74 root      12  -5     0    0    0 S  0.0  0.0   0:00.01 kseriod
140 root      19   0     0    0    0 S  0.0  0.0   0:00.00 khungtaskd
141 root      25   0     0    0    0 S  0.0  0.0   0:00.00 pdflush      

第一行:同uptime指令显示的结果一样

[root@zhu3 ~]# uptime
12:28:04 up 15:23,  2 users,  load average: 0.00, 0.00, 0.00      

      目前的时间:12:28:04 

      系统运行的时间:up 15:23

      已经登录系统的用户人数:2 users

      系统在1分钟,5分钟,15分钟的平均工作负载(平均要负责运行几个工作进程),如果每个

      cpu当前 活动进程数不大于3,则系统性能良好,不大于4,可以接受,大于5表示负荷严重

第二行 :显示的是目前的进程总量与状态

        总的进程数:Tasks: 112 total,

        正在运行的进程数2 running,

        正在睡眠的进程数 110 sleeping,

        停止的进程数 0 stopped,

        僵尸进程数 0 zombie

第三行:显示的是cpu的负载

       用户空间占用cpu百分比 0.0%us,

       内核空间占用cpu百分比 0.2%sy,

       用户进程空间内改变过优先级的进程占用的cpu百分比 0.0%ni,

       空闲的cpu百分比 99.8%

id

,

       等待输入输出的cpu时间百分比 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

第四行:显示内存使用情况

      物理内存总量527116k total,

      使用的内存总量 376812k used, 

      空闲内存总量150304k 

free

      用作缓存的内存 93384k buffers

第五行:交换分区的使用情况

       交换分区总量1534196k total, 

       已经使用的交换分区0k used,

        剩余的交换分区 1534196k 

free

 缓冲的交换区总量。 内存中的内容被换出到交换区,而后又被换入到内存,

               但使用过的交换区 尚未被覆盖, 该数值即为这些内容已存在于内存中的

               交换区的大小。相应的内存再次被换出时可不必再对交换区写入。

131816k cached

第六行:

     PID :每个进程的id

     USER :该进程所属的用户 

     PR  : priority的缩写,进程执行的优先级,越小越先被执行

     NI  :与priority有关,越小越早被执行

     VIRT :进程所使用的虚拟内存总量

     RES :进程使用的未被换出的物理内存总量

     SHR :共享内存大小

      S :进程状态,D表示不可中断的睡眠状态,R表示运行状态,S表示睡眠状态,Z表示僵尸状态 

     %CPU :cpu的使用率

     %MEM 内存使用率

     TIME+ :进程使用cpu的时间总计

     COMMAND :命令名

常用的交互指令

h或?: 显示可以输入的按键命令

P :以cpu的百分比大小排序(默认)

M :根据使用内存大小排序

N :以PID来排序

q :离开top

-p:检测指定的某个进程信息

[root@zhu3 ~]# ps -ef | grep mysql
root      3280     1  0 Sep03 pts/1    00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql
mysql     3362  3280  0 Sep03 pts/1    00:00:48 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --log-error=/var/log/mysqld.log --socket=/var/lib/mysql/mysql.sock
root     18171  2902  0 13:45 pts/1    00:00:00 grep mysql
[root@zhu3 ~]# top -p 3362
top - 13:45:43 up 16:41,  2 users,  load average: 0.24, 0.07, 0.02
Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.2%sy,  0.0%ni, 99.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    527116k total,   382264k used,   144852k free,    98336k buffers
Swap:  1534196k total,        0k used,  1534196k free,   132128k cached
PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
3362 mysql     18   0  141m  23m 4368 S  0.0  4.5   0:48.54 mysqld      

在top基本视图上

数字1 :显示每个逻辑cpu的状况

继续阅读