iotop和iostat
一、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相关推荐
- 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 ...
- Linux性能监控和调试
作者:forest 来自:www.linuxstory.org 0 题记 对于每个互联网研发人员来说,每天要监控和调试 Linux 系统性能问题都是非常困难的工作. 为此,我们总结了非常有用的并且最常 ...
- 20个命令行工具监控 Linux 系统性能(转载)
1. top - Linux 系统进程监控 top 命令是性能监控程序,它可以在很多 Linux/Unix 版本下使用,并且它也是 Linux 系统管理员经常使用的监控系统性能的工具.Top 命令可以 ...
- setfacl命令_一名合格的Linux运维人员应该掌握哪些命令?
Linux基金会(LinuxFoundation)正式宣布已有22个新组织加入基金会,这意味着Linux的未来前景更加广阔,也将促使更多的人学习并加入Linux开发行列.在学习Linux的过程中,很多 ...
- 网络服务器开发总结(转:http://my.oschina.net/u/181613/blog/596022)
一.概述 经过多年网络服务器开发实战,于此总结实践体会.本文涉及到异步连接.异步域名解析.热更新.过载保护.网络模型与架构及协程等,但不会涉及accept4.epoll等基本知识点. 二.可写事件 相 ...
- 腾讯数据库专家雷海林分享智能运维架构
2019年5月8日-10日的DTCC2019年中国数据库大会上,腾讯云数据库专家工程师雷海林首受邀做了主题为<TDSQL智能运维平台-扁鹊架构与实践>的技术分享,以下为大会现场演讲实录. ...
- mysql改国标码_MySQL 优化实施方案
优化的哲学 优化风险 优化设计到变更,变更就有风险 优化方向 在数据库优化上有两个主要方面:即安全与性能.(CAP) 安全 ---> 数据可持续性 一致 性能 ---> 数据的高性能访问 ...
- 浅谈高并发系统性能调优
女主宣言 今天带来的是一个篇长文,主要讲解高并发系统架构指标及调优测试经验,希望能对您的研究有所帮助.本文最先发布于 OpsDev,转载已获取作者授权. PS:丰富的一线技术.多元化的表现形式,尽在& ...
- ssis 列转换_SSIS中的术语提取转换
ssis 列转换 This article explores the Term extraction transformation in SSIS and its usage scenario. 本文 ...
最新文章
- 根据给定数据创建JSON并验证
- 模型web迁移延时太长,机器学习神器Cortex 能一键解决吗?
- String比较 运用String.equals
- lufylegend基础知识1
- Burpsuite在Firefox中无法抓取DVWA本地数据包解决方案+导入证书
- mysql定期删除数据_mysql数据库如何实现定期删除数据库一些东西
- Oracle/mysql联合查询union、union all
- 算法测试及对比度进一步增强
- linux open函数解释,linux之open函数解析
- 用AI帮你画新年贺卡:只需输入几个单词,就能模仿大师名作
- Android四大组件之——Activity(一)定义、状态和后退栈(图文详解)
- Unity4.6版本下载
- 基于 RT-Thread Studio的CPK-RA6M4 开发环境搭建指南
- 如何裁剪动图的边框?教你一键在线裁剪动图
- 为什么要考华为云认证?有什么用?
- 计算机家庭网络共享,教大家家庭局域网如何共享
- H3C新华三笔记本FN键锁定
- re正则表达式匹配多行文本
- 删除一个字符串中的所有数字字符
- Python中使用MySQL