xfs desempenho lento; eu penduro

2

Eu tenho um problema muito estranho com um xfs em um servidor de armazenamento centos7. Neste fs particular em lvm, tinha sido muito lento em muitas ocasiões diferentes. No começo eu pensei que era uma leitura e / ou escrita, pois cp de um arquivo iso de 4,5 GB levou 100x mais do que em um bom fs. Eu me perguntei se era um problema de alinhamento. Mas agora está pendurado em um simples ls -lh , com nada mais acontecendo neste sistema de arquivos, algo mais deve estar muito errado aqui ...

Dê uma olhada nesta série de comandos. ls estava bem no começo, depois de um teste de criação de arquivo, um segundo ls pendurou:

# cd perf_test/
# ls
CentOS-7-x86_64-DVD-1708.iso  CentOS-7-x86_64-DVD-1708.iso.cp1
# ls -l
total 8830984
-rw-rw-r--. 1 t    t    4521459712 Sep  6  2017 CentOS-7-x86_64-DVD-1708.iso
-rw-r--r--. 1 root root 4521459712 Apr  9 21:47 CentOS-7-x86_64-DVD-1708.iso.cp1
# date; time -p dd if=/dev/zero of=test.dd bs=1k count=64k ; echo $? ; date
Thu Apr 12 23:50:58 PDT 2018
65536+0 records in
65536+0 records out
67108864 bytes (67 MB) copied, 0.264055 s, 254 MB/s
real 0.27
user 0.02
sys 0.24
0
Thu Apr 12 23:50:58 PDT 2018
# ls -lh
(this ls has been running for 20 minutes now and still hasn't returned)

Se eu abrir outra sessão ssh, / bin / ls -lh retorna imediatamente. Claro, a versão padrão de ls é aliada para --color, demora um pouco mais para stat todos os inodes (para todos os 3 arquivos), certamente não deve travar?

O FS é bastante novo e tem poucos dados:     / dev / mapeador / datavg02-datalv02 125T 1.1T 124T 1% / mnt / tmp_data02

Várias coisas estranhas aconteceram:

  • o FS e seu "host" de LV foram criados pela primeira vez em ~ 10GB, depois lvextend -L + 500G / xfs_growfs e mais uma vez lvextend -L 125T / xfs_growfs.
  • teste de funcionalidade antecipada foi aprovado.
  • Começou a copiar arquivos para ele. Agora em 1.1TB.
  • Na hora em que a máquina parecia estar muito lenta.
  • Emitiu a reinicialização, demorou muito tempo (5 minutos), a máquina de pensamento foi interrompida e decidiu desligar.
  • o mount demorou muito tempo para montar o fs novamente (mais de 24 horas).
  • mas o fs agora pode desmontar e montar muito rapidamente.

Alguns detalhes sobre o sw stack:

# uname -a
Linux roost 3.10.0-693.17.1.el7.x86_64 #1 SMP Thu Jan 25 20:13:58 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
# rpm -qa | grep xfs
xfsprogs-4.5.0-12.el7.x86_64
xfsdump-3.1.4-1.el7.x86_64

Cartão RAID:

b3:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS-3 3108 [Invader] (rev 02)

É um ataque 6 "Disco Virtual" com 16 unidades de 10 TB. LVM2 neste VD, com dois XFS neste grupo de volumes. o outro volume do XFS se comporta muito bem, embora seja um FS de 123GB.

O que poderia estar errado e como devo corrigi-lo?

Obrigado!

T

~~~~~

Obrigado pelo feedback Tux:)

O ls nunca terminou e eu tive que matá-lo. matar -9 não funcionou. Eu tive que matar o processo bash pai.

Eu desmontado, xfs_repair (que demorou 25 horas), monte novamente.

O primeiro cp de um arquivo iso de 4,5 GB era terrivelmente lento. demorou 826 segundos em vez de um esperado ~ 8 segundos em um xfs baseado em um volume de ataque diferente.

O estranho é que um segundo teste de cp do mesmo arquivo foi concluído no esperado ~ 8 segundos. Eu me pergunto se estou acertando o bug mencionado em: link

Eu ainda não terminei de ler esse longo tópico para ver qual a solução. Mas, o que é "grande contabilista" hoje em dia para o xfs?

# xfs_info /dev/datavg02/datalv02
meta-data=/dev/mapper/datavg02-datalv02 isize=512    agcount=5295839, agsize=6336 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=33554432000, imaxpct=25
         =                       sunit=64     swidth=64 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=1605, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

quanto a estatísticas ... abaixo estão alguns instantâneos de iotop e iostat durante o primeiro cp que levou 100x o tempo esperado:

# date; time -p cp CentOS-6-x86_64-DVD-1708.iso CentOS-7-x86_64-DVD-1708.iso.after_xfs_repair ; echo $? ; date
Sat Apr 14 23:00:55 PDT 2018
real 826.37
user 0.04
sys 5.96
1
Sat Apr 14 23:14:41 PDT 2018


Total DISK READ :     650.00 K/s | Total DISK WRITE :    1040.00 K/s
Actual DISK READ:     650.00 K/s | Actual DISK WRITE:       0.00 B/s
   TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND                                                                                        
222036 be/4 root        0.00 B/s    3.82 K/s  0.00 %  0.00 % tee iotop.out   
   937 be/4 root        0.00 B/s    3.82 K/s  0.00 %  0.00 % rsyslogd -n [rs:main Q:Reg]
