zoukankan      html  css  js  c++  java
  • 操作系统监控

    操作系统监控

    • 系统监控:top 命令
    • 内存监控:free -m 命令
    • 内存监控:buffer、cache、swap
    • 磁盘IO监控:iostat
    • 磁盘空间监控:df -h 命令
    • 综合监控工具:vmstat 1 (重点看swap)
    • 超级监控工具:dstat(重点看 %util)
    • 支持数据存储的监控工具:nmon

    1、操作系统监控-top命令

    2、内存监控:free -m 命令

    free命令可以查看当前系统内存的使用情况

    free -m 以MB为单位显示系统内存的使用情况,同理,也可以使用-k、-g等其他的单位显示
    free命令从两个维度统计了内存的使用情况
    第一行Mem:从操作系统角度统计内存的total、used、free、buffers、cached
    第二行-/+buffers:从应用程序角度统计内存的total、used、free、buffers、cached

    内存监控:buffer、cache、swap

    buffer和cache
    两者都是Linux下的缓存机制,其中buffer为写操作的缓存,cache为读操作的缓存
    当前应用系统内存不足时,系统会自动将cache占用的内存释放给系统使用

    swap
    交换空间,磁盘上的一块空间,当系统内存不足时,会使用交换空间

    频繁发生swap交换会导致性能问题
    未在压测,swap不为0不一定有问题,但在性能测试过程中也正在发生swap(变化),那就是有问题(内存不足)
    当前系统真正可用的内存为第一行的:buff/cache + free

    3、磁盘IO监控:iostat

    需要提前安装好sysstat yum install -y sysstat

    • 1、直接执行 iostst
    [root@localhost ~]# iostat
    Linux 3.10.0-1160.el7.x86_64 (localhost.localdomain)    2021年09月12日  _x86_64_        (1 CPU)
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
              0.03    0.00    0.08   0.01     0.00   99.88
    
    Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    sda               0.78        14.99         7.53     252955     127138
    dm-0              0.64        14.28         7.41     240987     125070
    dm-1              0.01         0.13         0.00       2204          0
    

    %user: 在用户级别运行所使用的CPU的百分比.
    %nice: nice操作所使用的CPU的百分比.
    %sys: 在系统级别(kernel)运行所使用CPU的百分比.
    %iowait: CPU等待硬件I/O时,所占用CPU百分比.
    %idle: CPU空闲时间的百分比.

    sda 才是真正的磁盘,剩下两个都是虚拟磁盘,可以忽略

    单独执行iostat,显示的结果为从系统开机到当前执行时刻的统计信息。以上输出中,除最上面指示系统版本、主机名和日期的一行外,另有两部分:

    avg-cpu: 总体cpu使用情况统计信息,对于多核cpu,这里为所有cpu的平均值
    Device: 各磁盘设备的IO统计信息
    我们可以使用-c选项单独显示avg-cpu部分的结果,使用-d选项单独显示Device部分的信息。
    以上输出中,kB_read/s、kB_wrtn/s、kB_read和kB_wrtn的值均以kB为单位,相比以扇区数为单位,这里的值为原值的一半(1kB=512bytes*2)

    • 2、指定采样时间间隔与采样次数
      与sar命令一样,我们可以以"iostat interval [count] ”形式指定iostat命令的采样间隔和采样次数:
    [root@localhost ~]# iostat -d 1 2
    Linux 3.10.0-1160.el7.x86_64 (localhost.localdomain)    2021年09月12日  _x86_64_        (1 CPU)
    
    Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    sda               0.79        14.53         7.52     252955     130826
    dm-0              0.64        13.85         7.40     240987     128758
    dm-1              0.01         0.13         0.00       2204          0
    
    Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    sda               3.12         0.00        17.71          0         17
    dm-0              2.08         0.00        17.71          0         17
    dm-1              0.00         0.00         0.00          0          0
    

    以上命令输出Device的信息,采样时间为1秒,采样2次,若不指定采样次数,则iostat会一直输出采样信息,直到按”ctrl+c”退出命令。
    注意,第1次采样信息与单独执行iostat的效果一样,为从系统开机到当前执行时刻的统计信息。

    • 3、更详细的io统计信息(-x选项)
      为显示更详细的io设备统计信息,我们可以使用-x选项,在分析io瓶颈时,一般都会开启-x选项:
    [root@localhost ~]# iostat -x -k -d 1
    Linux 3.10.0-1160.el7.x86_64 (localhost.localdomain)    2021年09月12日  _x86_64_        (1 CPU)
    
    Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s       avgrq-sz   avgqu-sz   await  r_await  w_await  svctm  %util
    sda               0.00   9915.03      1.00    90.00    4.00   34360.00    755.25       11.79    2.78    1.85    3.99       0.54   0.04
    dm-0              0.00     0.00       0.33    0.31    13.76     7.39          65.83       0.00    3.69    2.37    5.07       0.59   0.04
    dm-1              0.00     0.00        0.01    0.00     0.13     0.00          50.09       0.00    0.47    0.47    0.00       0.27   0.00
    

    以上各列的含义如下:

    rrqm/s: 每秒对该设备的读请求被合并次数,文件系统会对读取同块(block)的请求进行合并
    wrqm/s: 每秒对该设备的写请求被合并次数
    r/s: 每秒完成的读次数
    w/s: 每秒完成的写次数
    rkB/s: 每秒读数据量(kB为单位)
    wkB/s: 每秒往磁盘写数据量(kB为单位)
    avgrq-sz:平均每次IO操作的数据量(扇区数为单位)
    avgqu-sz: 平均等待处理的IO请求队列长度
    await: 平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位)
    svctm: 平均每次IO请求的处理时间(毫秒为单位)
    %util: 采用周期内用于IO操作的时间比率,即IO队列非空的时间比率

    从 rkB/s、wkB/s 是无法判断磁盘是否有问题,一般都是看 %util 比率,代表磁盘的繁忙度,高于90%时比较危险

    对于以上示例输出,我们可以获取到以下信息:

    每秒向磁盘上写30M左右数据(wkB/s值)
    每秒有91次IO操作(r/s+w/s),其中以写操作为主体
    平均每次IO请求等待处理的时间为120.57毫秒,处理耗时为6.33毫秒
    等待处理的IO请求队列中,平均有11.79个请求驻留

    判断磁盘是否存在问题:

    util = (r/s+w/s) * (svctm/1000)
    对于上面的例子有:util = (1+90)*(6.33/1000) = 0.57603
    判断磁盘是否有问题,一般都是看 %util 比率,代表磁盘的繁忙度,高于90%时比较危险

    4、磁盘空间监控 df -h

    • df命令可以查看当前系统磁盘空间的使用情况

    命令:df -h

    [root@localhost ~]# df -h
    文件系统                  容量  已用  可用    已用% 挂载点
    devtmpfs                 484M     0  484M    0%  /dev
    tmpfs                    496M     0  496M    0%  /dev/shm
    tmpfs                    496M  6.8M  489M    2%  /run
    tmpfs                    496M     0  496M    0%  /sys/fs/cgroup
    /dev/mapper/centos-root   17G  3.7G   14G   22%  /
    /dev/sda1               1014M  138M  877M   14%  /boot
    tmpfs                    100M     0  100M    0%  /run/user/0
    
    

    一般都使用根目录 /dev/mapper/centos-root 17G 3.7G 14G 22% /
    每次压测之前,先检查项目所在服务器的磁盘是否够用(记日志)

    5、磁盘写入速度测试

    命令:dd if=/dev/zero of=/export/ddtest bs=8k count=1000000 oflag=direct

    从系统的某个文件拷贝到另一个文件夹下,每次拷贝8kb,共拷贝一百万次
    /dev/zero 为系统无限输出的文件,可以产生无数的数据量
    /export/ddtest 写入数据的目的文件,为自定义文件(/root/server/ddtest)

    dd if=/dev/zero of=/root/server/ddtest bs=8k count=1000000 oflag=direct

    [root@localhost server]# dd if=/dev/zero of=/root/server/ddtest bs=8k count=1000000 oflag=direct
    ^C记录了285180+0 的读入
    记录了285180+0 的写出
    2336194560字节(2.3 GB)已复制,56.0663 秒,41.7 MB/秒
    

    6、综合监控工具-vmstat(重点看 swap 的数据)

    vmstat命令综合了CPU、进程、内存、磁盘IO等信息

    命令:vmstat 1 每秒刷新一次数据
    主要时用来对 swap 进行统计,如果swap的 si、so 长时间不为0 ,代表当前正在频繁进行swap,系统内存不够用了

    [root@localhost server]# vmstat 1
    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
     2  0      0 212380   2108 395904    0    0     7    71   76  133  0  1 99  0  0
     0  0      0 212264   2108 395892    0    0     0    22  131  208  2  3 95  0  0
     0  0      0 212264   2108 395896    0    0     0     0  119  181  0  1 99  0  0
     0  0      0 212104   2108 395896    0    0     0     0  226  272  3  3 94  0  0
     0  0      0 212244   2108 395908    0    0     0     0  106  177  0  2 98  0  0
     0  0      0 212256   2108 395912    0    0     0    21  110  182  1  1 98  0  0
     0  0      0 212124   2108 395916    0    0     0     0  217  289  2  3 95  0  0
    

    7、超级监控工具-dstat

    dstat是一个全能监控工具,整合了CPU、内存、磁盘、网络等几乎所有的监控项,支持实时刷新

    dstat需要先进行安装 yum install -y dstat
    查看常用命令参:dstat --help
    监控命令:dstat -tcmnd --disk-util

    [root@localhost server]# dstat -tcmnd --disk-util
    ----system---- ----total-cpu-usage---- ------memory-usage----- -net/total- -dsk/total- sda-
         time     |usr sys idl wai hiq siq| used  buff  cach  free| recv  send| read  writ|util
    12-09 22:24:18|  0   1  99   0   0   0| 425M 2108k  358M  206M|   0     0 |7398B   68k|0.20
    12-09 22:24:19|  1   2  97   0   0   0| 426M 2108k  358M  205M|1792B 3220B|   0     0 |   0
    12-09 22:24:20|  2   2  96   0   0   0| 426M 2108k  358M  205M|2320B 5588B|   0     0 |   0
    12-09 22:24:21|  2   3  95   0   0   0| 426M 2108k  358M  205M|4134B   11k|   0    23k|0.30
    12-09 22:24:22|  1   2  97   0   0   0| 426M 2108k  358M  205M|1792B 2628B|   0     0 |   0
    12-09 22:24:23|  1   1  98   0   0   0| 426M 2108k  358M  205M|2464B 4862B|   0     0 |   0
    12-09 22:24:24|  1   4  94   0   0   1| 426M 2108k  358M  205M|3950B   11k|   0     0 |   0
    12-09 22:24:25|  1   1  98   0   0   0| 426M 2108k  358M  205M|1852B 2612B|   0    17k|0.10^C
    

    1、网络受吞吐量最差的那个组件限制
    2、局域网内,不受带宽限制
    3、每个组件与应用程序的上限对比
    4、网络设备一般是千兆网卡(125MB)

    8、网络IO监控

    有点复杂

  • 相关阅读:
    Ubuntu 安装Nginx的APT源
    Slots的数值设计与人为干涉
    棋牌游戏的经济系统分析
    kubernetes学习笔记之阿里云游戏业务实战
    Certbot-免费的https证书
    let’s Encrypt 证书之安装故障 Could not bind to IPv4 or IPv6.
    ssh:Permissions 0644 for ‘/root/.ssh/id_rsa’ are too open
    详解nginx websocket配置
    nginx upstream的五种分配方式
    nrm安装与配置
  • 原文地址:https://www.cnblogs.com/DeryKong/p/15161396.html
Copyright © 2011-2022 走看看