• linux硬件资源问题排查:cpu负载、内存使用情况、磁盘空间、磁盘IO


      在使用过程中之前正常的功能,突然无法使用,性能变慢,通常都是资源消耗问题,资源消耗可以从以下几个方面去排查。对于已经安装硬件资源监控软件(zabbix)的环境,直接使用硬件资源监控软件(zabbix),检查服务器的资源消耗情况,在没有安装zabbix的环境,主要排查的资源包括CPU负载、内存使用情况、磁盘空间、磁盘IO等。

    1.1.1    cpu负载

      cpu负载就是cpu在一段时间内正在处理以及等待cpu处理的进程数之和的统计信息,也就是cpu使用队列的长度统计信息,这个数字越小越好。

      使用top指令将会输出如下结果 

      load average代表CPU的平均负载值,示例中的load average: 1.30, 1.27,1.28分别表示当前CPU在1分钟、5分钟和15分钟内的平均负载。对于单核cpu,一旦大于1,就说明job得不到及时调度,系统性能将会受到影响。对于2核心来说,该值大于2才说明cpu忙不过来。

      在top指令输出结果后,输入P,将进程按%cpu降序排列,查看哪些进程在大量占用cpu,输入M,将进程按%MEM降序排列,查看哪些进程在大量占用内存。

    1.1.2    内存使用情况

      使用free -h查看内存使用情况。

    # free -h
    
                  total        used        free      shared  buff/cache   available
    
    Mem:            15G         12G        295M         38M        2.8G        2.6G
    
    Swap:          7.9G        416M        7.5G

      total表示系统总的可用物理内存大小,used表示已经使用的物理内存大小,available可以被 应用程序 使用的物理内存大小,当可使用的物理内存大小较小时,结合top指令,查看哪些应用程序占用的大量内存。

    1.1.3    磁盘空间

      使用df -h查看系统的磁盘使用情况。

    # df -h                    
    
    文件系统        容量  已用  可用 已用% 挂载点
    
    /dev/sda2        50G   24G   27G   47% /
    
    devtmpfs        7.8G     0  7.8G    0% /dev
    
    tmpfs           7.8G   28K  7.8G    1% /dev/shm
    
    tmpfs           7.8G   37M  7.8G    1% /run
    
    tmpfs           7.8G     0  7.8G    0% /sys/fs/cgroup
    
    /dev/sdb2        40G  4.8G   36G   12% /var/scs
    
    /dev/sdc2        30G   20G   11G   64% /home
    
    /dev/sda1       494M  208M  287M   43% /boot
    
    /dev/sdc1       249G  108G  142G   44% /home/sdc
    
    /dev/sdb1       239G  133G  107G   56% /home/sdb
    
    /dev/sda5       220G  101G  120G   46% /home/sda
    
    tmpfs           1.6G  4.0K  1.6G    1% /run/user/42
    
    tmpfs           1.6G   32K  1.6G    1% /run/user/0

      对于磁盘使用情况,主要关注已用%,已用%大于80%后要开始清理无效日志、不在使用的安装包等。

      已用%较大的挂载点,使用du -sh 挂载点/*,查看挂载点内个文件、目录的实际大小。

    # du -sh /home/*
    
    20K     /home/bats
    
    0       /home/data
    
    127M    /home/dba
    
    85M     /home/dba1.5.5
    
    9.5G    /home/dbus
    
    23M     /home/dbus_processor
    
    4.0M    /home/hcloud
    
    65M     /home/kafka
    
    13M     /home/log.tmp
    
    188K    /home/lost+found
    
    93M     /home/ltest

    1.1.4    磁盘IO

      使用iostat -x 5查看磁盘IO使用情况。

    # iostat -x 5
    
    Linux 3.10.0-957.5.1.el7.x86_64 (node9)         2020年04月09日  _x86_64_        (4 CPU)
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
    
              27.61    0.03    3.72    0.12    0.00   68.52
    
    Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
    
    sdb               0.01     0.05    5.46    6.23   166.86   351.76    88.76     0.04    3.02    2.45    3.52   0.31   0.36
    
    sda               2.28     5.02    1.24   28.60    36.80   658.85    46.63     0.01    0.24    3.89    0.08   0.12   0.35
    
    sdc               0.01     0.03    0.33    1.07     2.61     8.68    16.14     0.00    0.62    2.50    0.03   0.43   0.06
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
    
               3.32    0.00    4.50    0.00    0.00   92.18
    
    Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
    
    sdb               0.00     0.00    0.00    3.60     0.00    56.00    31.11     0.00    0.00    0.00    0.00   0.00   0.00
    
    sda               0.00     0.20    0.00   32.40     0.00   669.60    41.33     0.00    0.06    0.00    0.06   0.04   0.14
    
    sdc               0.00     0.00    0.00    0.60     0.00     2.40     8.00     0.00    0.00    0.00    0.00   0.00   0.00
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
    
               4.18    0.00    5.25    0.00    0.00   90.57
    
    Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
    
    sdb               0.00     0.20    0.00    7.80     0.00   138.40    35.49     0.00    0.05    0.00    0.05   0.05   0.04
    
    sda               0.00     0.00    0.00   29.40     0.00   952.00    64.76     0.00    0.07    0.00    0.07   0.03   0.08
    
    sdc               0.00     0.00    0.00    1.40     0.00    12.80    18.29     0.00    0.00    0.00    0.00   0.00   0.00

    重点关注参数:

    1、iowait% 表示CPU等待IO时间占整个CPU周期的百分比,如果iowait值超过50%,或者明显大于%system、%user以及%idle,表示IO可能存在问题。

    2、avgqu-sz 表示磁盘IO队列长度,即IO等待个数。

    3、await 表示每次IO请求等待时间,包括等待时间和处理时间

    4、svctm 表示每次IO请求处理的时间

    5、%util 表示磁盘忙碌情况,一般该值超过80%表示该磁盘可能处于繁忙状态。

     

    pidstat -d 3命令查看进程占用磁盘IO的情况

    kB_rd/s: 每秒进程从磁盘读取的数据量(以kB为单位)

    kB_wr/s: 每秒进程向磁盘写的数据量(以kB为单位)

    # pidstat -d 3 3
    
    Linux 3.10.0-957.5.1.el7.x86_64 (node9)         2020年04月09日  _x86_64_        (4 CPU)
    
     
    
    13时35分30秒   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
    
    13时35分33秒     0      5159      0.00      1.29      0.00  dockerd
    
    13时35分33秒     0      5174      0.00     45.31      0.00  loop0
    
    13时35分33秒     0      5456      0.00      1.29      0.00  rsyslogd
    
    13时35分33秒     0      6379      0.00      2.59      0.00  java
    
    13时35分33秒     0      7791      0.00      2.59      0.00  java
    
    13时35分33秒     0     10411      0.00      1.29      0.00  java
    
    13时35分33秒    27     15611      0.00    132.04      0.00  mysqld
    
    13时35分33秒     0     26538      0.00      1.29      0.00  java
    
    13时35分33秒     0     28097      0.00      1.29      0.00  java
    
    13时35分33秒     0     30421      0.00      3.88      0.00  java
    
    13时35分33秒     0     32541      0.00      1.29      0.00  java
  • 相关阅读:
    Spring Cloud 接口契约测试
    看我玩弄千万日志于股掌
    从哲学层面浅谈计算机学习方法论
    一切互联网优势都是效率优势,一切竞争最终都是效率之争
    Arduino--蜂鸣器
    Arduino--光感应模块--模拟输入
    Arduino---按钮
    Arduino--PWM引脚
    Arduino专用绘图软件Fritzing
    点亮LED灯
  • 原文地址:https://www.cnblogs.com/qiuxiao/p/12667561.html
Copyright © 2020-2023  润新知