首页 > 系统相关 >收藏:LINUX中的重要IO指标小结

收藏:LINUX中的重要IO指标小结

时间:2022-12-02 10:36:05浏览次数:44  
标签:kB 0.00 pidstat IO LINUX 进程 磁盘 DISK 小结


源自极客时间的教程:
1、使用率,是指磁盘处理 I/O 的时间百分比。过高的使用率(比如超过 80%),通常意味
着磁盘 I/O 存在性能瓶颈。
2、饱和度,是指磁盘处理 I/O 的繁忙程度。过高的饱和度,意味着磁盘存在严重的性能瓶
颈。当饱和度为 100% 时,磁盘无法接受新的 I/O 请求。
3、IOPS(Input/Output Per Second),是指每秒的 I/O 请求数。
4、吞吐量,是指每秒的 I/O 请求大小。
5、响应时间,是指 I/O 请求从发出到收到响应的间隔时间。

一  IOSTAT分析:

   

收藏:LINUX中的重要IO指标小结_数据

%util ,就是我们前面提到的磁盘 I/O 使用率;
r/s+ w/s ,就是 IOPS;
rkB/s+wkB/s ,就是吞吐量;
r_await+w_await ,就是响应时间。

 

上面提到的 iostat 只提供磁盘整体的 I/O 性能数据,缺点在于,并不能知道具体是哪些进
程在进行磁盘读写。要观察进程的 I/O 情况,你还可以使用 pidstat 和 iotop 这两个工
具。
pidstat 是我们的老朋友了,这里我就不再啰嗦它的功能了。给它加上 -d 参数,你就可以
看到进程的 I/O 情况,如下所示:
从 pidstat 的输出你能看到,它可以实时查看每个进程的 I/O 情况,包括下面这些内容。
除了可以用 pidstat 实时查看,根据 I/O 大小对进程排序,也是性能分析中一个常用的方
法。这一点,我推荐另一个工具, iotop。它是一个类似于 top 的工具,你可以按照 I/O
大小对进程排序,然后找到 I/O 较大的那些进程。
iotop 的输出如下所示:

$ pidstat -d 1
13:39:51 UID PID kB_rd/s kB_wr/s kB_ccwr/s iodelay Command
13:39:52 102 916 0.00 4.00 0.00 0 rsyslogd

用户 ID(UID)和进程 ID(PID) 。
每秒读取的数据大小(kB_rd/s) ,单位是 KB。
每秒发出的写请求数据大小(kB_wr/s) ,单位是 KB。
每秒取消的写请求数据大小(kB_ccwr/s) ,单位是 KB。
块 I/O 延迟(iodelay),包括等待同步块 I/O 和换入块 I/O 结束的时间,单位是时钟
周期。

除了可以用 pidstat 实时查看,根据 I/O 大小对进程排序,也是性能分析中一个常用的方
法。这一点,我推荐另一个工具, iotop。它是一个类似于 top 的工具,你可以按照 I/O
大小对进程排序,然后找到 I/O 较大的那些进程。

$ iotop
Total DISK READ : 0.00 B/s | Total DISK WRITE : 7.85 K/s
Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 0.00 B/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
15055 be/3 root 0.00 B/s 7.85 K/s 0.00 % 0.00 % systemd-journald

从这个输出,你可以看到,前两行分别表示,进程的磁盘读写大小总数和磁盘真实的读写
大小总数。因为缓存、缓冲区、I/O 合并等因素的影响,它们可能并不相等。
剩下的部分,则是从各个角度来分别表示进程的 I/O 情况,包括线程 ID、I/O 优先级、每
秒读磁盘的大小、每秒写磁盘的大小、换入和等待 I/O 的时钟百分比等。

标签:kB,0.00,pidstat,IO,LINUX,进程,磁盘,DISK,小结
From: https://blog.51cto.com/u_14230175/5905570

相关文章

  • 2022 ios APP最新iOS开发上架测试教程
     本文详细介绍最新的在windows上进行iosapp开发编译打包安装到手机测试的完整流程。介绍ios开发经常遇到的问题和解决方法,包括ios开发证书,ios开发描述文件等。2.Ap......
  • (收藏)window.location.hash属性介绍
    ​​http://www.html-js.com/article/JavaScript-focus-and-keyboard​​​location是javascript里边管理地址栏的内置对象,比如location.href就管理......
  • 用apache common io包获得文件扩展名
    apachecommonio包包含了很多非常实用的工具类,比如连获得文件的扩展名都有了,比如:importorg.apache.commons.io.FilenameUtils;Stringextensi......
  • 高效的Integer.valueOf小结
    在PMD中,都建议使用的Integer.valueOf,avoidinstantiatingintegerobjects.CallInteger.valueOf()instead.历史:JDK1.5后增加了Integer.valueOf......
  • 收藏:linux中查看内存泄露的工具
    来自极客时间的讲座中,提到linux中查看内存泄露的工具:memleak.1.使用方式memleak-a-p$(pidofapp)# -a表示显示每个内存分配请求的大小以及地址#-p指定案例应用的P......
  • java往oracle存储过程中传递数组方法小结
    java往oracle存储过程中传递数组方法小结,下面是一个例子,比如存储过程中要接受一个数组,并且输出一个数组,则先注意数组在oracle中的定义方法如下:CRE......
  • Masked Autoencoders Are Scalable Vision Learners
    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! CVPR2022 Abstract 1.Introduction 2.RelatedWork 3.Approach 4.ImageNetExperiments ......
  • Linux将shell脚本设置为自动启动项
    Linux系统下如何设置开机启动项1.修改/etc/rc.d/rc.local文件,在rc.local后面加上你的shell脚本命令赋值权限chmodu+xapp.sh修改后的rc.local如下#!/bin/bash#THISFILE......
  • Mono.NET Linux下使用动态链接库教程
    最终目标使用.net开发的程序可以引用C/C++编写的链接库实现具体的业务功能问题描述在Windows平台下我们可以通过DllImport的方式引入一个“.dll”文件来实现动态库的开发,但......
  • Linux下面提示Encoding 936 data could not be found.
    最近在使用CentOS7进行Mono测试的时候,发现好多异常情况,其中程序里面有用到GBK编码,然后运行的时候就报错了,错误码具体如下:WARNING:Theruntimeversionsupportedbythis......