一、iotop使用

1、介绍

iotop是一个用来监视磁盘I/O使用状况的 top 类工具,可监测到哪一个程序使用的磁盘IO的信息

2、安装和使用

yum -y install iotopiotop
Total DISK READ :   0.00 B/s | Total DISK WRITE :       0.00 B/s
Actual DISK READ:   0.00 B/s | Actual DISK WRITE:       0.00 B/sTID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND 第一行:总计的读和写速率总计;
第二行:实际的读和写速率总计;
第三行:tid:线程id,按p可转换进程pidPRIO:优先级DISK READ:磁盘读取速率DISK WRITE:磁盘写取速率SWAPIN:swap交换百分比IO>:IO等待所占用百分比COMMAND:线程/进程详细信息

3、命令格式:

iotop  -[选项]
  --version:显示程序的版本号并退出
  -h, --help:显示此帮助消息并退出
  -o, --only:仅显示实际执行I / O的进程或线程,只显示在划硬盘的程序
  -b, --batch:非交互模式,批量处理 用来记录日志的
  -n NUM, --iter=NUM:设定循环几次
  -d SEC, --delay=SEC:设定显示时间间隔[秒]
  -p PID, --pid=PID:要监控的进程/线程[全部]
  -u USER, --user=USER:用户监控[全部]
  -P, --processes:只显示进程,而不是所有线程
  -a, --accumulated:显示累积的I / O而不是带宽
  -k, --kilobytes:使用千字节而不是人性化的单位
  -t, --time:在每一行上添加一个时间戳(暗示--batch)
  -q, --quiet:抑制一些标题行(暗示--batch)

4、在运行iotop命令后按相应键位

r:反向排序,
o:切换至选项--only,
p:切换至--processes选项,
a:切换至--accumulated选项
q:退出 
i:改变线程的优先级

5、小结

1.我们给服务器做压力测试时,有的时候很容易碰到磁盘IO读取瓶颈,持续高的IO会导致磁盘读取密集读写磁盘IO成为短板,程序运行过慢;常见的IO服务器例如:数据库服务器,文件服务器,视频服务器等

2.使用top命令查看%wa指标,该项阈值表示io waiting等待磁盘磁盘写入完成的时间,一般不能高于30%,假如该值过大且持续很久,就证明遇到了I/O瓶颈,需要对软件进行优化,或对硬件进行升级

3.iostat -d -x 1输出磁盘相关统计信息

4.iotop定位负载来源于那个进程/线程

5.可以使用pt-ioprofile工具定位IO文件信息

二、iostat使用

1、介绍

iostat 主要用于输出磁盘IO 和 CPU的统计信息

2、安装

yum install -y sysstat

3、用法和常用参数

用法:iostat [选项] [<时间间隔>] [<次数>]

命令参数:
-c: 显示CPU使用情况
-d: 显示磁盘使用情况
-N: 显示磁盘阵列(LVM) 信息
-n: 显示NFS 使用情况
-k: 以 KB 为单位显示
-m: 以 M 为单位显示
-t: 报告每秒向终端读取和写入的字符数和CPU的信息
-V: 显示版本信息
-x: 显示详细信息
-p:[磁盘] 显示磁盘和分区的情况

4、详细说明

