首页 » ORACLE 9i-23c, 系统相关 » Troubleshooting Linux high %iowait and many Processes stuck in D state

Troubleshooting Linux high %iowait and many Processes stuck in D state

一套医院的Oracle数据库用户平时并发并不高,但时长出现数据库无法响应,导致应用活动并发数逐渐增加,OS load能达大几百甚至1000+, 这是一个4物理CPU,144core的硬件,CPU  usage sys和user并不高,数据库查询v$session活动会话高时event是大部分进程on cpu, 操作系统层是%iowait高,去年时给西区分析过一个这类案例《Troubleshooting Performance SQL slow wait “on cpu” long time process “D” state》,这里简单记录一下这个案例。

AWR报告

Host CPU

CPUs Cores Sockets Load Average Begin Load Average End %User %System %WIO %Idle
144 72 4 85.34 101.46 7.8 2.4 22.3 89.7

Instance CPU

%Total CPU %Busy CPU %DB time waiting for CPU (Resource Manager)
9.8 95.0 0.0

IO Profile

Read+Write Per Second Read per Second Write Per Second
Total Requests: 669.8 381.0 288.8
Database Requests: 412.2 319.6 92.6
Optimized Requests: 0.0 0.0 0.0
Redo Requests: 182.9 1.8 181.2
Total (MB): 21.9 12.4 9.6
Database (MB): 14.0 7.4 6.6
Optimized Total (MB): 0.0 0.0 0.0
Redo (MB): 2.9 1.6 1.2
Database (blocks): 1,796.0 947.0 849.0
Via Buffer Cache (blocks): 449.8 361.7 88.0
Direct (blocks): 1,346.2 585.3 760.9

查看当时的D状态进程

#ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,state,wchan:40,comm|awk '{if($10=="D") print $0}'
  1714   1714 TS       -   0  19  34 13.6 Ds   D sleep_on_page                            oracle
 14185  14185 TS       -   0  19   6 10.1 Ds   D sleep_on_page                            oracle
 17297  17297 TS       -   0  19  34 21.7 Ds   D sleep_on_page                            oracle
 20496  20496 TS       -   0  19  83  2.6 Ds   D sleep_on_page                            oracle
 20707  20707 TS       -   0  19   1  0.4 Ds   D sleep_on_page                            oracle
 24176  24176 TS       -   0  19  29 64.1 Ds   D rmap_walk                                oracle
 25004  25004 TS       -   0  19  87 15.2 Ds   D sleep_on_page                            oracle
 25114  25114 TS       -   0  19  11  0.6 Ds   D sleep_on_page                            oracle
 25254  25254 TS       -   0  19 110  2.0 Ds   D sleep_on_page                            oracle
 25256  25256 TS       -   0  19 112  0.0 Ds   D sleep_on_page_killable                   oracle
...

perf报告

oracle 74851 [081] 4405932.369267: cycles: 
	ffffffff812e24f0 memcpy ([kernel.kallsyms])
	ffffffff810b67eb idle_balance ([kernel.kallsyms])
	ffffffff816091d8 __schedule ([kernel.kallsyms])
	ffffffff8160955d io_schedule ([kernel.kallsyms])
	ffffffff81155f1e sleep_on_page ([kernel.kallsyms])
	ffffffff81607330 __wait_on_bit ([kernel.kallsyms])
	ffffffff81155ca6 wait_on_page_bit ([kernel.kallsyms])
	ffffffff811b04da __migration_entry_wait.isra.37 ([kernel.kallsyms])
	ffffffff811b07a3 migration_entry_wait ([kernel.kallsyms])
	ffffffff81182efc handle_mm_fault ([kernel.kallsyms])
	ffffffff8160f1e6 __do_page_fault ([kernel.kallsyms])
	ffffffff8160f5ca do_page_fault ([kernel.kallsyms])
	ffffffff8160b808 page_fault ([kernel.kallsyms])
	         909e590 nsfull_pkt_rcv (/u01/app/oracle/11.2.0/bin/oracle)
	         9097d67 nsfull_brc (/u01/app/oracle/11.2.0/bin/oracle)
	         991d873 nsbrecv (/u01/app/oracle/11.2.0/bin/oracle)
	         99262b9 nioqrc (/u01/app/oracle/11.2.0/bin/oracle)
	         95a52b2 opikndf2 (/u01/app/oracle/11.2.0/bin/oracle)
	         1850157 opitsk (/u01/app/oracle/11.2.0/bin/oracle)
	         1854fed opiino (/u01/app/oracle/11.2.0/bin/oracle)
	         95a7bd5 opiodr (/u01/app/oracle/11.2.0/bin/oracle)

