前言
好的,今天我来学习,因为在work中发现work服务器io占比过高,但是由不清楚怎么排查,所以进行网上冲浪,学习一些关于i/o检查的命令,那么这里来积累一下。
正文:
其实我们的检查IO的命令有许多,TOP命令是大家最熟知的一种,单用top命令我们可以查看cpu的占用率等诸多信息;
那么这里我们将这些信息进行一下中文说明:
top命令的第一行:
这里会显示top的一些日期信息,以及当前服务器的使用人数,以及当前服务器的平均负载情况
top命令的第二行:
这里会显示总的进程数量(tasks:xxx total),以及当前正在运行的进程,已进入休眠状态的进程,被io阻塞的进程(stoped),以及僵尸进程数量(zombie)
top命令的第三行:
这里就是我们直面cpu信息的位置:
us(user):表示 CPU 在用户运行的时间百分比,通常用户 CPU 高表示有应用程序比较繁忙。典型的用户程序有:数据库、Web 服务器等。
sy(sys):表示 CPU 在内核态运行的时间百分比(不包括中断),通常内核态 CPU 越低越好,否则表示系统存在某些瓶颈。
ni(nice):表示用 nice 修正进程优先级的用户进程执行的 CPU 时间。nice 是一个进程优先级的修正值,如果进程通过它修改了优先级,则会单独统计 CPU 开销。
id(idle):表示 CPU 处于空闲态的时间占比,此时,CPU 会执行一个特定的虚拟进程,名为 System Idle Process。
wa(iowait):表示 CPU 在等待 I/O 操作完成所花费的时间,通常该指标越低越好,否则表示 I/O 存在瓶颈,可以用 iostat 等命令做进一步分析。
hi(hardirq):表示 CPU 处理硬中断所花费的时间。硬中断是由外设硬件(如键盘控制器、硬件传感器等)发出的,需要有中断控制器参与,特点是快速执行。
si(softirq):表示 CPU 处理软中断所花费的时间。软中断是由软件程序(如网络收发、定时调度等)发出的中断信号,特点是延迟执行。
st(steal):表示 CPU 被其他虚拟机占用的时间,仅出现在多虚拟机场景。如果该指标过高,可以检查下宿主机或其他虚拟机是否异常。
top命令的第四行:
这里主要显示当前磁盘内存的使用情况,与free -g/-h 类似,可以查看一下当前的内存占用与磁盘占用数值
那么在了解的这些基础参数后,那么我们就可以进行性能分析了,如果在使用过程中,发现有用户进程占用cpu率较高,那么可以使用:
top -Hp <pid进程号>
来查看当前占用率高的CPU用户的所有进程从而进一步排查问题;
或者可以使用top 1来查看当前所有cpu的使用率,
在进入top的监控界面后,继续输入命令可以执行一些切换:
b:行级高亮,显示正在活动中的进程
x:列级高亮,显示cpu列
h:输出帮助命令
f:输出各字段含义,以及界面字段显示
s,d:修改显示延迟时间间隔
q:退出当前监控命令
z:修改颜色
Z:设置修改颜色选项
A: 进入A模式,用小写a可以切换视图状态
先写在后面
大佬的文档依旧很有用,目前还没学完,今天就先看这么多了
1、CPU使用率过高问题排查及Linux之top命令用法详解-腾讯云开发者社区-腾讯云 (tencent.com)
2、top命令中的wa指标(转) - 奋斗终生 - 博客园 (cnblogs.com)
3、发现并解决linux高I/O Wait问题 – 如何发现linux中引起高io等待的进程_iowait高,怎么判断是什么程度导致的-CSDN博客