Linux - Extração de Tar reduz drasticamente o servidor

4

Eu tenho um servidor web (especificações abaixo) com 12 TB de armazenamento. Estou movendo grandes quantidades de arquivos csv empacotados no TAR's para o servidor e, em seguida, extraindo no servidor. O problema é que ao extrair os arquivos TAR, o servidor fica tão lento que é quase inutilizável. Eu não estou fazendo nada louco, geralmente executando 2-4 extrações de cada vez. Mas mesmo apenas executando um ou dois retarda o servidor visivelmente. Isso vai ser um grande problema para mim, já que vou carregar e extrair arquivos TAR enquanto as pessoas vão querer usar o site e agora não posso fazer as duas coisas. Eu sou muito novo no Linux e nesta comunidade, então me avise se eu puder fornecer mais informações úteis e atualizarei a postagem.

Eu estou supondo que o disco é o gargalo?

Em caso afirmativo, posso limitar o uso do disco de extração de tar ou dar prioridade a tudo o mais?

Estatuto de E / S:

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.15    0.56    0.40   14.83    0.00   84.06

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
loop0             0.00         0.00         0.00       1907          2
sda             155.19       787.23      1484.89  604305327 1139862930
sdb             154.49       765.39      1493.48  587544552 1146456242
sdc             153.82       759.91      1485.53  583338594 1140353662
md4            1041.52      1861.40      4425.45 1428880721 3397151904
md3               4.78        46.70        11.08   35850458    8501904
md2               0.00         0.00         0.00       3641         98

TOP:

PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
7194 root      20   0       0      0      0 D   5.0  0.0   0:17.38 
13811 user1  20   0  121272   1620   1464 D   4.3  0.0   0:02.20 tar

Especificações do servidor:

Intel Atom C2750, 8c/8t - 2.4GHz /2.6GHz, 16GB DDR3 ECC 1600 MHz

    
por lessharm 16.04.2018 / 01:46

1 resposta

4

O comando ionice é " nice for IO" e executará um comando com diferentes IO prioridades, por isso vai (ou não) ceder a outros processos que querem usar o disco.

ionice -c 3 tar xf ...

executará o comando tar com prioridade "inativa", portanto, ele só usará o disco quando ninguém mais desejar. Isso evitará que ele interfira em outros processos.

Não haverá muito benefício em executar várias extrações em paralelo neste caso. Um arquivo tar é apenas dados concatenados e alguns cabeçalhos, portanto não há nada além de ler e escrever para fazer. Pode ser útil se você estiver trabalhando em discos diferentes ou para determinados SSDs.

    
por 16.04.2018 / 01:58