linux查看磁盘io性能

2023-10-29

1. 查看磁盘 IO 性能 

1.1 top 命令

top 命令通过查看 CPU 的 wa% 值来判断当前磁盘 IO 性能,如果这个数值过大,很可能是磁盘 IO 太高了,当然也可能是其他原因,例如网络 IO 过高等。

1.2 sar 命令

sar 命令是分析系统瓶颈的神器,可以用来查看 CPU 、内存、磁盘、网络等性能。

sar 命令查看当前磁盘性能的命令为:

sar -d -p 1 2

其中, “-d”参数代表查看磁盘性能,“-p”参数代表将 dev 设备按照 sda,sdb……名称显示,“1”代表每隔1s采取一次数值,“2”代表总共采取2次数值。

  • await:平均每次设备 I/O 操作的等待时间(以毫秒为单位)。 

  • svctm:平均每次设备 I/O 操作的服务时间(以毫秒为单位)。

  • %util:一秒中有百分之几的时间用于 I/O 操作。  

对于磁盘 IO 性能,一般有如下评判标准:

正常情况下 svctm 应该是小于 await 值的,而 svctm 的大小和磁盘性能有关,CPU 、内存的负荷也会对 svctm 值造成影响,过多的请求也会间接的导致 svctm 值的增加。

await 值的大小一般取决与 svctm 的值和 I/O 队列长度以 及I/O 请求模式,如果 svctm 的值与 await 很接近,表示几乎没有 I/O 等待,磁盘性能很好,如果 await 的值远高于 svctm 的值,则表示 I/O 队列等待太长,系统上运行的应用程序将变慢,此时可以通过更换更快的硬盘来解决问题。

%util 项的值也是衡量磁盘 I/O 的一个重要指标,如果 %util 接近 100% ,表示磁盘产生的 I/O 请求太多,I/O 系统已经满负荷的在工作,该磁盘可能存在瓶颈。长期下去,势必影响系统的性能,可以通过优化程序或者通过更换更高、更快的磁盘来解决此问题。

默认情况下,sar从最近的0点0分开始显示数据;如果想继续查看一天前的报告;可以查看保存在/var/log/sa/下的sar日志:

sar -d -p -f  /var/log/sa/sa11  | more

1.3 iostat 命令

iostat主要用于监控系统设备的 IO 负载情况,iostat 首次运行时显示自系统启动开始的各项统计信息,之后运行 iostat 将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。

iostat -dxk 1 2

该命令的结果与上面  sar -d -p 1 2  命令类似,实际使用中主要还是看 await svctm %util 参数。

 

2. 测试磁盘 IO 性能

2.1 hdparm 命令

hdparm 命令提供了一个命令行的接口用于读取和设置IDE或SCSI硬盘参数,注意该命令只能测试磁盘的读取速率。

例如,测试 sda 磁盘的读取速率:

hdparm -Tt /dev/sda1

linux先要安装hdparm服务.结果显示带缓存的读取速率为9955MB/s,磁盘的实际读取速率为567MB/s

2.2 fio 命令

fio 命令是专门测试 iops 的命令,比 dd 命令准确,fio 命令的参数很多,这里举几个例子供大家参考:

顺序读:

fio -filename=/var/test.file -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=test_r

顺序写:

fio -filename=/var/test.file -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=test_randw

顺序写:

fio -filename=/var/test.file -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=test_w

混合随机读写:

fio -filename=/var/test.file -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=test_r_w -ioscheduler=noop

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux查看磁盘io性能 的相关文章

  • unity不同分辨率适配摄像机

    竖屏游戏的时候 unity中摄像机是自动上下适配的 也就是说在不同分辨率下看到的上下看到的世界范围是一致的 比如在iphone6正常 那么在iphoneX上就有一种放大的效果 而正常的情况是在iphoneX上看到的宽度应该是一致的 也就是说
  • Html5 播放实时音频流

    Html5 播放实时音频流 项目需求 Web端播放实时音频流 折腾了两天后问题得以解决 记录下开发调试过程 方便后来者 首次想到是利用Audio标签 Audio标签可以直接播放MP3格式 服务端将实时音频流编码成MP3格式 通过Http方式
  • 力软敏捷开发框架7.0.6源码

    力软敏捷开发框架真正源码 从我所看到的情况来看 如今敏捷软件开发被广泛误解了 许多人认为敏捷 他们只需要像scrum这样的过程即可定义sprint和迭代的框架 他们会不断冲刺 直到精疲力尽 然后改变直至停滞 但是 当您问他们面向对象设计的原
  • React 16官网 (main concepts) 浏览

    翻译一下官网 顺便了解一下React 16版本的新特性 照旧 从Hello World开始 ReactDOM render h1 Hello world h1 document getElementById root 在集成了React的必
  • 母版页使用问题(显示系统时间 js)

    在使用母版页的时候 发现源文件控件元素的ID和生成HTML文件的ID不一致 表单from的name属性和id属性变成了aspnetForm 控件的id属性被无缘无故了加上了ctl00 ContentPlaceHolder1 前缀 其name
  • 基于Arduino nano 的6路循迹小车

    define leftA PIN 7 define leftB PIN 6 define left Pwm PIN 5 define STBY 8 define rightA PIN 9 define rightB PIN 10 defin