oracle 138212 [023] 4405932.398687: cycles: 
	ffffffff810a844e idle_cpu ([kernel.kallsyms])
	ffffffff810b5260 find_busiest_group ([kernel.kallsyms])
	ffffffff810b5bd8 load_balance ([kernel.kallsyms])
	ffffffff810b67eb idle_balance ([kernel.kallsyms])
	ffffffff816091d8 __schedule ([kernel.kallsyms])
	ffffffff8160955d io_schedule ([kernel.kallsyms])
	ffffffff81155f1e sleep_on_page ([kernel.kallsyms])
	ffffffff81607330 __wait_on_bit ([kernel.kallsyms])
	ffffffff81155ca6 wait_on_page_bit ([kernel.kallsyms])
	ffffffff811b04da __migration_entry_wait.isra.37 ([kernel.kallsyms])
	ffffffff811b07a3 migration_entry_wait ([kernel.kallsyms])
	ffffffff81182efc handle_mm_fault ([kernel.kallsyms])
	ffffffff8160f1e6 __do_page_fault ([kernel.kallsyms])
	ffffffff8160f5ca do_page_fault ([kernel.kallsyms])
	ffffffff8160b808 page_fault ([kernel.kallsyms])
	         909e590 nsfull_pkt_rcv (/u01/app/oracle/11.2.0/bin/oracle)
	         9097d67 nsfull_brc (/u01/app/oracle/11.2.0/bin/oracle)
	         991d873 nsbrecv (/u01/app/oracle/11.2.0/bin/oracle)
	         99262b9 nioqrc (/u01/app/oracle/11.2.0/bin/oracle)
	         95a52b2 opikndf2 (/u01/app/oracle/11.2.0/bin/oracle)
	         1850157 opitsk (/u01/app/oracle/11.2.0/bin/oracle)
	         1854fed opiino (/u01/app/oracle/11.2.0/bin/oracle)
	         95a7bd5 opiodr (/u01/app/oracle/11.2.0/bin/oracle)

oracle 28266 [078] 4405932.579419: cycles: 
	ffffffff810ad3f8 tg_load_down ([kernel.kallsyms])
	ffffffff810a5eb1 walk_tg_tree_from ([kernel.kallsyms])
	ffffffff810b5d98 load_balance ([kernel.kallsyms])
	ffffffff810b67eb idle_balance ([kernel.kallsyms])
	ffffffff816091d8 __schedule ([kernel.kallsyms])
	ffffffff8160955d io_schedule ([kernel.kallsyms])
	ffffffff81155f1e sleep_on_page ([kernel.kallsyms])
	ffffffff81607330 __wait_on_bit ([kernel.kallsyms])
	ffffffff81155ca6 wait_on_page_bit ([kernel.kallsyms])
	ffffffff811b04da __migration_entry_wait.isra.37 ([kernel.kallsyms])
	ffffffff811b07a3 migration_entry_wait ([kernel.kallsyms])
	ffffffff81182efc handle_mm_fault ([kernel.kallsyms])
	ffffffff8160f1e6 __do_page_fault ([kernel.kallsyms])
	ffffffff8160f5ca do_page_fault ([kernel.kallsyms])
	ffffffff8160b808 page_fault ([kernel.kallsyms])
	         97cd6b6 ttcrbur (/u01/app/oracle/11.2.0/bin/oracle)

不正常时间段iostat

zzz ***Wed Mar 29 09:28:21 CST 2023
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.58    0.00    2.05   85.49    0.00   10.88

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.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
dm-0              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
dm-1              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     0.00    2.00    0.00    32.00     0.00    32.00     0.00    0.50    0.50    0.00   0.50   0.10
sdc               0.00     0.00    2.00    1.00     1.00     0.50     1.00     0.00    0.00    0.00    0.00   0.00   0.00
sdd               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
sde               0.00     0.00    5.00    0.00    80.00     0.00    32.00     0.00    0.40    0.40    0.00   0.40   0.20
sdf               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
sdg               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
dm-2              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
sdh               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
sdi               0.00     0.00    1.00    0.00     4.00     0.00     8.00     0.00    1.00    1.00    0.00   1.00   0.10
sdj               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
sdk               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
sdl               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
sdm               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
dm-3              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
dm-4              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
dm-5              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
dm-6              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
dm-7              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
dm-8              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

注意: IOWAIT很高,但所有磁盘几乎无IOPS

