Schlechte I/O-Performance unter Linux



  • Ich habe derzeit Ubuntu 13.10 (Kernel 3.11) auf meinem PC und Laptop installiert und habe Probleme beim Festplattenzugriff.

    Konkret, auf dem PC: wenn ich große Mengen Dateien von einer Platte auf einer andere kopiere, dann wirkt es nach kurzer Zeit, als ob dem System der Speicher ausgegangen sei, alles reagiert träge, Arbeiten ist kaum noch möglich. Aber >80% des Speichers ist unbelegt, daran kann es nicht liegen.

    Auf dem Notebook (mit SSD) ist es weitaus schlimmer: wenn ich z.B. Daten von der SSD auf eine externe Festplatte verschiebe, dann ist das System für die Dauer des Vorgangs größtenteils eingefroren (d.h. Mauszeiger bewegt sich nicht mehr).

    Das scheint auch eher ein neueres Problem zu sein, vor einigen Jahren konnte ich problemlos Programme im Hintergrund laufen lassen, die terabyteweise Daten gelesen und geschrieben haben, ohne dass mich das bei der Arbeit behindert hätte. Die SSD hatte ich vor zwei Jahren auch schon mal im PC und kann mich da auch an keine Probleme erinnern.

    Frage ist jetzt, ist das Problem bekannt? Gibt es Abhilfe?



  • schon probiert den kopierprozess mit iotop anzuaschauen bzw., die priorität zu ändern?



  • awk schrieb:

    Frage ist jetzt, ist das Problem bekannt?

    Nein, kann ich nirgends nachvollziehen. Wie kopierst/verschiebst du denn?

    Ich bin nach Ubuntu 13.10 wieder von Ubuntu weggewechselt, weil das so verbuggt war, aber das Problem hatte ich damals auch nirgends.



  • Was gibt denn "hdparm {laufwerk}" aus? Was sagt die CPU-Last beim Kopieren?



  • nman schrieb:

    Wie kopierst/verschiebst du denn?

    Normalerweise über den Dateimanager (nemo). Ich es auch gerade nochmal mit cp im Terminal versucht - auch dann tritt das Problem auf.

    ack-grep schrieb:

    schon probiert den kopierprozess mit iotop anzuaschauen bzw., die priorität zu ändern?

    Das sieht etwas merkwürdig aus, die Spalte "IO" zeigt nicht nur für nemo einen Wert nahe 100%, sondern auch für viele andere Prozesse wie kswapd0, kworker/u16:2, X, firefox, pulseaudio und andere. "Disk Read" und "Disk Write" ist aber eigentlich bei allen außer nemo bei 0 bytes/Sekunde.

    Ich habe ionice auf "Idle" für den IO-aktiven nemo-Prozess gestellt, auch das hat nichts verändert.

    geeky schrieb:

    Was gibt denn "hdparm {laufwerk}" aus? Was sagt die CPU-Last beim Kopieren?

    Das ist die Ausgabe von hdparm:
    `/dev/sda:

    multcount = 1 (on)

    IO_support = 1 (32-bit)

    readonly = 0 (off)

    readahead = 256 (on)

    geometry = 7783/255/63, sectors = 125045424, start = 0`

    Die CPU-Last ist laut htop beim Kopieren für alle Kerne bei etwa 10%, was kaum höher als normal ist. Man sieht derweil sehr viele Prozesse, deren Status die meiste Zeit auf "D" steht.

    Obiges bezieht sich alles auf das Notebook.



  • Vielleicht als Nachtrag, weil es mir immer wieder auffällt:

    wenn ich z.B. eine Datei der Größe 300-400 MB auf die externe Platte verschiebe, dann ist der Vorgang derart schnell abgeschlossen, dass Nemo meist nichtmal ein Fortschrittsfenster anzeigt. Allerdings kann auf die externe Platte nur mit 30 MB/s geschrieben werden, entsprechend schreibt der Kernel die Daten noch bis zu einer halben Minute lange raus. In dieser Zeit ist das System aber wieder reaktiv (laut iotop ist nur kworker/16:2 beschäftigt).

    Übernimmt sich da der Kernel vielleicht etwas mit dem Puffern?



  • Ich habe nun den 3.14 mainline kernel installiert - die Probleme sind nun weg. Macht gleich viel mehr Spaß, wenn man nicht ständig unfreiwillige Kaffeeepausen einlegen muss.

    Vielleicht bringt ein Kernel-Update auch auf dem PC Besserung.


Anmelden zum Antworten