如何排查硬盘读写慢问题?

Linux基础

1 前言

一个问题,一篇文章,一出故事。
最近笔者需要排查硬盘慢引起的问题,于是整理此文。

2 最佳实践

2.1 top命令查看总体读写

top

可见如下显示,

top - 15:41:14 up 80 days, 23:39,  1 user,  load average: 4.54, 4.97, 5.30
Tasks: 523 total,   2 running, 521 sleeping,   0 stopped,   0 zombie
%Cpu(s):  6.8 us,  2.1 sy,  0.0 ni, 90.2 id,  0.2 wa,  0.0 hi,  0.7 si,  0.0 st
KiB Mem : 26411587+total,  7142564 free, 11963308+used, 13734020+buff/cache
KiB Swap: 31252476 total, 28217420 free,  3035056 used. 77708832 avail Mem 

需要注意的是,“wa”表示CPU等待磁盘I/O完成时间的百分比

2.2 iotop命令查看进程磁盘I/O

iotop

可见如下显示,

Total DISK READ :      81.42 K/s | Total DISK WRITE :    1137.30 K/s
Actual DISK READ:      89.30 K/s | Actual DISK WRITE:       2.17 M/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND                                                                                     
14646 be/4 root       23.64 K/s   10.51 K/s  0.00 %  6.46 % minio server --console-address :9002 --address :9001 http://minio-node{1...4}/data
 7840 be/4 root       28.89 K/s    5.25 K/s  0.00 %  4.08 % minio server --console-address :9002 --address :9001 http://minio-node{1...4}/data
 9515 be/4 root       18.39 K/s    0.00 B/s  0.00 %  2.62 % minio server --console-address :9002 --address :9001 http://minio-node{1...4}/data

需要注意的是,
– 命令按IO读写频繁程度从高到低排列
– “SWAPIN”的值,如果比较高则占用比较多的swap,提示物理内存不足
– “DISK WRITE”的值,如果比较大则是占用磁盘IO响应慢的主要进程

2.3 lsof根据进程ID查看打开的文件

lsof -p 1

2.4 badblocks检查磁盘是否有坏道(谨慎使用)

badblocks
没有评论

发表回复

Linux基础
Linux下的常用性能分析工具?

1 前言 一个问题,一篇文章,一出故事。 最近笔者需要整理常用的Linux分析工具,于是整理此文。 …

Linux基础
如何tcpdump实时测量网络吞吐量?

1 前言 一个问题,一篇文章,一出故事。 最近笔者需要实时测量网络的吞吐量,于是整理此文。 2 最佳 …

Linux基础
如何sudo授予linux用户root权限?

1 前言 一个问题,一篇文章,一出故事。 Linux授权普通用户root权限的方法很多,本章将使用s …