Wenn ich eine große MySQL-Datenbank auslege (ihr Auszug wiegt ungefähr 10 GB)
– erscheint sie fast sofort auf der Festplatte, aber später, wenn der Kernel
entscheidet, sie auf die Festplatte zu spülen, fast der Server Blockierungen und andere IO-Anforderungen
benötigen viel mehr Zeit, um abgeschlossen zu werden, obwohl mysqldump mit ionice -c3 ausgeführt wird,
sodass die Verwendung von ionice keine wirklichen Auswirkungen hat.
Artem
Wenn Sie Daten in den Seitencache schreiben, gibt es kein Feld zum Speichern der E/A-Priorität. Also ionice
wird keine Wirkung haben. Habe ich das Recht?
Meine neueste Kernel-Version ist 4.18.16-200.fc28.x86_64
.
Akzeptierte Antwort:
Ja.
Theoretisch erlaubt Ihnen ionice, die E/A eines Befehls so zu priorisieren, wie nice(1) theoretisch seine CPU-Auslastung priorisiert. Dies wäre ein praktischer Weg, um beispielsweise eine große, aber relativ wichtige Kompilierung im Hintergrund ablaufen zu lassen, ohne Ihre interaktive Nutzung der Maschine zu beeinträchtigen.
(Warum ja, ich kompiliere Firefox von Zeit zu Zeit aus den Quellen neu.)
[…]
Das nächste Problem besteht darin, dass ionice
selbst dann, wenn es direkt auf einer Festplatte ausgeführt wird tut nichts, um asynchrones Schreiben von E/A zu depriorisieren. Dies ist, nun ja, der Großteil der Schreib-IO, die die meisten Programme ausführen. Ionice kann synchrone Schreibvorgänge verlangsamen (ich habe kein Testprogramm) und es funktioniert definitiv für Lesevorgänge, aber das war's.
https://utcc.utoronto.ca/~cks/space/blog/linux/IoniceNotes