随机推荐

  • python经典练习十道(四)

    1 请输入星期几的第1个字母 用来判断是星期几 如果第1个字母一样 则继续判断第2个字母 以此类推 week Sunny Monday Tuesday Wednesday Thursday Friday Saturday while Tru
  • node搭建一个简单的脚手架

    一 什么是脚手架 脚手架 Scaffold 是指在软件开发过程中为提高开发效率而提供的一套基础代码结构 组织规范 开发工具和工程化配置的工具 脚手架可以帮助开发团队快速搭建项目的基础框架 规范项目的开发流程 并提供一些常用的功能和工具 脚手
  • mpvue返回页面,当前页面数据不会清空

    遇到问题 使用mpvue时 编辑页面会将数据加载到页面上 点击返回 新增页面时 进入的同一页面会发现数据仍然在 页面没有被卸载 数据没有清空 解决方案 在进入页面时 在生命周期内重置data数据 mounted Object assign
  • vue,elementui更改文件名下载,并添加el-progress进度条

    功能 vue elementui更改文件名下载 下载添加el progress进度条 需求 公司需要下载fastdfs文件系统文件 通过http方式 并修改下载的文件名 ps 跨域问题通过配置nginx解决 下载组件代码如下
  • 基于BC-linux/Centos下的K8S单机环境搭建

    搭建前环境准备 配置虚拟机 详细的配置流程比较简单 这里就直接放配置完成的设置 处理器是4个单核 内存是8G 硬盘空间是60G 重点是网络适配器选择NAT模式 另外这里的镜像是选择的BC linux 基于Centos下的 版本是7 6的 下
  • TCP拥塞控制

    拥塞 在某段时间 若对网络中某资源的需求超过了该资源所能提供的可用部分 网络的性能就要变坏 产生拥塞 congestion 拥塞原因 某结点缓存容量太小 某链路带宽不足 某些处理机处理效率太慢 拥塞会累积 不断加剧 增加资源并不能从根本上解
  • QtXlsx编译、使用笔记

    换个方式操作ms office excel 第一次知道QtXlsx 记录一下使用方式 项目地址 http qtxlsx debao me 网上说的编译方式没搞定 vs2013 qt5 5 1加入pro文件 pri文件 都失败 用了一个简单方
  • IIS安装配置和简单网站部署流程

    IIS安装和网站配置 环境 win10 注意 这是在win10下部署iis 开发环境下部署 开发测试 非windows server IIS简介 Internet Information Services 简称IIS 是微软提供基于wind
  • 零基础小白如何入门python爬虫?3年程序员分享python爬虫学习攻略(文内有福利)

    如果你是非计算机专业 完全是零基础编程 这篇文章就是专门为你写的 内容不长 2分钟就能看完 但还是希望能给你一些帮助 以前从纯白零基础学Python 很多坑都没人踩 现在经常看到很多Python学习群里的新朋友总是喊着 从入门到放弃 觉得学
  • 【ROS】ROS1人机界面开发:在QtCreator中创建ROS1功能包

    ROS 郭老二博文之 ROS目录 1 版本要求 ROS的QtCreator插件要和QtCreator版本对应一致 否则报错 本人QtCreator版本为 10 0 1 需要下载安装ros qtc plugin的版本也要为10 0版本 2 安
  • 用Python绘制地理图

    当您的数据包含地理信息时 丰富的地图可视化可以为您理解数据和解释分析结果的最终用户提供重要价值 Plotly Plotly是一个著名的库 用于在Python中创建交互式绘图和仪表板 安装Plotly 在命令提示符中运行这两个命令 以在我们的
  • 六、windows环境下netcat的安装及使用

    windows环境下netcat的安装及使用 s小菜鸟 2019 01 03 21 05 51 5080 收藏 14 1 下载netcat 下载地址 https eternallybored org misc netcat 2 解压文件 3
  • Java中的NIO编程

    1 BIO和NIO简介 BIO NIO AIO简介 1 Java BIO 同步并阻塞 传统阻塞型 服务器实现模式为一个连接一个线程 即客户端有连接请求时服务器端就需要启动一个线程进行处理 如果这个连接不做任何事情会造成不必要的线程开销 2
  • 中国天气网全城市代码weather_cityId

    Ctrl F 查询 城市名字 http mobile weather com cn data forecast 101010100 html 1381891660081 北京 gt 101010100 海淀 gt 101010200 朝阳
  • 【openWrt】自定义后台访问端口

    通过ssh访问openwrt系统 修改 ect config uhttpd文件 再重启openwrt即可
  • 无人不苦,不必喊疼

    张爱玲说 生活是一袭华美的长袍 里面爬满了虱子 对于大多数人来说 生活都是外面光鲜亮丽 里面却各有各的苦楚 尤其对于成人 更是早已被生活的风霜 侵袭得体无完肤 可是 生活再不易 也总要拼尽了全力往前走 才能趟过荆棘丛生 走上康庄大道 1成人
  • ArrayList源码分析(基于JDK11)

    ArrayList源码分析 基于JDK11 类字段 private static final long serialVersionUID 8683452581122892189L private static final int DEFAU
  • JMETER:Uncaught exception in thread Thread

    Uncaught exception in thread Thread AWT EventQueue 0 6 main 调用测试片段错误 循环调用了
  • Jmeter中正则表达式提取器使用详解

    转载地址 http blog csdn net quiet girl article details 50724313 在使用Jmeter过程中 会经常使用到正则表达式提取器提取器 虽然并不直接涉及到请求的测试 但是对于数据的传递起着很大的
  • linux查看磁盘io性能

    1 查看磁盘 IO 性能 1 1 top 命令 top 命令通过查看 CPU 的 wa 值来判断当前磁盘 IO 性能 如果这个数值过大 很可能是磁盘 IO 太高了 当然也可能是其他原因 例如网络 IO 过高等 1 2 sar 命令 sar