Linux磁盘监控思路分析

磁盘监控原理

设备又名I/O设备,泛指计算机系统中除主机以外的所有外部设备。

1.1 计算机分类

1.1.1 按照信息传输速度分:

1.低速设备:每秒传输信息仅几个字节或者百个字节,如:键盘、鼠标等

2.中速设备:每秒传输信息数千个字节或者数万个字节,如:打印机

3.高速设备:每秒传输信息数数10万个字节,如:磁盘

1.1.2 按照信息交换单位分

1.字符设备:以字符为输入/输出信息的单位,如:键盘,显示终端

2.块设备:以数据块为单位输入/输出信息,如:磁盘

注:何为数据块:磁盘中常以一个扇区作为一个数据块,一个扇区就是一个读写单位

一、磁盘性能指标

1、测试磁盘性能,使用命令:dd

因数据写入磁盘,可能是缓存写,直接写(不经过缓冲区直接写入磁盘),顺序io,随机io的区别所以,这种dd测试并不是很准确。

这不是一个专业的测试工具,不过如果对于测试结果的要求不是很苛刻的话,平时可以使用来对磁盘的读写速度作一个简单的评估.

在使用前首先了解两个特殊设备
/dev/null 伪设备,回收站.写该文件不会产生IO
/dev/zero 伪设备,会产生空字符流,对它不会产生IO

测试磁盘写速率
[root@localhost ~]# time dd if=/dev/zero of=/test.dbf bs=8k count=300000   #注意:会在根目录下产生一个test.dbf文件,记得测试完后删除
300000+0 records in
300000+0 records out
2457600000 bytes (2.5 GB) copied, 68.191 seconds, 36.0 MB/s  #写速率36MB/s

real    1m13.960s
user    0m0.077s
sys    0m5.272s

测试磁盘读速率
[root@localhost ~]# time dd if=/test.dbf of=/dev/null  bs=8k    #读test.dbf文件
300000+0 records in
300000+0 records out
2457600000 bytes (2.5 GB) copied, 36.2647 seconds, 67.8 MB/s    #读速率67.8MB/s

real    0m36.331s
user    0m0.018s
sys    0m2.823s

二、磁盘性能监控

1. 获取iops

[root@localhost ~]# iostat -m 3
Linux 2.6.18-238.el5 (localhost.localdomain)     08/03/2017

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.01    0.09    0.87    0.87    0.00   98.16

Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
sda               6.91         0.44         0.36       6162       5009
sda1              0.01         0.00         0.00          1          0
sda2              6.90         0.44         0.36       6161       5009
dm-0            100.40         0.44         0.36       6160       5009
dm-1              0.01         0.00         0.00          0          0

tps:该设备每秒的传输次数(Indicate the number of transfers per second that were issued to the device.)。
“一次传输"意思是"一次I/O请求”。多个逻辑请求可能会被合并为"一次I/O请求"。"一次传输"请求的大小是未知的。

- MB_read/s:每秒从设备(drive expressed)读取的数据量;
- MB_wrtn/s:每秒向设备(drive expressed)写入的数据量;
- MB_read:读取的总数据量;
- MB_wrtn:写入的总数量数据量;这些单位都为Kilobytes。

2. 获取IOPS、io队列、io等待、io响应时间等

[root@localhost ~]# iostat -xm 3   #m 代表以MB为单位显示。 
Linux 2.6.18-238.el5 (localhost.localdomain)     08/03/2017avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.00    0.00    3.67   23.14    0.00   73.19

Device:         rrqm/s    wrqm/s  r/s   w/s    rMB/s    wMB/s  avgrq-sz  avgqu-sz  await  svctm  %util
sda             304.67     0.33 636.00  3.33    76.76     0.01   245.93     2.40    3.53   1.56  99.87
sda1              0.00     0.00  0.00  0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sda2            304.67     0.33 636.00  3.33    76.76     0.01   245.93     2.40    3.53   1.56  99.87
dm-0              0.00     0.00 941.33  3.67    76.78     0.01   166.43     3.25    3.30   1.06  99.87
dm-1              0.00     0.00  0.00  0.00     0.00     0.00     0.00     0.00    0.00   0.00   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队列非空的时间比率

