Cuando vuelco una base de datos MySQL grande (su volcado pesa alrededor de 10 GB)
, aparece en el disco casi de inmediato, pero luego, más tarde, cuando el kernel
decide vaciarlo en el disco, el servidor casi las paradas y otras solicitudes de E/S
tardan mucho más en completarse aunque mysqldump se ejecuta con ionice -c3,
por lo que el uso de ionice no tiene ningún efecto real.
Artem
Cuando escribe datos en la memoria caché de la página, no hay ningún campo para almacenar la prioridad de E/S. Así que ionice
no tendrá ningún efecto. ¿Tengo ese derecho?
Mi última versión del kernel es 4.18.16-200.fc28.x86_64
.
Respuesta aceptada:
Sí.
En teoría, ionice le permite priorizar el IO de un comando de la misma manera que nice(1) teóricamente prioriza el uso de su CPU. Esta sería una forma práctica de permitir, por ejemplo, que una compilación grande pero relativamente importante se desarrolle en segundo plano sin interferir con el uso interactivo de la máquina.
(Sí, sí, vuelvo a compilar Firefox desde el código fuente de vez en cuando).
[…]
El siguiente problema es que incluso cuando se ejecuta directamente en un disco, ionice
no hace nada para despriorizar la E/S de escritura asíncrona. Esto es, bueno, la mayor parte del IO de escritura que harán la mayoría de los programas. Ionice puede ralentizar las escrituras síncronas (no tengo un programa de prueba) y definitivamente funciona para lecturas, pero eso es todo.
https://utcc.utoronto.ca/~cks/space/blog/linux/IoniceNotes