11. 系统状态管理

一、分别制造 CPU、内存、磁盘IO、网络IO繁忙的情况,并用 top, dstat, iostat 等工具观察

1、top

    a、命令解析

   - q                      退出top命令
    - <Space>       立即刷新
    - s                     设置刷新时间间隔
    - c                     显示命令完全模式
    - t                      显示或隐藏进程和CPU状态信息
    - m                    显示或隐藏内存状态信息
    - l                      显示或隐藏uptime信息
    - f                      增加或减少进程显示标志
    - S                    累计模式,会把已完成或退出的子进程占用的CPU时间累计到父进程的MITE+
    - P                    按%CPU使用率排行
    - T                    按MITE+排行
    - M                   按%MEM排行
    - u                    指定显示用户进程
    - r                     修改进程renice值
    - kkill                进程
    - i                     只显示正在运行的进程
    - W                  保存对top的设置到文件^/.toprc,下次启动将自动调用toprc文件的设置。
    - h                    帮助命令。
    - q                   退出

    b、top 使用

    # top
    top - 16:50:20 up  5:43,  3 users,  load average: 0.00, 0.00, 0.00
    Tasks: 157 total,   1 running, 156 sleeping,   0 stopped,   0 zombie
    Cpu(s):  8.2%us,  2.2%sy,  0.0%ni, 89.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Mem:   1907580k total,  1655416k used,   252164k free,    52160k buffers
    Swap:  4194296k total,        8k used,  4194288k free,  1116244k cached
    PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                                                        
    2453 root      20   0  206m  47m 9196 S  5.8  2.5   1:14.98 Xorg                                                                                                                                                                           
    3072 D         20   0  349m  18m  11m S  2.5  1.0   0:31.89 gnome-terminal  
    第一行显示的是  当前时间 、当前有多少个登录的用户、系统负载
    第二行显示的是  进程总数、正在运行的进程数、睡眠的进程数、停止的进程数、僵尸态进程数
    第三行显示的是  用户占 CPU 的百分比、内核占 CPU 的百分比、用户进程内改变过优先级的进程占 CPU 的百分比、空闲 CPU 的百分比、等待输入输出的百分比、
                                硬中断占用 CPU 的百分比、软中断占 CPU 的百分比、虚拟机偷取时间
    第四行显示的是  物理内存总数、使用的物理内存总数、空闲内存总数、用作内核缓存的总数
    第五行显示的是  交换区总量、使用的交换区总量、空闲的交换区总量、缓存的交换区总量
    PID :进程 ID、USER:进程所有者的用户名、NI:用户名、VIRT:进程使用的虚拟内存、RES:进程使用的物理内存大小、SHR:共享内存大小(kb)、S:进程状态、
    %CPU:CPU 距离上次查询占用的百分比、%MEM:进程使用的物理内存百分比、TIME+:进程使用的 CPU 时间、COMMAND 进程的别名

2、dstat 

    a、命令解析

    -l       显示负载统计量

  -m       显示内存使用率(包括used,buffer,cache,free值)

  -r       显示I/O统计

  -s       显示交换分区使用情况

  -t       将当前时间显示在第一行

  –fs     显示文件系统统计数据(包括文件总数量和inodes值)

  –nocolor      不显示颜色(有时候有用)

  –socket       显示网络统计数据

  –tcp          显示常用的TCP统计

  –udp          显示监听的UDP接口及其当前用量的一些动态数据

  --disk-util    显示某一时间磁盘的忙碌状况

   --freespace    显示当前磁盘空间使用率

  --proc-count   显示正在运行的程序数量

  --top-bio      指出块I/O最大的进程

  --top-cpu      图形化显示CPU占用最大的进程

  --top-io       显示正常I/O最大的进程

  --top-mem      显示占用最多内存的进程   

     b、dstat 的简单使用:

    root@Demon share]# dstat 1 10
    You did not select any stats, using -cdngy by default.
     ----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
    usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw 
   1   1  98   0   0   0|  34k   54k|   0     0 |   0     0 |  65   138 
   1   1  98   0   0   0|   0     0 |   0     0 |   0     0 |  60   130 
   0   1  99   0   0   0|   0     0 |   0     0 |   0     0 |  50    97 
   1   0  99   0   0   0|   0     0 |   0     0 |   0     0 |  61    77 
   1   2  97   0   0   0|   0     0 |   0     0 |   0     0 |  73   165 
   0   0 100   0   0   0|   0     0 |   0     0 |   0     0 |  41   114 
   2   1  97   0   0   0|   0    60k|   0     0 |   0     0 |  80   172 
   1   1  98   0   0   0|   0     0 |   0     0 |   0     0 |  77   148 
   1   1  98   0   0   0|   0     0 |   0     0 |   0     0 |  64   126 
   0   0 100   0   0   0|   0     0 |   0     0 |   0     0 |  42    72 
   1   2  97   0   0   0|   0     0 |   0     0 |   0     0 |  96   171 
    它默认显示是分为 5 区域,第一个区域是用来看CPU 使用率,第二个区域是磁盘统计,第三个区域是网络统计,第四个区域是内存使用率,
    第五个区域是系统信息

3、iostat

     a、iostat 命令解析(命令格式:iostat   [参数]  [时间]  [次数])

    -C 显示CPU使用情况

    -d 显示磁盘使用情况

    -k 以 KB 为单位显示

    -m 以 M 为单位显示

    -N 显示磁盘阵列(LVM) 信息

    -n 显示NFS 使用情况

    -p[磁盘] 显示磁盘和分区的情况

    -t 显示终端和CPU的信息

    -x 显示详细信息

    -V 显示版本信息    

    b、iostat 的使用:

ot@Demon share]# iostat -x
Linux 2.6.32-431.el6.x86_64 (Demon)  2016年01月15日  _x86_64_ (1 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.78    0.05    0.69    0.35    0.00   98.12
Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.29    11.12    0.95    1.11    61.44    97.82    77.58     0.12   60.40   2.81   0.58
scd0              0.00     0.00    0.00    0.00     0.02     0.00     8.17     0.00    0.56   0.56   0.00
    rrqm/s        每秒进行 merge 的读操作数目。即 delta(rmerge)/s 

    wrqm/s      每秒进行 merge 的写操作数目。即 delta(wmerge)/s 
    r/s              每秒完成的读 I/O 设备次数。即 delta(rio)/s 
    w/s             每秒完成的写 I/O 设备次数。即 delta(wio)/s 
    rsec/s        每秒读扇区数。即 delta(rsect)/s     
    wsec/s       每秒写扇区数。即 delta(wsect)/s 
    avgrq-sz    平均每次设备I/O操作的数据大小 (扇区)。即 delta(rsect+wsect)/delta(rio+wio) 
    avgqu-sz   平均I/O队列长度。即 delta(aveq)/s/1000 (因为aveq的单位为毫秒)。 
    await         平均每次设备I/O操作的等待时间 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio) 
    svctm        平均每次设备I/O操作的服务时间 (毫秒)。即 delta(use)/delta(rio+wio) 
    %util          一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的

 
posted @ 2016-03-25 17:01  Demon-咖啡  阅读(209)  评论(0编辑  收藏  举报