正常时间段iostat

zzz ***Wed Mar 29 09:59:54 CST 2023
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          13.74    0.00    3.92   15.80    0.00   66.53

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.00     3.00    0.00  119.00     0.00  2420.00    40.67     0.02    0.13    0.00    0.13   0.01   0.10
dm-0              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
dm-1              0.00     0.00    0.00  123.00     0.00  2420.00    39.35     0.03    0.13    0.00    0.13   0.02   0.20
sdb              54.00     2.00  947.00  706.00 92665.00  3011.00   115.76     0.67    0.40    0.46    0.32   0.19  31.10
sdc               0.00     0.00   38.00    1.00   290.00     0.50    14.90     0.01    0.38    0.37    1.00   0.38   1.50
sdd               1.00     0.00 1068.00  145.00 46486.00  1192.00    78.61     0.35    0.29    0.29    0.35   0.20  24.80
sde               2.00     2.00  786.00  706.00 91048.00  3011.00   126.08     0.66    0.44    0.55    0.32   0.20  29.20
sdf               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
sdg               4.00     0.00 1071.00  145.00 46032.50  1192.00    77.67     0.33    0.27    0.26    0.34   0.20  24.40
dm-2              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
sdh               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

mpstat

09:28:22     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
09:28:23     all    1.58    0.00    2.04   85.48    0.00    0.01    0.00    0.00    0.00   10.88
09:28:23       0    1.03    0.00    1.03   97.94    0.00    0.00    0.00    0.00    0.00    0.00
09:28:23       1    2.02    0.00   26.26   71.72    0.00    0.00    0.00    0.00    0.00    0.00
09:28:23       2    3.09    0.00    1.03   95.88    0.00    0.00    0.00    0.00    0.00    0.00
09:28:23       3   19.00    0.00    8.00   73.00    0.00    0.00    0.00    0.00    0.00    0.00
09:28:23       4   67.68    0.00    0.00   32.32    0.00    0.00    0.00    0.00    0.00    0.00
09:28:23       5    1.01    0.00    2.02   96.97    0.00    0.00    0.00    0.00    0.00    0.00
09:28:23       6    2.04    0.00    0.00   97.96    0.00    0.00    0.00    0.00    0.00    0.00
09:28:23       7    2.02    0.00    5.05   92.93    0.00    0.00    0.00    0.00    0.00    0.00
09:28:23       8    1.02    0.00   14.29   84.69    0.00    0.00    0.00    0.00    0.00    0.00
09:28:23       9    1.00    0.00    0.00   99.00    0.00    0.00    0.00    0.00    0.00    0.00
09:28:23      10    0.00    0.00    0.00  100.00    0.00    0.00    0.00    0.00    0.00    0.00
09:28:23      11   11.00    0.00    1.00   88.00    0.00    0.00    0.00    0.00    0.00    0.00
09:28:23      12    1.00    0.00   21.00   78.00    0.00    0.00    0.00    0.00    0.00    0.00
09:28:23      13    1.00    0.00    0.00   99.00    0.00    0.00    0.00    0.00    0.00    0.00
09:28:23      14    2.00    0.00    1.00   97.00    0.00    0.00    0.00    0.00    0.00    0.00
09:28:23      15   17.17    0.00    0.00   82.83    0.00    0.00    0.00    0.00    0.00    0.00
09:28:23      16    0.00    0.00    6.00   94.00    0.00    0.00    0.00    0.00    0.00    0.00
09:28:23      17   18.18    0.00    1.01   80.81    0.00    0.00    0.00    0.00    0.00    0.00
09:28:23      18    1.02    0.00    9.18   89.80    0.00    0.00    0.00    0.00    0.00    0.00
09:28:23      19    0.00    0.00    0.00  100.00    0.00    0.00    0.00    0.00    0.00    0.00
09:28:23      20    0.00    0.00    0.00  100.00    0.00    0.00    0.00    0.00    0.00    0.00
09:28:23      21    0.00    0.00    1.00   99.00    0.00    0.00    0.00    0.00    0.00    0.00
09:28:23      22    0.00    0.00   58.00   42.00    0.00    0.00    0.00    0.00    0.00    0.00
09:28:23      23    0.00    0.00    0.00  100.00    0.00    0.00    0.00    0.00    0.00    0.00
09:28:23      24    0.00    0.00    1.01   98.99    0.00    0.00    0.00    0.00    0.00    0.00
09:28:23      25    0.00    0.00    1.02   98.98    0.00    0.00    0.00    0.00    0.00    0.00
09:28:23      26    0.00    0.00    0.00  100.00    0.00    0.00    0.00    0.00    0.00    0.00
09:28:23      27    0.00    0.00    0.00  100.00    0.00    0.00    0.00    0.00    0.00    0.00
09:28:23      28    0.00    0.00    0.00  100.00    0.00    0.00    0.00    0.00    0.00    0.00
09:28:23      29    0.00    0.00    1.01   98.99    0.00    0.00    0.00    0.00    0.00    0.00
...

