Estou usando cat
para canalizar arquivos diferentes em um arquivo grande. O número de arquivos diferentes varia, de dois arquivos a dez, mas o tamanho total de todos os arquivos é sempre o mesmo (alguns GB).
Meu problema: sempre que chego ao caso em que tenho um total de seis arquivos, o tempo necessário para concatenar esses picos (ou seja, significativamente mais do que com cinco ou sete), e não faço ideia do porquê.
Alguém tem uma ideia?
Os arquivos (todos do mesmo tamanho)
output
outputTEMP1
outputTEMP2
outputTEMP3
outputTEMP4
outputTEMP5
Comando
cat outputTEMP* >> output && rm -f outputTEMP*
Atualmente, a máquina precisa executar alguns cálculos, mas atualizarei mais tarde quando novas medições estiverem disponíveis.
linux
performance
brandstaetter
fonte
fonte
Respostas:
Uma maneira de depurar esse problema é usar strace.
A opção -tt registra o registro de data e hora da chamada do sistema na resolução de mili-segundos. -e trace = abrir, fechar o log apenas abrir, fechar a API. Tente removê-los e você verá um arquivo de log muito barulhento.
fonte
Portanto, o comentário de Davides está no local. Precisamos de duas coisas aqui, para fazer uma avaliação precisa:
Supondo que você tenha espaço em disco, descreverei um cenário de teste que determinará com mais precisão se esse é um problema real. Nesse caso, as evidências de suporte dessa abordagem ajudarão os desenvolvedores a saberem que é real e serão capazes de reproduzi-la.
Para ajudar no isolamento de problemas, não vamos fazer a parte rm aqui. deixe os arquivos TEMP pararem depois. Você pode repetir os testes executando a parte 'rm' posteriormente, se desejar.
Aqui está o cenário de teste:
use o comando time como este:
time (saída catTETEMP * >>)
Capture os números reais, de usuário e de sistema relatados para cada teste executado.
Eu concordo com Reynolds; se isso for real, você deve enviar detalhes por e-mail para [email protected].
fonte