Input/Output-Verhalten bei HPE Microserver Gen10

Aus Knowledgebase
Zur Navigation springen Zur Suche springen

Der HPE Microserver Gen 10[1] ist mit einem Massenspeichercontroller Marvell 88SE9230 ausgerüstet, der sich nach einer Analyse etwas merkwürdig im I/O-Verhalten gezeigt hat.

Hinweis: Es geht hier nicht um den Betrieb des Chipsatzes im RAID-Modus, sondern mit einzelnen Disks.[2]

Problembeschreibung

Mit Festplatten[3] aber auch SSDs[4] konnte ich unter Linux[5] stellenweise Ruckler und Hakler beobachten, die hart an der Grenze zu es nervt waren, ich aber in Anbetracht der doch eher schwachbrüstigen CPU als gegeben hinnahm. Allerdings trat das Problem beim Vorgängersystem, einem HP Microserver N54L mit ansonsten gleicher Software nicht auf.

Für mich war das insbesondere spürbar…

  • beim Editieren von Textdateien in vim.
    • Beim Wechsel von Einfüge- nach Kommandomodus ließ sich der Cursor nicht mehr instant bewegen, sondern brauchte eine knappe halbe Sekunde Bedenkzeit.
    • Beim Scrollen durch längere Texte ruckelte und stockte die Darstellung immer mal wieder.
    • Speichern einer wenige KiB großen Datei hat eine knappe halbe Sekunde Verzögerung bis zum Prompt nach sich gezogen.
  • beim Aufrufen von eher kleinen Programmen wie cat, grep, sed, u. Ä. bei denen ebenfalls nach dem Beenden der Funktion der Shell-Prompt im Vergleich zum Vorgängersystem dann doch einen Ticken zu lange brauchte bis er wieder erschien.

Analyse

Dank eines guten Freundes, der dies auf dem gegebenen System ebenfalls beobachten konnte, ließ sich das Problem eingrenzen. Das temporäre Verzeichnis /tmp ist auf meinem System eine RAM-Disk. Forciert man das Anlegen der vim-Recoverydateien dort drin, war das Ruckeln im Editor komplett verschwunden. Es konnte sich somit nur um ein I/O-Problem handeln.

Meine Recherchen haben ergeben, dass der Marvell-Chipsatz sich als AHCI am System meldet, und das Kernelmodul ahci.ko noch zwei Parameter beherrscht:

  • marvell_enable soll dazu da sein, manche Marvell-Chipsätze in den SATA-Mode zu zwingen.
  • mobile_lpm_policy[6] zur Konfiguration des Standard-Stromsparmodus, der in /sys/class/scsi_host/hostn/link_power_management_policy eingesehen werden kann.

Da die Ports standardmäßig im Sysfs auf max_performance standen, habe ich diesen Parameter nicht weiter getestet.

Lösung

Der Test mit marvell_enable=1 verlief positiv. Das Ruckelproblem war damit verschwunden.

echo "options ahci marvell_enable=1" > /etc/modprobe.d/ahci.conf
update-initramfs -u
reboot

Fußnoten

  1. Nicht Gen10+!
  2. Das RAID selbst läuft mit mdraid.
  3. WD Green 2 TB
  4. Samsung 870 QVO 2 TB.
  5. Debian 12, Kernel Version 6.1.0.
  6. Dies soll demnächst in lpm_policy umbenannt werden, weil es nicht nur Notebooks betrifft.