[root@localhost ~]# iostat
Linux 3.10.0-693.el7.x86_64 (localhost.localdomain)     2021年09月24日     _x86_64_     (
6 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle0.01    0.00    0.02    0.01    0.00   99.96Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               0.37        25.34         1.64    3918475     253488
sdb               0.00         0.03         0.00       4272          0
scd0              0.00         0.01         0.00       1050          0cpu属性值说明:
**%user:**CPU处在用户模式下的时间百分比。
**%nice:**CPU处在带NICE值的用户模式下的时间百分比。
**%system:**CPU处在系统模式下的时间百分比。
**%iowait:**CPU等待输入输出完成时间的百分比。
%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。
**%idle:**CPU空闲时间百分比。备注:如果%iowait的值过高,表示硬盘存在I/O瓶颈,%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。

5、详细使用

iostat 1 5
间隔1秒,总共显示5次iostat -d 2
每隔2秒,显示一次设备统计信息.iostat -d 2 3
每隔2秒,显示一次设备统计信息.总共输出3次.iostat -x sda sdb 2 3
每隔2秒显示一次sda, sdb两个设备的扩展统计信息,共输出3次.iostat -p sda 2 3
每隔2秒显示一次sda及上面所有分区的统计信息,共输出3次.iostat -m
以M为单位显示所有信息iostat -d sda
显示指定硬盘信息iostat -t
报告每秒向终端读取和写入的字符数。iostat -d -k 1 1
查看TPS和吞吐量信息iostat -c 1 2
查看cpu状态,间隔1秒显示一次,总共显示2次

iostat -d -x -k 1 1
查看设备使用率(%util)、响应时间(await)

说明:
rrqm/s: 每秒进行 merge 的读操作数目。即 rmerge/s
wrqm/s: 每秒进行 merge 的写操作数目。即 wmerge/s
r/s: 每秒完成的读 I/O 设备次数。即 rio/s
w/s: 每秒完成的写 I/O 设备次数。即 wio/s
rkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。
wkB/s: 每秒写K字节数。是 wsect/s 的一半。
avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。 每个请求平均大小,单位是扇区数,一般在200~400之间算是正常和理想的状态,如果这个值比较小,比方说只在100左右,说明太多的IO请求没有被合并,或者大的IO请求被“打散”,在写操作时,过多小的请求会造成磁盘磁头的频繁移动,降低IO性能。
avgqu-sz: 平均I/O队列长度。 avgqu-sz 平均请求队列长度,这个值在正常的系统中不应超过113太多,如果在200左右,甚至上千那说明发生了IO拥塞,而系统还在向IO请求队列中放请求(有一个例外是在执行sync,fsync操作时,该值到达最大值8192是正常的)
rsec/s: 每秒读扇区数。即 rsect/s
wsec/s: 每秒写扇区数。即 wsect/s
r_await:每个读操作平均所需的时间
不仅包括硬盘设备读操作的时间,还包括了在kernel队列中等待的时间。
w_await:每个写操作平均所需的时间
不仅包括硬盘设备写操作的时间,还包括了在kernel队列中等待的时间。
await: 平均每次设备I/O操作的等待时间 (毫秒)。
svctm: 平均每次设备I/O操作的服务时间 (毫秒)。
%util: 一秒中有百分之多少的时间用于 I/O 操作,即被io消耗的cpu百分比

备注:如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;如果 await 远大于 svctm,说明I/O 队列太长,io响应太慢,则需要进行必要优化。如果avgqu-sz比较大,也表示有当量io在等待。

iotop和iostat相关推荐

  1. iotop iostat_适用于SQL Server DBA的有用的Linux命令– iotop和iostat

    iotop iostat In the article, we will learn how to use the 'iotop' and 'iostat' commands with various ...

  2. Linux性能监控和调试

    作者:forest 来自:www.linuxstory.org 0 题记 对于每个互联网研发人员来说,每天要监控和调试 Linux 系统性能问题都是非常困难的工作. 为此,我们总结了非常有用的并且最常 ...

  3. 20个命令行工具监控 Linux 系统性能(转载)

    1. top - Linux 系统进程监控 top 命令是性能监控程序,它可以在很多 Linux/Unix 版本下使用,并且它也是 Linux 系统管理员经常使用的监控系统性能的工具.Top 命令可以 ...

  4. setfacl命令_一名合格的Linux运维人员应该掌握哪些命令?

    Linux基金会(LinuxFoundation)正式宣布已有22个新组织加入基金会,这意味着Linux的未来前景更加广阔,也将促使更多的人学习并加入Linux开发行列.在学习Linux的过程中,很多 ...

  5. 网络服务器开发总结(转:http://my.oschina.net/u/181613/blog/596022)

    一.概述 经过多年网络服务器开发实战,于此总结实践体会.本文涉及到异步连接.异步域名解析.热更新.过载保护.网络模型与架构及协程等,但不会涉及accept4.epoll等基本知识点. 二.可写事件 相 ...

  6. 腾讯数据库专家雷海林分享智能运维架构

    2019年5月8日-10日的DTCC2019年中国数据库大会上,腾讯云数据库专家工程师雷海林首受邀做了主题为<TDSQL智能运维平台-扁鹊架构与实践>的技术分享,以下为大会现场演讲实录. ...

  7. mysql改国标码_MySQL 优化实施方案

    优化的哲学 优化风险 优化设计到变更,变更就有风险 优化方向 在数据库优化上有两个主要方面:即安全与性能.(CAP) 安全 ---> 数据可持续性 一致 性能 ---> 数据的高性能访问 ...

  8. 浅谈高并发系统性能调优

    女主宣言 今天带来的是一个篇长文,主要讲解高并发系统架构指标及调优测试经验,希望能对您的研究有所帮助.本文最先发布于 OpsDev,转载已获取作者授权. PS:丰富的一线技术.多元化的表现形式,尽在& ...

  9. ssis 列转换_SSIS中的术语提取转换

    ssis 列转换 This article explores the Term extraction transformation in SSIS and its usage scenario. 本文 ...

最新文章

  1. 根据给定数据创建JSON并验证
  2. 模型web迁移延时太长,机器学习神器Cortex 能一键解决吗?
  3. String比较 运用String.equals
  4. lufylegend基础知识1
  5. Burpsuite在Firefox中无法抓取DVWA本地数据包解决方案+导入证书
  6. mysql定期删除数据_mysql数据库如何实现定期删除数据库一些东西
  7. Oracle/mysql联合查询union、union all
  8. 算法测试及对比度进一步增强
  9. linux open函数解释,linux之open函数解析
  10. 用AI帮你画新年贺卡:只需输入几个单词,就能模仿大师名作
  11. Android四大组件之——Activity(一)定义、状态和后退栈(图文详解)
  12. Unity4.6版本下载
  13. 基于 RT-Thread Studio的CPK-RA6M4 开发环境搭建指南
  14. 如何裁剪动图的边框?教你一键在线裁剪动图
  15. 为什么要考华为云认证?有什么用?
  16. 计算机家庭网络共享,教大家家庭局域网如何共享
  17. H3C新华三笔记本FN键锁定
  18. re正则表达式匹配多行文本
  19. 删除一个字符串中的所有数字字符
  20. Python中使用MySQL

热门文章

  1. git 删除分支失败
  2. 学术速运|在药物发现中的钉合螺旋肽高通量筛选
  3. hive中sql执行顺序
  4. Android启动优化方案调研
  5. Shell脚本分割字符串
  6. 标准键盘上的所有键,及其相应的键控代码值和 ASCII
  7. centos sftp客户端 c 源码_如何在 Linux 系统中如何更改 SFTP 端口
  8. HBuilderX 连接真机或者模拟器调试后不能运行ADB.exe的解决
  9. JS三目运算符失效原因(小程序)
  10. centos7安装docker并配置php运行环境