380133 be/4 root      650.00 K/s    0.00 B/s  0.00 %  0.00 % [kworker/u896:0]
  1489 be/4 ganglia     0.00 B/s 1032.35 K/s  0.00 %  0.00 % gmetad -d 1
  2048 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % X :0 -background none -noreset -audit 4 -verbose~tabase -seat seat0 -nolisten tcp vt1 [llvmpipe-6]
     1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % systemd --switched-root --system --deserialize 21
     2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
     3 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]
  2052 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % X :0 -background none -noreset -audit 4 -verbose~abase -seat seat0 -nolisten tcp vt1 [llvmpipe-10]
     5 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/0:0H]
  2054 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % X :0 -background none -noreset -audit 4 -verbose~abase -seat seat0 -nolisten tcp vt1 [llvmpipe-12]
     7 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/0]
     8 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcu_bh]
     9 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcu_sched]
    10 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [watchdog/0]
    11 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [watchdog/1]
    12 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/1]
    13 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/1]
    15 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/1:0H]
    16 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [watchdog/2]
    17 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/2]



Total DISK READ :     567.90 K/s | Total DISK WRITE :    1008.77 K/s
Actual DISK READ:     567.90 K/s | Actual DISK WRITE:    1374.92 K/s
   TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND                                                                                        
380133 be/4 root      567.90 K/s    0.00 B/s  0.00 %  0.00 % [kworker/u896:0]
  1489 be/4 ganglia     0.00 B/s 1008.77 K/s  0.00 %  0.00 % gmetad -d 1 
  2048 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % X :0 -background none -noreset -audit 4 -verbose~tabase -seat seat0 -nolisten tcp vt1 [llvmpipe-6]
     1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % systemd --switched-root --system --deserialize 21
     2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
     3 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]
  2052 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % X :0 -background none -noreset -audit 4 -verbose~abase -seat seat0 -nolisten tcp vt1 [llvmpipe-10]
     5 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/0:0H]
  2054 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % X :0 -background none -noreset -audit 4 -verbose~abase -seat seat0 -nolisten tcp vt1 [llvmpipe-12]
     7 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/0]
     8 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcu_bh]
     9 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcu_sched]
    10 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [watchdog/0]
    11 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [watchdog/1]
    12 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/1]
    13 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/1]
    15 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/1:0H]
    16 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [watchdog/2]
    17 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/2]
    18 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/2]
  2051 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % X :0 -background none -noreset -audit 4 -verbose~tabase -seat seat0 -nolisten tcp vt1 [llvmpipe-9]
    20 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/2:0H]
    21 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [watchdog/3]
    22 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/3]
    23 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/3]
    25 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/3:0H]
    26 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [watchdog/4]
    27 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/4]
    28 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/4]
    30 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/4:0H]
    31 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [watchdog/5]
    32 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/5]
    33 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/5]
    35 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/5:0H]
    36 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [watchdog/6]
    37 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/6]
    38 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/6]
    40 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/6:0H]
    41 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [watchdog/7]
    42 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/7]
    43 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/7]
    45 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/7:0H]
    46 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [watchdog/8]
    47 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/8]
    48 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/8]
  2056 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % X :0 -background none -noreset -audit 4 -verbose~abase -seat seat0 -nolisten tcp vt1 [llvmpipe-14]
    50 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/8:0H]



avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.28    0.00    0.28    0.01    0.00   99.44

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda             261.80         1.60      1130.40          8       5652
sdb              21.80      3072.00         0.00      15360          0
sdc             155.60       622.40         0.00       3112          0
dm-0            262.20         1.60      1130.40          8       5652
dm-1              0.00         0.00         0.00          0          0
dm-2             21.80      3072.00         0.00      15360          0
dm-3              0.00         0.00         0.00          0          0
dm-4            155.60       622.40         0.00       3112          0
dm-5              0.00         0.00         0.00          0          0
dm-6              0.00         0.00         0.00          0          0




avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.50    0.00    0.30    0.00    0.00   99.20

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              45.60         0.00       185.60          0        928
sdb               0.00         0.00         0.00          0          0
sdc             161.80       647.20         0.00       3236          0
dm-0             45.60         0.00       185.60          0        928
dm-1              0.00         0.00         0.00          0          0
dm-2              0.00         0.00         0.00          0          0
dm-3              0.00         0.00         0.00          0          0
dm-4            162.00       648.00         0.00       3240          0
dm-5              0.00         0.00         0.00          0          0
dm-6              0.00         0.00         0.00          0          0




# dmesg | grep -v IPTable ; uptime
[614878.648714] XFS (dm-4): Mounting V5 Filesystem
[614878.800398] XFS (dm-4): Ending clean mount
 23:04:43 up 7 days,  2:53,  4 users,  load average: 2.04, 1.25, 0.71
    
por user465222 13.04.2018 / 09:52

1 resposta

0

both FS and its LV "host" was first created at ~10GB, then lvextend -L+500G/xfs_growfs and yet again lvextend -L 125T/xfs_growfs.

Isso provavelmente é problema seu. O crescimento do sistema de arquivos geralmente é bom para 10X (uma ordem de grandeza); qualquer coisa maior penaliza severamente o desempenho do sistema de arquivos comparado a um tamanho correto.

No seu caso, você aumenta de 10 GB para > 100 TB, um aumento de 10.000 vezes (4 ordens de grandeza). Então, sugiro strongmente que você reformate seu sistema de arquivos com o tamanho correto. Isso obviamente significa fazer backup e restaurar qualquer coisa que você carregue.

De qualquer forma, você tem certeza de que nenhum disco tem problemas? Você pode postar a saída de iostat -x -k 1 durante o ls ?

bloqueado     
por 15.04.2018 / 12:51