vmstat

zzz ***Wed Mar 29 09:27:51 CST 2023
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
11 778      0 252811712  17140 30856932    0    0   360   116    0    0  4  0 94  1  0
18 577      0 252779168  17140 30861976    0    0  4084  1419 59377 48650  8  5  4 83  0
25 339      0 252690736  17140 30868320    0    0 39755  1276 142478 91409 19  6 10 66  0
zzz ***Wed Mar 29 09:28:21 CST 2023
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
47 714      0 252334208  17140 30941632    0    0   360   116    0    0  4  0 94  1  0
 4 757      0 252286096  17140 30943040    0    0 21289  4495 155394 114065 10  5 11 75  0
 8 994      0 252330752  17140 30943744    0    0   117     0 18919 17036  2  2 11 85  0
zzz ***Wed Mar 29 09:28:51 CST 2023
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
89 370      0 252071872  17140 31042652    0    0   360   116    0    0  4  0 94  1  0
 4 818      0 251975072  17140 31045500    0    0 55641  5392 62121 57555  6  4 11 79  0
 8 887      0 251975072  17140 31048296    0    0 50029   545 49308 54580  2  2  9 87  0
zzz ***Wed Mar 29 09:29:21 CST 2023
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
20 638      0 251564160  17140 31084888    0    0   360   116    0    0  4  0 94  1  0
11 647      0 251685920  17140 31093200    0    0 37714  6028 102041 68327  8  4  2 86  0
11 720      0 251641504  17140 31091376    0    0 37188 12527 78402 47231  6  3  1 90  0

top

top - 09:28:23 up 50 days, 23:24, 44 users,  load average: 703.61, 442.45, 239.9
Tasks: 11357 total,  10 running, 11331 sleeping,   5 stopped,  11 zombie
%Cpu(s):  2.0 us,  2.3 sy,  0.0 ni, 11.4 id, 84.3 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 52793187+total, 25231270+free, 24466102+used, 30958152 buff/cache
KiB Swap: 16777212 total, 16777212 free,        0 used. 27390931+avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 72480 oracle    20   0  0.176t  28804  20512 D  61.2  0.0   0:06.93 oracle
 19392 oracle    20   0  0.176t  22956  17880 S  38.0  0.0   6:14.24 oracle
 77082 oracle    20   0  0.176t  27624  21148 R  34.9  0.0   0:01.36 oracle
 75981 oracle    20   0  0.176t  29276  23424 D  28.7  0.0   0:09.42 oracle
 78845 grid      20   0   38284  13444   1204 R  24.0  0.0   0:00.71 top
129341 oracle    20   0  0.176t  55100  43968 D  19.4  0.0  85:14.17 oracle
 64356 oracle    20   0  0.176t  29664  23772 S  17.1  0.0   0:03.55 oracle
 78860 grid      20   0   19768   1256   1004 D  17.1  0.0   0:00.39 ps
 78929 root      20   0  121724   1820    936 D  17.1  0.0   0:00.22 pgrep
 75851 oracle    20   0  0.176t  23484  17260 D  16.3  0.0   0:06.33 oracle
139123 oracle    20   0  0.176t  41132  35492 D  16.3  0.0   2:56.22 oracle
 89880 oracle    20   0  0.176t  26708  21876 D  15.5  0.0   0:16.52 oracle
 78775 root      20   0  121276   1016    844 D  14.0  0.0   0:00.29 ps
 76053 oracle    20   0  0.176t  19324  15756 S  11.6  0.0   0:01.64 oracle
 71742 oracle    20   0  0.176t  21216  17204 D  10.9  0.0   0:06.54 oracle
 53764 oracle    20   0  0.176t  29992  23612 D  10.1  0.0   0:09.23 oracle
 64717 oracle    20   0  0.176t  33384  30440 S   8.5  0.0   0:42.49 oracle

