• 云途科技成立于2010年 - 专注全球跨境电商服务器租赁托管!
  • 帮助中心

    您可以通过下方搜索框快速查找您想知道的问题

    linux下查看系统资源(iostat,top,vmstat,mpstat等)

      in  unix      Tags: 

    为什么我们要查看系统资源呢?

    维护服务器的时候,要经常查看系统资源的,可以了解一下服务器的运行情况。系统优化时,比如使用memcache时,我要决定分配多少内存给他合适呢,mysql的innodb的参数优化也要考虑到内存使用率,i/o的频繁程度啊,如果使用apache的话,要启动多少个httpd比较合适呢,如果数据库的数据太大,我要看看是不是增加磁盘呢等等,这个时候,我们要知道,有多少资源可用,才能更好的优化我们的系统。

    1,top命令查看cpu,mem的使用情况

    PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    21093 root      15   0 12700  736  524 S    2  0.0  80:01.36 cmahostd
     1 root      15   0 10324   84   52 S    0  0.0   1:10.26 init
     2 root      RT  -5     0    0    0 S    0  0.0   0:27.31 migration/0
    

    %cpu           进程所占cpu时间的百分比
    %mem         进程所占内存的百分比

    2,top 后 在shift + p 所占进程的排序显示

    3,top 后 在shift + m 所占内存的排序显示

      PID USER      PR  NI  VIRT  RES  SHR S   %CPU %MEM  TIME+  COMMAND
     11981 root      34  19  276m  43m 1452 S    0  1.1  64:22.57 yum-updatesd
     2601 apacheus  15   0  413m  37m 5376 S    0  1.0   0:00.76 httpd
     18833 apacheus  15   0  415m  36m 5908 S    0  0.9   0:01.49 httpd
     18832 apacheus  15   0  415m  35m 5804 S    0  0.9   0:02.19 httpd
     22881 apacheus  15   0  415m  35m 5924 S    0  0.9   0:01.62 httpd

    4,vmstat 2 每隔2秒查看一下内存,交换分区,i/o,cpu的使用情况

    [root@tank ~]# vmstat 2
    procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
     0  0 182164 187684 708508 1997704    0    0     1     5    0    0  0  0 100  0  0
     1  0 182164 187396 708508 1997708    0    0     0    36 1020 2203  0  0 99  0  0
     0  0 182164 187708 708508 1997712    0    0     0   114 1056 2367  1  0 99  0  0
    

    memory下的参数说明:

    swpd:               已用的交换空间数量
    free:                 空闲内存数量
    buff:                 缓冲使用的内存数量
    cache:   文件系统缓存使用的内存数量

    swap交换分区下的参数说明:

    si:                   从磁盘转换到内存的数量
    so:                  从内存转换到磁盘的数量

    i/o磁盘i/o下的参数说明:

    bi:                  从块设备读的数量
    bo:                 写块设备的数量

    cpu下的一些参数说明:

    us:                用户方式下所占CPU工作时间的百分比
    sy:                内核进程所占cpu工作时间的百分比
    id:                 cpu处在空闲状态下的时间百分比
    wa:               等待I/O所占用CPU工作时间的百分比

    上面个人觉得比较重要的参数说明

    5,df 查看磁盘的使用情况

    [root@tank ~]# df
    Filesystem    1K-blocks   Used    Available Use% Mounted on
    /dev/sda2     39674192   7252020  30374288  20% /
    /dev/sda3     49594196   8586164  38448076  19% /usr
    /dev/sda4     59515556   6405700  50037828  12% /var
    

    1K-blocks                 总的磁盘大小
    used                          表示已使用了多少
    available                 表示还有多少空间可用
    use%                         磁盘的使用率

    6,mpstat和sar查看cpu的运行情况,这二个差不多

    [root@tank ~]# mpstat
    
    11:38:39 AM  CPU   %user   %nice    %sys %iowait    %irq   %soft  %steal   %idle    intr/s
    11:38:39 AM  all    0.11    0.01    0.05    0.13    0.00    0.01    0.00   99.68     84.51
    

    %user                           用户所占的CPU时间百分比
    %nice                           nice值为负进程的CPU时间百分比
    %sys                             系统内核所占cpu时间的百分比
    %iowait                       i/o等待所占cpu时间的百分比
    %idle                            cpu闲置时间的百分比
    intr/s                           每秒cpu的中断次数

    7,free -m来查看内存,交换分区使用情况,如果不加-m的话,最小单位是KB

    [root@tank ~]# free -m
                  total       used       free     shared    buffers     cached
    Mem:          3823       3647        175          0        703       1945
    -/+ buffers/cache:        998       2825
    Swap:        24003        177      23825
    

    total                                      表时总量是多少
    used                                      已经使用了多少
    free                                       还有多少空闲
    shared                                共享是多少
    buffers                               缓冲是多少
    cached                              缓存了多少

    8,iostat查看磁盘i/o情况

    [root@krlcgcms01 ~]# iostat -x 2
    linux 2.6.18-92.1.10.el5 (krlcgcms01)   12/10/2010
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
     0.11    0.01    0.06    0.13    0.00   99.68
    
    Device:         rrqm/s   wrqm/s   r/s   w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
    cciss/c0d0        0.21     7.78  0.44  3.00    12.13    86.31    28.63     0.03    7.68   3.39   1.17
    

    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
    rkB/s:            每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。(需要计算)
    wkB/s:           每秒写K字节数。是 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 队列是非空的。即 delta(use)/s/1000 (因为use的单位为毫秒)



    • 外贸虚拟主机

      1GB硬盘

      2个独立站点

      1000M带宽

      不限制流量

      美国外贸专用虚拟主机,cPanel面板,每天远程备份.
      服务器配置:2*E5 32核,96GB 内存,4*2TB 硬盘 RAID10 阵列.

      ¥180/年

    • 美国/荷兰外贸VPS

      2核CPU

      1G内存

      30硬盘

      10M带宽

      美国/荷兰外贸云服务器,专注外贸服务器行业12年.
      服务器配置:2*E5 32核,96GB 内存,4*2TB 硬盘 RAID10 阵列.

      ¥99/月

    • 全球外贸服务器

      8核CPU

      32G内存

      1TB硬盘

      1000M带宽

      已部署数据中心:美国洛杉矶/亚特兰大、荷兰、加拿大、英国伦敦、德国、拉脱维亚、瑞典、爱沙尼亚
      自有机柜(全球九大数据中心),稳定在线率:99.9%

      ¥999/月 原价1380

    7*24小时 在线提交工单

    如果您的问题没有得到解决,推荐您在线提交工单,我们的客服人员会第一时间为您解决问题

    展开