Como podemos descobrir onde o software de A / V pode ser de-compactar grandes arquivos compactados durante a varredura?

0

Sempre que nosso software A / V tenta varrer arquivos grandes (geralmente um arquivo tar.gz > 1 G em tamanho), o espaço em disco para / partition aumenta drasticamente. Como podemos descobrir exatamente onde o AV está colocando os arquivos temporários?

Quando a varredura for concluída, o espaço em disco voltará ao normal. Como vários usuários fazem upload de arquivos simultaneamente neste servidor (CentOS 6.8), com varreduras iniciadas automaticamente para cada upload, o uso do espaço em disco aumenta muito rapidamente e, às vezes, chega a 100% para /.

Eu posso ver o aumento do disco em "df", mas quando eu comparo os resultados de "du -ah --max-depth = 1 /" para antes e durante a varredura, não vejo uma mudança para nenhuma das pastas .

Emboraeuvejaotamanhodocacheaumentandobastanteusandoovmstat.

Tenteiverificarasgravaçõesusando"strace" e recebi várias entradas semelhantes às abaixo. Não tenho certeza de como interpretar isso.

9358  write(8, "x27|.b52^\"2X3,36TP5R_6**37050"..., 30720) = 30720
9358  write(8, "l4395'46wD~71d6\n20312302M152F"..., 30720) = 30720
9358  write(8, "0}YI471s1z5DJO6u53c2zEW002]WZQ5"..., 30720) = 30720
9358  write(8, "20H&]q09U!7f7o?0l52<15h5<8.7\f12C"..., 30720) = 30720

Obrigado,

~ Abhi

    
por Abhi 16.02.2017 / 17:48

1 resposta

0

A saída strace mostra que 'write' está funcionando no identificador de arquivo 8. Para descobrir qual identificador de arquivo 8 é necessário consultar /proc/ , nesse caso, /proc/9358/fd . 9358 é o PID que você estava rastreando e fd mantém os descritores de arquivos abertos para o PID.

Você pode ver os descritores de arquivos atuais para o bash em execução, se você observar:

/proc/$$/fd

Então, se você fizer o acima, você verá 8 link simbólico para o arquivo que está sendo descompactado. Se você precisar de mais tempo, envie um SIGSTOP para o processo de A / V enquanto faz esse trabalho. Quando estiver satisfeito, você poderá SIGCONT do processo para continuar com o trabalho. Obviamente, se esse processo fizer parte de um serviço de rede, como web / ftp / email, talvez você não queira interrompê-lo, pois isso pode afetar a QoS dos usuários.

Se você tiver sorte, provavelmente poderá fazer algo assim, o que poupa um pouco do tempo de descobrir qual é o ID do processo.

pkill -STOP -f 'av binary name'

Pode até haver um arquivo de configuração armazenado em / etc para seu software de A / V que possa definir um diretório de trabalho.

    
por 16.02.2017 / 19:51

Tags