
Atualmente, estou executando várias tarefas de desenvolvimento que são lentas em meu sistema atual devido ao desempenho de IO.
Existe uma maneira de registrar operações de disco durante a execução de tarefas que consomem IO, incluindo informações de desempenho (gravações/segundo, leituras/segundo, etc.) e, em seguida, reproduzi-las em um novo sistema para ver qual seria o desempenho?(sem ter que executar novamente o mesmo comando no mesmo conjunto de dados)?
Seriatraço preto,blkparseoufiome ajude neste caso?
Por exemplo: digamos que no meu sistema eu queira avaliar um
find -name "*.php" | xargs grep -r "test_string"
dentro de uma pasta contendo 50.000 arquivos (em vários níveis, é claro)
Gostaria de capturar todas as operações do disco, incluindo estatísticas, e reproduzi-las em outro sistema que não possua a pasta de 50.000 arquivos. Basicamente, apenas simulando as operações e verificando se elas são feitas com mais rapidez.
Eu tentei capturar as amostras de disco usando
blktrace -d /dev/sda -o myfile.blk
mas não sei como posso tentar reproduzi-los comfio.
Isso é possível?
Obrigado
Responder1
Não. Se quiser ver quanto tempo a mesma tarefa levará em hardware diferente, será necessário executar a mesma tarefa no novo hardware.
Se você quisesse simular a tarefa, precisaria encontrar uma maneira de simular qualquer trabalho que a tarefa faça com os dados depois de lidos, além de tentar ler/gravar os mesmos setores do disco.
Responder2
Para reproduzir um blktrace
arquivo com fio você precisará primeiro convertê-lo em um blkparse
arquivo de dados binários - vejaread_iolog
opção do fioPara maiores informações (replay_redirect
também pode ser útil).
Observação:usar fio para executar novamente um replay que contém gravações DESTRÓI os dados no arquivo/disco contra o qual ele é reproduzidopor isso tem cuidado!