3. IO评估指标

  1. vmstat Block in /out
    bi+bo过大,而且vmstat cpu wa值较大应该考虑均衡磁盘负载,可以结合iostat输出来分析。

  2. IOwait time
    iostat iowait% 小于25%,说明IO性能处于良好的状态;

  3. util 磁盘使用率
    一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的,即 delta(use)/s/1000 (因为use的单位为毫秒)

    • 如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。
    • idle小于70% IO压力就较大了,一般读取速度有较多的wait。
    • 同时可以结合vmstat 查看查看b参数(等待资源的进程数)和wa参数(IO等待所占用的CPU时间的百分比,高过30%时IO压力高)。
  4. await 平均等待时间
    平均每次设备I/O操作的等待时间 (毫秒).即 delta(ruse+wuse)/delta(rio+wio)
    await 的大小一般取决于服务时间(svctm) 以及 I/O 队列的长度和 I/O 请求的发出模式。

    • await 的参数要多和 svctm 来参考。差的过高就一定有 IO 的问题。
    • 如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;
    • 如果 await 远大于 svctm,说明I/O 队列太长,io响应太慢,则需要进行必要优化。如果响应时间超过了用户可以容许的范围,这时可以考虑更换更快的磁盘,调整内核 elevator 算法,优化应用。
  5. avgqu-sz 平均I/O队列长度

    • 如果avgqu-sz比较大,也表示有大量io在等待。
      avgqu-sz 也是个做 IO 调优时需要注意的地方,这个就是直接每次操作的数据的大小,如果次数多,但数据拿的小的话,其实 IO 也会很小。如果数据拿的大,IO 的数据会高。也可以通过 avgqu-sz × ( r/s or w/s ) = rsec/s or wsec/s。也就是讲,读写速度是这个来决定的。
      由于 avgqu-sz 是按照单位时间的平均值,所以不能反映瞬间的 I/O 洪水。

4. iotop

里面最重要的参数,actual disk read 和actual disk write 分别代表实际磁盘读写速度

然后下面,我们可以根据每一列进行io排序,就能知道io具体消耗是哪个进程导致的。

注意:TID代表的是线程号,如果是多线程的话,可以借助command 判断是哪个进程,也可以根据ps -eLf | grep TID 来获取到他的父进程号。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/760208.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

J021_QQ号格式校验

