在使用过程中之前正常的功能,突然无法使用,性能变慢,通常都是资源消耗问题,资源消耗可以从以下几个方面去排查。对于已经安装硬件资源监控软件(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        .8G        .6G

Swap:          .9G        416M        .5G

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

1.1.3    磁盘空间

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

# df -h                    

文件系统        容量  已用  可用 已用% 挂载点

/dev/sda2        50G   24G   27G   % /

devtmpfs        .8G       .8G    % /dev

tmpfs           .8G   28K  .8G    % /dev/shm

tmpfs           .8G   37M  .8G    % /run

tmpfs           .8G       .8G    % /sys/fs/cgroup

/dev/sdb2        40G  .8G   36G   % /var/scs

/dev/sdc2        30G   20G   11G   % /home

/dev/sda1       494M  208M  287M   % /boot

/dev/sdc1       249G  108G  142G   % /home/sdc

/dev/sdb1       239G  133G  107G   % /home/sdb

/dev/sda5       220G  101G  120G   % /home/sda

tmpfs           .6G  .0K  .6G    % /run/user/

tmpfs           .6G   32K  .6G    % /run/user/

  对于磁盘使用情况,主要关注已用%,已用%大于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 

Linux 3.10.-957.5..el7.x86_64 (node9)         2020年04月09日  _x86_64_        ( 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  

Linux 3.10.-957.5..el7.x86_64 (node9)         2020年04月09日  _x86_64_        ( CPU)

13时35分30秒   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command

13时35分33秒                 0.00      1.29      0.00  dockerd

13时35分33秒                 0.00     45.31      0.00  loop0

13时35分33秒                 0.00      1.29      0.00  rsyslogd

13时35分33秒                 0.00      2.59      0.00  java

13时35分33秒                 0.00      2.59      0.00  java

13时35分33秒                0.00      1.29      0.00  java

13时35分33秒               0.00    132.04      0.00  mysqld

13时35分33秒                0.00      1.29      0.00  java

13时35分33秒                0.00      1.29      0.00  java

13时35分33秒                0.00      3.88      0.00  java

13时35分33秒                0.00      1.29      0.00  java

linux硬件资源问题排查:cpu负载、内存使用情况、磁盘空间、磁盘IO的更多相关文章

  1. Linux查看CPU和内存使用情况 【转】

    Linux查看CPU和内存使用情况 在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要.在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况.运行 ...

  2. 操作系统复习——如何查看一个进程的详细信息,如何追踪一个进程的执行过程 ,如何在 Linux 系统下查看 CPU、内存、磁盘、IO、网卡情况?epoll和select区别?

    1. 如何查看一个进程的详细信息,如何追踪一个进程的执行过程 通过pstree命令(根据pid)进行查询进程内部当前运行了多少线程:# pstree -p 19135(进程号) 使用top命令查看(可 ...

  3. Linux查看CPU和内存使用情况总结

    Linux查看CPU和内存使用情况:http://www.cnblogs.com/xd502djj/archive/2011/03/01/1968041.html 在做Linux系统优化的时候,物理内 ...

  4. SQLSERVER排查CPU占用高的情况

    SQLSERVER排查CPU占用高的情况 今天中午,有朋友叫我帮他看一下数据库,操作系统是Windows2008R2 ,数据库是SQL2008R2 64位 64G内存,16核CPU 硬件配置还是比较高 ...

  5. 查看计算机CPU、内存使用情况

    Shift + Ctrl + Esc,打开Windows任务管理器,点击性能,如图: 可以清楚的看到整台机子的CPU.内存使用情况,其中CPU使用记录下有8个小窗口,因为博主的CPU是8核的,讲讲CP ...

  6. Linux系统排查——CPU负载篇

    本随笔介绍CPU负载的排查手段. 查看系统负载的工具:uptime,w,都能查看系统负载,系统平均负载是处于运行或不可打扰状态的进程的平均数, 可运行:运行态,占用CPU,或就绪态,等待CPU调度. ...

  7. Linux查看CPU和内存使用情况(转)

    在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要.在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况.运行 top 命令后,CPU 使用状态会 ...

  8. Linux查看CPU和内存使用情况

    在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要.在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况.运行 top 命令后,CPU 使用状态会 ...

  9. Linux查看CPU和内存使用情况【转】

    转自:http://www.cnblogs.com/xd502djj/archive/2011/03/01/1968041.html 在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应 ...

随机推荐

  1. CJSON的封装API

    为了更方便使用C的JSON库,对其进行了一层封装. H文件: #ifndef __JSONHELPER__ #define __JSONHELPER__ #ifdef __cplusplus exte ...

  2. Ubuntu部署Asp.net core网站无法访问

    前几天应工作需要,在阿里云上部署一个测试站点.本以为分分钟的事情,没想到打脸了. 当时直接新建一个webapi项目,publish后直接上传到阿里云,随后设置nginx转发网站端口5000. 接着打开 ...

  3. 【剑指Offer】简单部分每日五题 - Day 1

    今天开始更新leetcode上<剑指Offer>的题解,先从简单难度开始.预计按下列顺序更新: 简单难度:每日5题 中等难度:每日3题 困难难度:每日1题 17 - 打印从1到最大的n位数 ...

  4. Intel优化Gen7驱动代码 Geekbench 5性能猛增

    Linux下缺少大量开发.支持是会导致各种奇葩的错误的,Intel日前就提交了一个代码修复,22nm Ivybridge及Haswell处理器的GeekBench 5的性能就提升了330%. 3.3倍 ...

  5. Overt.GrpcTemplate.Service 模板使用教程

    阅读这篇文章需要先阅读我的另外一篇文章,目前还未发布出来,待发布中... 1. Overt.GrpcTemplate.Service .Net Core 3.1 版本 模板名称改成 Overt.Grp ...

  6. jupyter 安装问题 building 'zmq.libzmq' extension error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools

    1.用pip install jupyter 安装到一半就报错 错误提示: building 'zmq.libzmq' extension error: Microsoft Visual C++ 14 ...

  7. 为什么vue中的data用return返回呢?

    不使用return包裹的数据会在项目的全局可见,会造成变量污染:使用return包裹后数据中变量只在当前组件中生效,不会影响其他组件. 当一个组件被定义, data 必须声明为返回一个初始数据对象的函 ...

  8. tomcat 对 vue的history默认支持 tomcat 开启步骤 1.build文件放入webapps目录 2.进入conf目录修改server.xml端口号改成8088 3.进入bin目录运行startup.bat 4.浏览器 localhost:8088/workName 访问即可

    tomcat 对 vue的history默认支持 tomcat 开启步骤 1.build文件放入webapps目录 2.进入conf目录修改server.xml端口号改成8088 3.进入bin目录运 ...

  9. 前端视频直播技术总结及video.js在h5页面中的应用

    全手打原创,转载请标明出处:https://www.cnblogs.com/dreamsqin/p/12557070.html,多谢,=.=~ (如果对你有帮助的话请帮我点个赞啦) 目前有一个需求是在 ...

  10. Java基础语法(1)-关键字与保留字

    title: Java基础语法(1)-关键字与保留字 blog: CSDN data: Java学习路线及视频 1.关键字 关键字(keyword)的定义和特点 定义:被Java语言赋予了特殊含义,用 ...