Immer wenn hohe Festplatten-E / A vorhanden sind, ist das System in der Regel viel langsamer und reagiert weniger schnell als gewöhnlich. Was ist der Fortschritt auf dem Linux-Kernel in dieser Hinsicht? Wird an diesem Problem aktiv gearbeitet?
Immer wenn hohe Festplatten-E / A vorhanden sind, ist das System in der Regel viel langsamer und reagiert weniger schnell als gewöhnlich. Was ist der Fortschritt auf dem Linux-Kernel in dieser Hinsicht? Wird an diesem Problem aktiv gearbeitet?
Antworten:
Ich denke zum größten Teil wurde es gelöst. Meine Leistung unter starken E / A hat sich in 2.6.36 verbessert, und ich erwarte, dass sie sich in 2.6.37 weiter verbessert. Siehe diese Phoronix- Artikel.
Wu Fengguang und KOSAKI Motohiro haben diese Woche Patches veröffentlicht, von denen sie glauben, dass sie einige dieser Probleme mit der Reaktionsfähigkeit beheben werden. Andreas Mohr, einer der Benutzer, der dieses Problem dem LKML gemeldet und die beiden Patches getestet hat, die gegen den vmscan des Kernels angewendet werden, hat Erfolg gemeldet. Das Problem von Andreas war, dass das System beim Erstellen eines EXT4-Dateisystems, wenn ein Solid-State-Laufwerk über USB 1.1 angeschlossen war, nicht mehr reagierte (und das Umschalten auf ein VT mehr als 20 Sekunden dauerte). Auf seinem System war das Problem beim Schreiben von 300 MB aus der Datei / dev / zero noch schlimmer.
Hier ist ein direkter Link zum Fehler
Auch von Phoronix
Glücklicherweise scheinen die veröffentlichten relativ kleinen vmscan-Patches nach unseren Tests und den Berichten anderer Linux-Benutzer, die dieses Problem behoben haben möchten, das Problem besser zu lösen. Die Benutzeroberfläche (in unserem Fall GNOME) ist immer noch nicht 100% flüssig, wenn das System eine überwältigende Menge an Festplattenaktivität aufweist, aber es ist sicherlich viel besser als zuvor und was derzeit sogar mit dem Linux 2.6.35-Kernel zu finden ist.
Es gibt auch die Ankündigung der Veröffentlichung von Phoronix 2.6.36
Es scheint, dass Blockbarrieren verschwinden und das sollte auch die Leistung verbessern.
In der Praxis haben Barrieren einen unangenehmen Ruf, die Block-E / A-Leistung zu beeinträchtigen, so dass Administratoren häufig versucht sind, sie auszuschalten und ihre Risiken einzugehen. Während die von moderner Hardware bereitgestellten getaggten Warteschlangenoperationen Barrieren recht gut implementieren sollten, sind Versuche, diese Funktionen zu nutzen, im Allgemeinen auf Schwierigkeiten gestoßen. In der realen Welt werden Barrieren implementiert, indem einfach die E / A-Anforderungswarteschlange vor dem Ausgeben der Barriereoperation geleert wird, wobei einige Flush-Operationen ausgeführt werden, damit die Hardware die Daten tatsächlich auf persistenten Medien festschreibt. Warteschlangenentleerungsvorgänge blockieren das Gerät und beenden die Parallelität, die für die volle Leistung erforderlich ist. Es ist nicht überraschend, dass der Einsatz von Barrieren schmerzhaft sein kann.
Es gibt auch diesen LWN-Artikel über faire E / A-Planung
Ich würde sagen, dass IO zum Zeitpunkt der Veröffentlichung von ext4 in 2.6.28 als große Sache wieder erwacht ist. Die folgenden Links beziehen sich auf Kernel-Versionen von Linux Kernel Newbies . Sie sollten die Abschnitte Block und Dateisysteme lesen. Dies kann natürlich eine unfaire Stimmung sein, oder gerade als ich anfing, die FS-Entwicklung zu beobachten, hat sie sich sicher die ganze Zeit verbessert, aber ich habe das Gefühl, dass einige der ext4-Probleme dazu geführt haben, dass die Leute sich den IO-Stack genau angesehen haben, oder Es könnte sein, dass sie erwartet hatten, dass ext4 alle Leistungsprobleme löst, und als dies nicht der Fall war, wurde ihnen klar, dass sie anderswo nach den Problemen suchen mussten.
2.6.28 , 2.6.29 , 2.6.30 , 2.6.31 , 2.6.32 , 2.6.33 , 2.6.34 , 2.6.35 , 2.6.36 , 2.6.37