Estou executando um aplicativo baseado em hadoop (hadoop 1.2.1
), onde descobri um gargalo no disco rígido; monitorar as IOPS do disco rígido com iotop
resultou em ~ 160 MB / s, que foi a velocidade de gravação que obtinha comparando o disco com dd
.
Procurando eliminar o gargalo, montei todo o meu hadoop HDFS e a saída dos mapeadores para tmpfs
usando:
mount -t tmpfs -o size=5G none /app/hadoop
/app/hadoop
é onde o HDFS é armazenado, assim como a saída intermediária dos mapeadores. O conjunto de dados de entrada no HDFS é de 680 MiB, a saída é de 318 MiB, enquanto a saída total dos mapeadores é de 2.30 GiB; todos estes divididos em 2 datanodes / tasktrackers, portanto, eu tenho espaço suficiente em RAM para o aplicativo executar e executar corretamente.
Nesta configuração, estou tentando medir o IOPS para esse diretório, ou seja, a velocidade de gravação. Como li neste tópico , as ferramentas de monitoramento tradicionais não funcionarão com tmpfs
, não sendo um dispositivo de bloco. Como eu poderia medir a velocidade de gravação?
Soluções como pv
, como proposto em outro thread, infelizmente não funcionariam; A alteração do código-fonte do hadoop não é uma opção viável e o pv
introduz seus próprios gargalos ao gravar na RAM, conforme medi com dd
.