最近一台linux服务器出现异常,系统反映很慢,相应的应用程序也无法反映,而且还出现死机的情况,经过几天的观察了解,发现服务器压力很大,主要的压力来自硬盘的IO访问已经达到100%
为了方便各位和自己今后遇到此类问题能尽快解决,我这里将查看linux服务器硬盘IO访问负荷的方法同大家一起分享:
首先 、用top命令查看
top - 16:15:05 up 6 days, 6:25, 2 users, load average: 1.45, 1.77, 2.14
Tasks: 147 total, 1 running, 146 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.2% us, 0.2% sy, 0.0% ni, 86.9% id, 12.6% wa, 0.0% hi, 0.0% si
Mem: 4037872k total, 4003648k used, 34224k free, 5512k buffers
Swap: 7164948k total, 629192k used, 6535756k free, 3511184k cached
查看12.6% wa
IO等待所占用的CPU时间的百分比,高过30%时IO压力高
其次、 用iostat -x 1 10
如果 iostat 没有,要 yum install sysstat
avg-cpu: %user %nice %sys %iowait %idle
0.00 0.00 0.25 33.46 66.29
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sdb 0.00 1122 17.00 9.00 192.00 9216.00 96.00 4608.00 123.79 137.23 1033.43 13.17 100.10
sdc 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
查看%util 100.10 %idle 66.29
如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。
idle小于70% IO压力就较大了,一般读取速度有较多的wait.
同时可以结合vmstat 查看查看b参数(等待资源的进程数)
vmstat -1
如果你想对硬盘做一个IO负荷的压力测试可以用如下命令
time dd if=/dev/zero bs=1M count=2048 of=direct_2G
此命令为在当前目录下新建一个2G的文件
我们在新建文件夹的同时来测试IO的负荷情况
再通过如下脚本查看高峰的进程io情况
monitor_io_stats.sh
#!/bin/sh
/etc/init.d/syslog stop
echo 1 > /proc/sys/vm/block_dump
sleep 60
dmesg | awk '/(READ|WRITE|dirtied)/ {process[$1]++} END {for (x in process) \
print process[x],x}' |sort -nr |awk '{print $2 " " $1}' | \
head -n 10
echo 0 > /proc/sys/vm/block_dump
/etc/init.d/syslog start
或者用iodump.pl脚本
相关推荐
Linux下类似于ru adu的IO读写工具。适用于bios等底层开发程序员
PCI9054实现IO读写操作 PCI9054实现IO读写操作 PCI9054实现IO读写操作
pci9054实现io读写操作 pci9054实现io读写操作
iostat,linux下IO读写分析工具
由于项目需要,最近深入细致的了解了ceph的读写流程,并且跟项目组做了一个代码串讲。附上串讲用的ppt。 个人认为,理解了ceph的io流水线模型,是理解整个io读写流程的关键。
iostat来对linux硬盘IO性能进行检测iostat来对linux硬盘IO性能进行检测iostat来对linux硬盘IO性能进行检测iostat来对linux硬盘IO性能进行检测
含驱动源码、makefile文件、测试程序源码、实现内容说明四部分 要写驱动程序读写IO端口的 可以参考下
磁盘通常是计算机最慢的子系统,也是最容易出现性能瓶颈的地方,因为磁盘离 CPU 距离最远而且 CPU 访问磁盘要涉及到机械操作,...要监测 IO 性能,有必要了解一下基本原理和 Linux 是如何处理硬盘和内存之间的 IO 的。
主要介绍了Linux 查看磁盘IO并找出占用IO读写很高的进程,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
本驱动程序源代码集是我多日搜索所得,其中有一些是我自己开发的,鉴于自己学习驱动开发时找不到合适例子... 2.PCI9054实现IO读写操作.rar 未完待续。。。。。 开发 , 驱动程序 , 源代码 PCI9054实现IO读写操作.rar
查看linux下dhcp服务器分配出去的IP地址及剩余IP地址
IO读写操作c++,基础类型已二进制的方式写入,在进行读取的操作IO读写操作c++,基础类型已二进制的方式写入,在进行读取的操作
linux 2.6内核下读写文件的简单实例。
wgcloud支持显示CPU利用率、CPU温度、内存利用率、磁盘容量、磁盘IO、硬盘智能健康状态、系统负载、连接数、网卡流量、硬件系统信息等。 支持进程应用、文件、端口、服务器上的日志、docker容器、数据库、数据表等...
linux查看磁盘io的几种方法.docx
2,使用了IO复用(select监测)进行服务器编程 3,服务器总共使用一个进程,两个线程。(代码注解实际项目之中,以四个线程或者更的线程更好处理) 经验之谈: 1,服务器编程最好根据实际应用中起用多个进程与多...
1,本文给出了linux 下使用IIC总线读写EEPROM 的实现程序。 2, 本文给出了在编程中遇到的几种非常隐蔽的错误的解决方法。 3,本文的读写程序非常通用: i2c -d /dev/i2c-1 -s 0x51 0x05 18 -----Write 18 to the ...
在Linux 开发中,有几个关系到性能的东西,技术人员非常关注:进程,CPU,MEM,网络IO,磁盘IO。本篇文件打算详细全面,深入浅出。剖析文件IO的细节。从多个角度探索如何提高IO性能。本文尽量用通俗易懂的视角去阐述...
关键词: java io 举个例子: 现在要读取一个TXT文件,文件内容如下: ID NAME SEX RESULT 1 Jack man 65 2 Marry female 80 3 Tom man 90 …… 如此等等,要求把性别为男的数据取出来另存道一个txt...