Ich habe einige SSDs auf /dev/sda1
und /dev/sdb1
auf einem SLES 11 SP2-Server installiert und konnte die Vorausleseeinstellung wie folgt anpassen blockdev --setra
:
sudo blockdev --setra 4096 /dev/sda
sudo blockdev --setra 4096 /dev/sdb
sudo blockdev --getra /dev/sda
4096
sudo blockdev --getra /dev/sdb
4096
Wie kann ich diese Einstellung beim Booten beibehalten? Gibt es eine entsprechende Einstellung in sysctl.conf
, oder muss ich mich mit einem RC-Skript zufrieden geben, um dies zu erreichen?
block-device
ssd
sles
Banjer
quelle
quelle
Antworten:
Ich würde vorschlagen, dass Sie udev verwenden, um Parameter für die SSD-Festplatten festzulegen. Auf diese Weise können Sie einen bestimmten Warteschlangenplaner konfigurieren, der besser für SSD usw. geeignet ist. Sie können auch Parameter basierend auf vielen Parametern nur auf einige der Geräte anwenden.
Sie können die spezifischen Attribute erhalten, die für die Übereinstimmung mit Ihren Geräten erforderlich sind (z. B. das Festplattenmodell und der Hersteller), indem Sie Folgendes ausführen:
und überprüfen Sie alle ATTR-Paare für Ihr Blockgerät.
Ein weiterer Vorteil ist die Möglichkeit, die Parameter für steckbare Festplatten (z. B. in Gehäusen oder Hotswap-Einschüben) festzulegen. Diese Einstellung wird auf alle neuen Geräte angewendet, sofern die Geräteparameter übereinstimmen.
Hier ist ein Beispiel, um einen bestimmten Scheduler für Intel-SSDs anzuwenden, Ihren gewünschten Readahead-Wert (4096 Blöcke = 2048 KB), und auch einen anderen Scheduler für alle anderen SSDs:
Nach dem Speichern der Datei können Sie testen, ob Ihre Regel mit dem Gerät übereinstimmt und was udev mit udevadm macht:
Dies gibt alle Regeln aus, die udev lädt, welche übereinstimmt, welche nicht und welche Entscheidungen udev treffen wird, wenn das Gerät angeschlossen ist.
Hoffe das hilft.
quelle
OCZ vertex 3
's, aber ich denke nicht, dass Ihre vorgeschlagenen Regeln spezifisch für Intel sind, außer für das Modellfeld, richtig?udevadm info
, um die für Ihre Hardware spezifischen Parameter zu finden.Beachten Sie, dass das Vorauslesen mindestens über
/sys
(/sys/class/block/sda/queue/read_ahead_kb
)blockdev
undhdparm
(hdparm -a
) eingestellt werden kann.hdparm
on Debian und seine Derivate werden mit einem ausgelieferthdparm.conf
, das die Attribute pro Gerät angibt, die beim Booten und beim Hot-Plug (überudev
Regeln) festgelegt werden sollen.So können Sie haben:
(Es ist besser, IDs zu verwenden, als
sda
die, die sich von einem Start zum nächsten ändern können.)quelle
hdparm
auf SLES 11, kann es aber nicht findenhdparm.conf
. Google scheint mir mitzuteilen, dass ein RC-Skript erforderlich ist, damit diehdparm
Einstellungen bestehen bleiben, zumindest unter SuSE.hdparm
. Ich habe die Antwort aktualisiert./sys
Pfads, obwohl die @ zorlem-udev
Regel für die Startkonfiguration sehr hilfreich ist.Es ist nichts Entsprechendes
sysctl
drin, also/etc/rc.local
ist yep ein Weg oder ähnlich. Und Vorsicht, - mir ist persönlich aufgefallen, dass unter Ubuntu - diese Änderungen sogar noch einmal nach dem Booten vorgenommen werden, sodass es möglicherweise sogar Sinn macht,crontab
sie beizubehalten.quelle