一、需求描述 校验QQ号码是否正确。要求全部是数字,数字长度(6-20位之间),不能以0开头。 二、代码实现 package com.itheima.sort;public class Test {public static void main(String[] args) {System.out.println("----…

MySQL4(事务、函数、慢查询和索引)

目录 一、MySQL事务 1. 概念 2. 事务的ACID原则 3. MySQL实现事务的方法 4. MySQL实现事务的步骤 5. 事务的原子性、一致性、持久性 6. 事务的隔离性 7. MySql中的锁 1. 共享锁 2. 排他锁 3. 行级锁 4. 表级锁 5. 间隙锁 6. 临键锁 7. 记录锁 8. 意向共享锁…

1.spring入门案例

Spring 介绍 Spring是轻量级的开源的JavaEE框架。 Spring有两个核心部分:IOC和AOP IOC 控制反转,把创建对象过程交给Spring进行管理。 AOP 面向切面,不修改源代码进行功能增强。 Spring特点 1.方便解耦,简化开发。 2.AOP编…

docker安装sqlserver2019

1、背景 由于要学习flink cdc,并且数据源是sqlserver,所以这里采用docker安装sqlserver。 2、安装步骤 (1)建目录 // 创建指定的目录 mkdir sqlserver// 进入该目录 cd sqlserver// 创建/data/mssql目录 mkdir -p /data/mssql…

SpringBoot + mkcert ,解决本地及局域网(内网)HTTPS访问

本文主要解决访问SpringBoot开发的Web程序,本地及内网系统,需要HTTPS证书的问题。 我测试的版本是,其他版本不确定是否也正常,测试过没问题的小伙伴,可以在评论区将测试过的版本号留下,方便他人参考: <spring-boot.version>2.3.12.RELEASE</spring-boot.vers…

Ubuntu20.04安装vimplus插件

参考文章&#xff1a; Ubuntu Linux下vimplus的安装及使用安装vimplus之后乱码问题解决 1、安装步骤&#xff1a; $ git clone https://github.com/chxuan/vimplus.git ~/.vimplus$ cd ~/.vimplus$ ./install.sh2、./install.sh 过程 出现选择是否备份 /home/yin-roc/.vim…

注意力机制之ECA-Net:Efficient Channel Attention for Deep Convolutional Neural Network

论文link&#xff1a;link code&#xff1a;code 1.摘要 近年来&#xff0c;通道注意机制被证明在改善深层卷积神经网络&#xff08;CNN&#xff09;的性能方面提供了巨大的潜力。然而现有的大多数方法都致力于开发更复杂的注意模块以获得更好的性能&#xff0c;这不可避免地增…

博客都在使用的打字机效果,居然这么简单?

效果展示 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><style>body …

历年各省废水污染、治理数据

1996-2019年各省废水污染、治理数据https://download.csdn.net/download/a519573917/89485042 目录 摘要&#xff1a; 一、引言 二、文献综述 三、实证模型 &#xff08;一&#xff09;变量选择 &#xff08;二&#xff09;数据来源 &#xff08;三&#xff09;模型设定…

timm中模型更换huggingface模型链接

现在timm默认使用huggingface的链接了&#xff0c;错误链接如下&#xff1a; (MaxRetryError("HTTPSConnectionPool(hosthuggingface.co, port443): Max retries exceeded with url: /timm/swinv2_tiny_window8_256.ms_in1k/resolve/main/model.safetensors (Caused by C…

适用于智慧城市、智慧文旅等在线场景的轻量级3D数字人引擎MyAvatar简介

本人研发的国内首个纯面向web应用和小程序的轻量级3D虚拟人引擎MyAvatar。 功能简述 支持3D模型定制&#xff08;写实或卡通风格均可&#xff0c;人物模型需实现绑定和变形&#xff09;动画可以内置于模型中&#xff0c;也可以单独以glb或fbx格式导出并动态加载支持readyplay…

音频接口电路的PCB设计

Audio接口是音频插孔&#xff0c;即音频接口&#xff0c;可分为Audio in接口和Audio out接口。音频接口是连接麦克风和其他声源与计算机的设备&#xff0c;其在模拟和数字信号之间起到了桥梁连接的作用。对于平台的数字音频接RK3588口&#xff0c;需遵循《Rockchip RK3588 High…

时序分析之Clock rise/fall edge边沿对选取解析

目录 一、前言 二、Clock edge的选取逻辑 2.1 设计工程 2.2 同频同相 2.3 同频不同相1 2.4 同频不同相2 2.5 倍频关系(Fclk1>Fclk2) 2.6 倍频关系(Fclk1)<> 2.7 倍频关系存在相移(Fclk1)<> 2.8 非倍频关系无相移(Fclk1)<> 2.9 非倍频关系有相移…

在数字化转型中,中小企业如何打造数字化产品和服务?

引言&#xff1a;随着社会的发展和消费者行为的变化&#xff0c;市场对数字化产品和服务的需求日益增长。中小企业需要紧跟这一趋势&#xff0c;通过开发数字化产品和服务来满足消费者的新需求。云计算、大数据、人工智能等先进技术的出现&#xff0c;为中小企业提供了更多的机…

第5章_Modbus通讯协议

文章目录 5.1 学习Modbus的快速方法5.1.1 寄存器速记5.1.2 协议速记 5.2 初识Modbus5.2.1 背景5.2.2 什么是Modbus&#xff1f;1. Modbus简介2. Modbus特点3. Modbus常用术语4. Modbus事务处理 5.3 Modbus软件与使用5.3.1 Modbus软件简介5.3.2 Modbus Poll&#xff08;主站设备…

Pikachu靶场--Sql Inject

参考借鉴 pikachu靶场练习&#xff08;详细&#xff0c;完整&#xff0c;适合新手阅读&#xff09;-CSDN博客 数字型注入(post) 这种类型的SQL注入利用在用户输入处插入数值&#xff0c;而不是字符串。攻击者试图通过输入数字来修改SQL查询的逻辑&#xff0c;以执行恶意操作。…

C# OpenCvSharp 入门

摘要 C# OpenCvSharp 是一个基于OpenCV&#xff08;开源计算机视觉库&#xff09;的C#封装库&#xff0c;它提供了一组功能强大的工具和函数&#xff0c;用于图像处理、计算机视觉和计算机图形学等领域。通过使用OpenCvSharp库&#xff0c;您可以在C#应用程序中轻松地实现各种图…

5.6 0-1背包问题

#include<iostream> #include<string> #include<stdlib.h> #include<bits/stdc.h> using namespace std;int c;//背包容纳的重量 int n;//物品数量 int cw;//当前重量 int cv;//当前价值 int bestv;//当前最优价值 int x[100]; int bestx[100]; struct…

VMware每次打开网络设置都出现需要运行NetworkManager问题

每次打开都出现这个情况&#xff0c;是因为之前把NetworkManager服务服务关闭&#xff0c;重新输入命令&#xff1a; sudo systemctl start NetworkManager.service或者 sudo service network-manager restart 即可解决&#xff0c;但是每次开机重启都要打开就很麻烦&#xf…

无人机赋能工程测绘

勘察设计 业务挑战 采集效率低导致工程周期延长&#xff0c;难以满足及时交付的需求 外业工作量大&#xff0c;人员、时间、设备投入成本高 测绘成果单一&#xff0c;仅限于数字线划图&#xff0c;无法提供可视化模型 无人机优势 快速构建二三维模型&#xff0c;提供丰富…