Lorsque je vide une grande base de données MySQL (son vidage pèse environ 10 Go)
- il apparaît sur le disque presque immédiatement, mais ensuite, plus tard, lorsque le noyau
décide de le vider sur le disque, le serveur presque les décrochages et autres requêtes d'E/S
prennent beaucoup plus de temps à se terminer même si mysqldump est exécuté avec ionice -c3,
donc l'utilisation d'ionice n'a pas d'effet réel.Artem
Lorsque vous écrivez des données dans le cache de page, il n'y a pas de champ pour stocker la priorité IO. Donc ionice
n'aura aucun effet. Ai-je raison ?
Ma dernière version du noyau est 4.18.16-200.fc28.x86_64
.
Réponse acceptée :
Oui.
En théorie, ionice vous permet de hiérarchiser les E/S d'une commande de la même manière que nice(1) hiérarchise théoriquement son utilisation du processeur. Ce serait un moyen pratique de permettre, par exemple, à une compilation volumineuse mais relativement importante de se dérouler en arrière-plan sans gêner votre utilisation interactive de la machine.
(Pourquoi oui, je recompile Firefox à partir des sources de temps en temps.)
[…]
Le problème suivant est que même en s'exécutant directement sur un disque,
ionice
ne fait rien pour déprioriser les E/S d'écriture asynchrones. C'est, eh bien, la plupart des E/S d'écriture que la plupart des programmes feront. Ionice peut ralentir les écritures synchrones (je n'ai pas de programme de test) et cela fonctionne certainement pour les lectures, mais c'est tout.https://utcc.utoronto.ca/~cks/space/blog/linux/IoniceNotes