什么是iowait?
CPU 可以处于四种状态之一:user、sys、idle 或 iowait。 vmstat、iostat、sar等工具,以百分比的形式打印出这四种状态。从iostat或mpstat中看到%iowait看到不同cpu 上iowait很高,top命令的%wa也反应了这块, 为什么高 iowaits 在特定 CPU 上而不是在所有 CPU 之间平衡的任何具体原因?这是 Linux 内核的预期行为。 当任何 cpu 处理任何任务并且该任务需要执行 IO 事务时,cpu 会向 I/O 控制器发出请求,现在 I/O 控制器负责处理此请求,因此 IO 控制器将花费多少时间来完成请求 大部分时间该任务将处于“D”状态,并且 cpu 将只是等待 IO(称为 IO_WAIT)。如果系统有多个处理器,那么为该特定任务服务的 cpu 将等待 IO 并在这段时间内空闲,其他处理器将分配给其他正在运行的任务,因此查看特定 CPU 的 IOWAIT 是 Linux 内核的预期行为。处理D状态中的进程说明在 I/O 上被阻塞,在该进程内部除非它使用异步I/O,否则在任何I/O操作完成之前,它不可以被中断,处理挂起状态。

%iowait在系统有未完成的磁盘 I/O 请求期间,一个或多个 CPU 处于空闲状态的时间百分比。因此,%iowait 意味着从 CPU 的角度来看,没有任务可运行,但至少有一个 I/O 正在进行。 iowait 只是空闲时间的一种形式,在这种情况下无法安排任何事情。 该值在指示性能问题方面可能有用也可能无用,但它确实告诉用户系统处于空闲状态并且可能需要做更多的工作。准确地说,iowait 是接收和处理硬件中断所花费的时间占处理器滴答(processor ticks)的百分比。 软件中断通常单独标记为 %si。

需要注意的是,iowait 有时可能表示吞吐量瓶颈,而在其他时候,iowait 可能完全没有意义。有可能有一个具有高 iowait 的健康系统,但也有可能拥有一个没有 iowait 的瓶颈系统,举个例子,当CPU升级到更快时如CPU速度提升4倍:

CPU 升级之前
CPU 时间 = 40 毫秒 IO 时间 = 20 毫秒 总事务时间 = CPU + IO = 40 + 20 = 60 毫秒
%iowait = IO 时间/总时间 = 20/60 = 33%

CPU 升级后
CPU 时间 = 40 毫秒/ 4 = 10 毫秒 IO 时间 = 20 毫秒 总事务时间 = CPU + IO = 10 + 20 = 30 毫秒
%iowait = 20/30 = 66%

在此示例中,尽管 %iowait 增加了 2 倍,但事务性能翻了一番。在这种情况下,%iowait 的绝对值是 I/O 问题的误导性指示。

一些您可能会觉得有用的工具
iostat,监控磁盘的服务时间
iotop(如果你的内核支持的话),监控每个进程的 IO 请求的分解
strace,查看进程发出的实际操作

什么是最小化 IO 等待时间的方法?
-确保您有可用的物理内存,以便操作系统可以在内存中缓存磁盘块
-将您的文件系统磁盘使用率保持在 80% 以下以避免过多的碎片
-调整你的文件系统
-使用电池供电的阵列控制器
-执行 io 操作时选择合适的缓冲区大小

分析思路
-快速查看 /etc/messages、/etc/dmesg、/etc/boot.log 和任何其他系统日志文件,寻找磁盘 I/O 错误、读/写操作失败、坏扇区 任何表明磁盘硬件问题的内容。
-如果找不到任何内容,请查找 IRQ 和磁盘控制器错误。
-还要查找内存错误和内核崩溃。
-高iowait的三个最可能的罪魁祸首是:磁盘坏,内存故障和网络问题(比如NFS)。
-消除硬件问题作为高 iowait 的可能原因后,下一步是查看固件和驱动程序
-对磁盘控制器固件特别感兴趣:性能不稳定和没有错误消息是固件问题的迹象。
-请非常努力地记住您最近是否进行了任何系统更改,尤其是需要重新启动的内容 , 例如内核升级。如果是这种情况,请回滚升级或搜索升级固件。

回到本案例数据库没有记录I/O慢的event,但%WA 和Load较大,ASH中活动会话达数百event为on cpu,  看操作系统层load和%iowait较高,但当时cpu并不繁忙,IOPS并不高,内存空闲,大量应用进程处理D状态且持续,说明操作系统进程在Linux 内核上的I/O请求一直未返回,原因在磁盘控制器、或存储链路、OS kernel bug概率较大。在以后遇到%iowait时需要结合其他指标判断系统的健康。

打赏

对不起,这篇文章暂时关闭评论。