[转]查看linux服务器硬盘IO读写负载

摘要:
主要压力来自于硬盘的I/O访问已达到100%。为了方便您和您自己在将来尽快解决这些问题,我将与您分享检查Linux服务器硬盘I/O访问负载的方法:3511184kcached检查12.6%wa(CPU等待磁盘写入完成的时间)的百分比I/O等待占用的CPU时间。如果高于30%,则I/O压力高于Iostat-x110(-x选项将用于显示与io相关的扩展数据;

最近一台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 (指CPU等待磁盘写入完成的时间)

  IO等待所占用的CPU时间的百分比,高过30%时IO压力高

  其次、 用iostat -x 1 10  (-x 选项将用于显示和io相关的扩展数据; 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: 在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度。一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。

  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服务器硬盘IO读写负载》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇spring-cloud-gateway静态路由【DevExpress】2、控制GridView的分组需要用到的属性下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

boost.asio新框架的设计概念总结

1.66版本,boost.asio库重新设计了框架,目前最新版为1.71。读了几天代码后,对框架中相关概念总结。因为是泛型编程的库,所以分析的概念层的设计。 可通过boost官方文档,strand的1.65和1.66两版本文档比较,查证ts和io_context, executor首次出现在1.66。 新框架有几个核心概念,Context,Schedule...

20189224 《网络攻防实践》/《网络攻击与防范》第九周学习总结

20189224 《网络攻防实践》/《网络攻击与防范》第九周学习总结 教材学习内容总结 恶意代码安全攻防 恶意代码 :使计算机按照攻击者的意图执行以达到恶意目的的指令集。 种类:计算机病毒、蠕虫、后门、木马等种类。 分析方法:1)静态分析:反病毒软件扫描、二进制结构分析、反汇编反编译、代码结构与逻辑分析等方法2)动态分析:系统动态行为监控、网络协议...

性能测试工具原理与架构

在性能测试的学习过程中,坚持思想与工具(分开)并行,当前面世面上的性能测试书籍大多把理论与loadrunner融为一体讲解,这样做是正确的,因为有一些性能名词概念也源于工具。但是,性能测试不是loadrunner,所有的作者也是这么认为的。但他们在讲性能测试的时候讲的就是loadrunner有,只是讲的多少不同罢啦。      你是否觉得我对loadrun...

sqlserver 文件与文件组的使用和优化

文件和文件组填充策略    文件组对组内的所有文件都使用按比例填充策略。当数据写入文件组时,SQL Server 数据库引擎按文件中的可用空间比例将数据写入文件组中的每个文件,而不是将所有数据都写入第一个文件直至其变满为止。然后再写入下一个文件。例如,如果文件 f1 有 100 MB 可用空间,文件 f2 有 200 MB 可用空间,则从文件 f1...

Kubernetes 使用 Kubevirt 运行管理 Windows 10 操作系统

原文链接:https://fuckcloudnative.io/posts/use-kubevirt-to-manage-windows-on-kubernetes/ 最近我发现我的 Kubernetes 集群资源实在是太多了,有点浪费,不信你看: 既然闲置资源那么多,那我何不想办法利用一下。怎么用,用来干什么又是一个问题,想到我手中只有 MacBook...

IIS访问磁盘映射下的目录文件解决方案

需求场景: 现有两台服务器,A服务器相当于文件实际存储服务器,需要开放共享磁盘目录(比如D://data),供同内网的B服务器来访问调用;B服务器上部署了后台netcore项目程序和IIS,需要在B服务器上添加A服务器共享的磁盘映射目录,然后通过B服务器上IIS部署的后台程序,去对映射磁盘目录下进行文件上传,下载,在线浏览等操作; A服务器:使用已存在的账...