理由もなく Debian 10 にアップグレードした後、ディスク使用率がほぼ 100% になる

理由もなく Debian 10 にアップグレードした後、ディスク使用率がほぼ 100% になる

最近、サーバーを Debian 10 にアップグレードしました。セットアップは、もちろんいくつかの新しいソフトウェア パッケージを除けば、Debian9 とまったく同じです。

デフォルトのカーネルを実行しています:

$ uname -a 
Linux kt105 4.19.0-6-amd64 #1 SMP Debian 4.19.67-2+deb10u2 (2019-11-11) x86_64 GNU/Linux

ソフトウェア RAID で 2 つの NVME SSD ディスクを使用していますが、Debian 10 にアップグレードした後、ディスク使用率が高くなります。最後の列を見るにはスクロールしてください。

# iostat -x 20 5
Linux 4.19.0-6-amd64 (kt105)    01/29/2020  _x86_64_    (48 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.07    0.00    0.04    0.00    0.00   99.89

Device            r/s     w/s     rkB/s     wkB/s   rrqm/s   wrqm/s  %rrqm  %wrqm r_await w_await aqu-sz rareq-sz wareq-sz  svctm  %util
nvme0n1          0.00    5.97      0.03    805.42     0.00     9.37   0.00  61.07    0.30    1.31   1.00    19.16   134.83 166.12  99.26
nvme1n1          3.14    2.91    736.61     70.75     8.41     0.96  72.83  24.80    0.15    0.84   1.00   234.74    24.34 164.20  99.26
md0              0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00    22.39     0.00   0.00   0.00
md1              0.00    0.00      0.07      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00    39.29     1.00   0.00   0.00
md2              0.07    2.34      1.89     68.62     0.00     0.00   0.00   0.00    0.00    0.00   0.00    27.00    29.35   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.03    0.00    0.02    0.00    0.00   99.95

Device            r/s     w/s     rkB/s     wkB/s   rrqm/s   wrqm/s  %rrqm  %wrqm r_await w_await aqu-sz rareq-sz wareq-sz  svctm  %util
nvme0n1          0.00    1.80      0.00     18.95     0.00     0.55   0.00  23.40    0.00    0.03   0.98     0.00    10.53 541.89  97.54
nvme1n1          0.00    1.80      0.00     18.95     0.00     0.55   0.00  23.40    0.00    0.03   0.98     0.00    10.53 541.89  97.54
md0              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   0.00   0.00
md1              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   0.00   0.00
md2              0.00    1.10      0.00     17.20     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00    15.64   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.03    0.00    0.02    0.00    0.00   99.95

Device            r/s     w/s     rkB/s     wkB/s   rrqm/s   wrqm/s  %rrqm  %wrqm r_await w_await aqu-sz rareq-sz wareq-sz  svctm  %util
nvme0n1          0.00    2.85      0.00     11.15     0.00     1.05   0.00  26.92    0.00    0.04   0.98     0.00     3.91 345.61  98.50
nvme1n1          0.00    2.85      0.00     11.15     0.00     1.05   0.00  26.92    0.00    0.04   0.98     0.00     3.91 345.61  98.50
md0              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   0.00   0.00
md1              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   0.00   0.00
md2              0.00    2.20      0.00      8.80     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     4.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.03    0.00    0.02    0.00    0.00   99.94

Device            r/s     w/s     rkB/s     wkB/s   rrqm/s   wrqm/s  %rrqm  %wrqm r_await w_await aqu-sz rareq-sz wareq-sz  svctm  %util
nvme0n1          0.00    2.10      0.00     22.50     0.00     0.55   0.00  20.75    0.00    0.02   0.99     0.00    10.71 473.71  99.48
nvme1n1          0.00    2.10      0.00     22.50     0.00     0.55   0.00  20.75    0.00    0.02   0.99     0.00    10.71 473.71  99.48
md0              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   0.00   0.00
md1              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   0.00   0.00
md2              0.00    1.15      0.00     20.40     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00    17.74   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.02    0.00    0.02    0.00    0.00   99.95

これをカーネルのバグとして報告した人もいます:

https://kudzia.eu/b/2019/09/iostat-x-1-reporting-100-utilization-of-nearly-idle-nvme-drives/

ディスクの温度も高いのでよくわかりません。

/sbin/nvme smart-log /dev/nvme0
Smart Log for NVME device:nvme0 namespace-id:ffffffff
critical_warning                    : 0
temperature                         : 57 C
available_spare                     : 100%
available_spare_threshold           : 10%
percentage_used                     : 0%
data_units_read                     : 48,847,719
data_units_written                  : 5,641,464
host_read_commands                  : 357,945,226
host_write_commands                 : 164,837,853
controller_busy_time                : 320
power_cycles                        : 6
power_on_hours                      : 17,959
unsafe_shutdowns                    : 2
media_errors                        : 0
num_err_log_entries                 : 0
Warning Temperature Time            : 0
Critical Composite Temperature Time : 0
Temperature Sensor 1                : 57 C
Thermal Management T1 Trans Count   : 0
Thermal Management T2 Trans Count   : 0
Thermal Management T1 Total Time    : 0
Thermal Management T2 Total Time    : 0

同じように構成され、debian9 を実行している他のサーバーでは、ディスク使用率はほぼ 0% で、温度は 40 度です。

iotop ではディスク アクセスがあまり表示されません。

/sbin/iotop --only -ab -n5 -d5  
Total DISK READ:         0.00 B/s | Total DISK WRITE:         0.00 B/s
Current DISK READ:       0.00 B/s | Current DISK WRITE:       0.00 B/s

   TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
Total DISK READ:         0.00 B/s | Total DISK WRITE:        11.94 K/s
Current DISK READ:       0.00 B/s | Current DISK WRITE:       9.35 K/s

   TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
 23748 be/4 www-data      0.00 B     60.00 K  0.00 %  0.33 % nginx: worker process
   637 be/3 root          0.00 B      0.00 B  0.00 %  0.00 % [jbd2/md2-8]
Total DISK READ:         0.00 B/s | Total DISK WRITE:         7.16 K/s
Current DISK READ:       0.00 B/s | Current DISK WRITE:       9.35 K/s

   TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
 23748 be/4 www-data      0.00 B     88.00 K  0.00 %  0.16 % nginx: worker process
   637 be/3 root          0.00 B      8.00 K  0.00 %  0.00 % [jbd2/md2-8]
Total DISK READ:         0.00 B/s | Total DISK WRITE:         8.75 K/s
Current DISK READ:       0.00 B/s | Current DISK WRITE:       9.35 K/s

   TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
 23748 be/4 www-data      0.00 B    132.00 K  0.00 %  0.11 % nginx: worker process
   637 be/3 root          0.00 B      8.00 K  0.00 %  0.00 % [jbd2/md2-8]
Total DISK READ:         0.00 B/s | Total DISK WRITE:        26.26 K/s
Current DISK READ:       0.00 B/s | Current DISK WRITE:       9.35 K/s

   TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
 23748 be/4 www-data      0.00 B    252.00 K  0.00 %  0.19 % nginx: worker process
   637 be/3 root          0.00 B     12.00 K  0.00 %  0.00 % [jbd2/md2-8]
 23749 be/4 www-data      0.00 B      8.00 K  0.00 %  0.00 % nginx: worker process

ちなみに、md raid アレイの再同期は数日前に完了しました。

 cat /proc/mdstat 
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md2 : active raid1 nvme1n1p3[0] nvme0n1p3[1]
      932839744 blocks super 1.2 [2/2] [UU]
      bitmap: 3/7 pages [12KB], 65536KB chunk

md1 : active raid1 nvme1n1p2[0] nvme0n1p2[1]
      523264 blocks super 1.2 [2/2] [UU]

md0 : active raid1 nvme1n1p1[0] nvme0n1p1[1]
      4194240 blocks super 1.0 [2/2] [UU]

unused devices: <none>

もちろん、すでにマシンの再起動を試みています。

何かが正しく動作していないようです。このサーバーを nginx ロードバランサーとして本番環境で使用していたところ、ピーク時に説明のつかない停止が発生しました。アップストリーム タイムアウト、DNS エラー、letsencrypt での OSCP ステープル エラーが発生しました。

これらすべての問題は、同じ 2 分間隔で、ピーク使用率が高い場合にのみ発生します。問題は約 120 秒後に消えます。その後、次のピーク (2000 ~ 8000 リクエスト/秒程度) まですべて正常に動作します。

それとも、温度とディスク使用量は正常であるとみなしますか?

これはカーネルのバグでしょうか? 何か重要なことを見逃したのでしょうか? 実際の問題についてさらに調査するにはどうすればよいでしょうか?

答え1

md-raid を作成するために使用される基礎となる NVMe ドライブで 100% の使用率が表示されるのはカーネルのバグであると確信しています (関連レポートを参照)。一時的にカーネル 5.2 にアップグレードすると 100% の使用率は解消されました。また、md-raid1 を古いカーネルと新しいカーネル (常にフル使用率を報告するカーネルを含む) でベンチマークしましたが、スループットや iops/秒に大きな違いは見られませんでした。

温度 57 ℃ は、少なくとも私たちが使用している Intel の P4510 4TB の場合、許容範囲内です。これらのデバイスの警告しきい値は 70 ℃ です。

完全な開示 - 私はあなたが引用したブログ投稿の著者です。

関連するバグレポート:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=927184

参考:

参考:

https://github.com/munin-monitoring/munin/issues/1119

https://unix.stackexchange.com/questions/517667/nvme-disk-shows-80-io-utilization-partitions-show-0-io-utilization?noredirect=1&lq=1

https://github.com/netdata/netdata/issues/5744#issuecomment-513873791

関連情報