Quase 100% de utilização do disco após atualizar para o debian 10 sem qualquer motivo

Quase 100% de utilização do disco após atualizar para o debian 10 sem qualquer motivo

Recentemente atualizamos nossos servidores para o debian 10. A configuração é completamente a mesma do debian9, além, é claro, de alguns novos pacotes de software.

Estamos executando o kernel padrão:

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

Usamos 2 discos SSD NVME em uma invasão de software e após a atualização para o debian 10 encontramos alta utilização do disco. Role para ver a última coluna:

# 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

Alguns relataram isso como um bug no kernel:

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

Não tenho tanta certeza, pois a temperatura do nosso disco também está alta:

/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

Em outros servidores, configurados de forma idêntica, e ainda rodando o debian9 temos quase 0% de utilização do disco e uma temperatura de 40 Graus Celsius.

iotop não mostra tanto acesso ao disco:

/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

A propósito, a ressincronização do array md raid foi concluída dias atrás:

 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>

Já tentei reiniciar a máquina, claro.

Então parece que algo não está funcionando corretamente. Quando usamos este servidor em produção como um balanceador de carga nginx, encontramos algumas interrupções em picos altos que não puderam ser explicados. Tivemos tempos limite de upstream, erros de DNS, erros de grampeamento OSCP com letsencrypt.

Todos esses problemas acontecem no mesmo intervalo de dois minutos e apenas em picos de uso elevados. Os problemas desaparecem após cerca de 120 segundos. Depois disso, tudo funciona bem até o próximo pico (com algo em torno de 2.000 a 8.000 req/s).

Ou você considera a temperatura e o uso do disco normais?

Isso é um bug do kernel? Perdi algo crucial? Como posso fazer mais investigações sobre o problema real?

Responder1

estou bastante convencido de que 100% de utilização mostrada para as unidades NVMe subjacentes usadas para criar o md-raid é um bug do kernel - consulte os relatórios relacionados. a atualização temporária para o kernel 5.2 fez com que a utilização de 100% desaparecesse, também comparamos o md-raid1 em kernels mais antigos/mais novos - incluindo aqueles que relatam utilização total constante - e não notamos nenhuma diferença significativa na taxa de transferência ou iops/s.

a temperatura de 57C está dentro da faixa aceitável, pelo menos para o P4510 4TB da Intel que usamos - eles têm limite de aviso de 70C.

divulgação completa - sou o autor da postagem do blog que você cita.

relatórios de bugs relacionados:

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

https://bugs.centos.org/view.php?id=15723

https://github.com/sysstat/sysstat/issues/187

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

informação relacionada