
Actualmente estoy realizando varias tareas de desarrollo que son lentas en mi sistema actual debido al rendimiento de IO.
¿Existe alguna manera de registrar operaciones de disco mientras se realizan tareas que consumen E/S, incluida información de rendimiento (escrituras/segundo, lecturas/segundo, etc.) y luego reproducirlas en un nuevo sistema para ver cuál sería el rendimiento?(sin tener que volver a ejecutar el mismo comando sobre el mismo conjunto de datos)?
haríarastro negro,análisis negroofio¿ayudarme en este caso?
Por ejemplo: digamos que en mi sistema quiero comparar un
find -name "*.php" | xargs grep -r "test_string"
dentro de una carpeta que contiene 50.000 archivos (en varios niveles, por supuesto)
Me gustaría capturar todas las operaciones del disco, incluidas las estadísticas, y luego reproducirlas en otro sistema que no tenga la carpeta de 50 000 archivos. Básicamente, simplemente simular las operaciones y comprobar si se realizan más rápido.
Intenté capturar las muestras del disco usando
blktrace -d /dev/sda -o myfile.blk
pero no sé cómo puedo intentar reproducirlos confio.
es posible?
Gracias
Respuesta1
No. Si desea ver cuánto tiempo llevará la misma tarea en un hardware diferente, deberá ejecutar la misma tarea en el nuevo hardware.
Si quisiera simular la tarea, entonces necesitaría encontrar una forma de simular cualquier trabajo que realice la tarea con los datos una vez leídos, además de intentar leer/escribir los mismos sectores del disco.
Respuesta2
Para reproducir un blktrace
archivo con fio, primero deberá convertirlo en un blkparse
archivo de datos binarios; consulteread_iolog
la opción de fiopara más información (replay_redirect
también puede resultar útil).
Nota:usar fio para volver a ejecutar una reproducción que contiene escrituras DESTRUYE los datos en el archivo/disco en el que se reproduce¡así que ten cuidado!