-
2 命令与参数项
-
-
2.1 命令格式
-
2.2 参数详解
-
-
3 输出项目说明
-
-
3.1 cpu属性
-
3.2 磁盘属性
-
-
4 使用实例
-
-
4.1 查看磁盘详情
-
4.2 其他
-
-
5 深入解析
-
-
5.1 avgqu-sz
-
5.2 await
-
5.3 %util
-
=====================================================================
iostat命令是Linux系统上查看I/O性能最基本的工具,其全称为 I/O statistics。iostat能统计磁盘活动情况,也能统计CPU使用情况。
iostat属于sysstat软件包,可以通过命令进行安装:
yum install sysstat
iostat数据的来源是Linux操作系统的/proc/diskstats:
# cat /proc/diskstats
8 0 sda 239219 1806 37281259 2513275 904326 88832 50268824 26816609 0 4753060 29329105
8 1 sda1 338 0 53241 6959 154 0 5496 3724 0 6337 10683
8 2 sda2 238695 1797 37226458 2504489 620322 88832 50263328 25266599 0 3297988 27770221
8 16 sdb 1009117 481 1011773 127319 0 0 0 0 0 126604 126604
8 17 sdb1 1008792 480 1010929 127078 0 0 0 0 0 126363 126363
253 0 dm-0 1005 0 8040 15137 30146 0 241168 2490230 0 30911 2505369
253 1 dm-1 192791 0 35500457 2376087 359162 0 44095600 22949466 0 2312433 25325563
253 2 dm-2 47132 0 1717329 183565 496207 0 5926560 7348763 0 2517753 7532688
注意,procfs中的前三个字段:主设备号、从设备号、设备名。
从第四个字段开始,介绍的是该设备的相关统计:
-
rd_ios:读操作的次数
-
rd_merges:合并读操作的次数。如果两个读操作读取相邻的数据块,那么可以被合并成1个。
-
rd_sectors:读取的扇区数量
-
rd_ticks:读操作消耗的时间(以毫秒为单位)。每个读操作从__make_request()开始计时,到end_that_request_last()为止,包括了在队列中等待的时间。
-
wr_ios:写操作的次数
-
wr_merges:合并写操作的次数
-
wr_sectors:写入的扇区数量
-
wr_ticks:写操作消耗的时间(以毫秒为单位)
-
in_flight:当前未完成的I/O数量。在I/O请求进入队列时该值加1,在I/O结束时该值减1。 注意:是I/O请求进入队列时,而不是提交给硬盘设备时。
-
io_ticks:该设备用于处理I/O的自然时间(wall-clock time)
-
time_in_queue:对字段#10(io_ticks)的加权值
iostat有以下缺陷:
-
iostat的输出结果大多数是一段时间内的平均值,因此难以反映峰值情况
-
iostat仅能对系统整体情况进行分析汇报,却不能针对某个进程进行深入分析。
-
iostat未单独统计IO处理信息,而是将IO处理时间和IO等待时间合并统计,因此包括await在内的指标并不能非常准确地衡量磁盘性能表现。
===================================================================
iostat[参数][时间][次数]
例如,iostat -d -x -k 1 3:每1s采集一次数据,显示3次,以kb为单位显示磁盘使用情况详细信息。
-
-x 显示详细信息
-
-C 显示CPU使用情况,与-d选项互斥
-
-d 显示磁盘使用情况,与-C选项互斥
-
-k 以 KB 为单位显示
-
-m 以 M 为单位显示
-
-N 显示磁盘阵列(LVM) 信息
-
-n 显示NFS 使用情况
-
-p[磁盘] 显示磁盘和分区的情况
-
-t 显示终端和CPU的信息
-
-V 显示版本信息
===================================================================
使用iostat后,结果面板如下:
avg-cpu: %user %nice %system %iowait %steal %idle
1.44 0.00 0.39 0.00 0.00 98.17
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.37 0.47 30.30 3561197 229837730
dm-0 0.44 0.33 29.97 2518272 227313194
dm-1 0.12 0.13 0.33 1013276 2520308
dm-2 0.00 0.00 0.00 502 2068
iostat结果面板 avg-cpu 描述的是系统cpu使用情况:
-
%user:CPU处在用户模式下的时间百分比。
-
%nice:CPU处在带NICE值的用户模式下的时间百分比。
-
%system:CPU处在系统模式下的时间百分比。
-
%iowait:CPU等待输入输出完成时间的百分比。
-
%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。
-
%idle:CPU空闲时间百分比。
iostat结果面板 Device 项描述的是系统磁盘使用情况:
-
tps:该设备每秒的传输次数(Indicate the number of transfers per second that were issued to the device.)。“一次传输”意思是“一次I/O请求”。多个逻辑请求可能会被合并为“一次I/O请求”。“一次传输”请求的大小是未知的。
-
kB_read/s:每秒从设备(drive expressed)读取的数据量;
-
kB_wrtn/s:每秒向设备(drive expressed)写入的数据量;
-
kB_read:读取的总数据量;
-
kB_wrtn:写入的总数量数据量;
=================================================================
命令:
iostat -d -x -k 1 1
输出结果:
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.03 0.16 0.01 0.36 0.47 30.30 165.95 0.02 55.32 9.22 56.77 13.56 0.50
dm-0 0.00 0.00 0.01 0.44 0.33 29.97 136.71 0.02 54.07 12.12 54.68 11.28 0.50
dm-1 0.00 0.00 0.03 0.08 0.13 0.33 8.00 0.12 1015.22 5.91 1420.78 0.41 0.00
dm-2 0.00 0.00 0.00 0.00 0.00 0.00 48.96 0.00 1.27 0.37 9.80 1.27 0.00
为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!
这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。
本份面试集锦涵盖了
- 174 道运维工程师面试题
- 128道k8s面试题
- 108道shell脚本面试题
- 200道Linux面试题
- 51道docker面试题
- 35道Jenkis面试题
- 78道MongoDB面试题
- 17道ansible面试题
- 60道dubbo面试题
- 53道kafka面试
- 18道mysql面试题
- 40道nginx面试题
- 77道redis面试题
- 28道zookeeper
总计 1000+ 道面试题, 内容 又全含金量又高
- 174道运维工程师面试题
1、什么是运维?
2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?
3、现在给你三百台服务器,你怎么对他们进行管理?
4、简述raid0 raid1raid5二种工作模式的工作原理及特点
5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?
6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?
7、Tomcat和Resin有什么区别,工作中你怎么选择?
8、什么是中间件?什么是jdk?
9、讲述一下Tomcat8005、8009、8080三个端口的含义?
10、什么叫CDN?
11、什么叫网站灰度发布?
12、简述DNS进行域名解析的过程?
13、RabbitMQ是什么东西?
14、讲一下Keepalived的工作原理?
15、讲述一下LVS三种模式的工作过程?
16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
17、如何重置mysql root密码?
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
么东西?
14、讲一下Keepalived的工作原理?
15、讲述一下LVS三种模式的工作过程?
16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
17、如何重置mysql root密码?
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!