J'ai des SSD montés sur /dev/sda1
et /dev/sdb1
sur un serveur SLES 11 SP2, et j'ai pu modifier le paramètre de lecture anticipée avec 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
Comment conserver ce paramètre au démarrage? Plus précisément, y a-t-il un paramètre correspondant sysctl.conf
ou devrais-je me contenter d'un script rc pour que cela se produise?
block-device
ssd
sles
Banjer
la source
la source
Réponses:
Je vous suggère d'utiliser udev pour définir les paramètres des disques SSD. De cette façon, vous pouvez configurer un planificateur de file d'attente spécifique qui est plus approprié pour le SSD, etc. Vous pouvez également appliquer des paramètres uniquement à certains périphériques, en fonction d'un grand nombre de paramètres.
Vous pouvez obtenir les attributs spécifiques nécessaires pour correspondre à vos périphériques (par exemple, le modèle de disque et le fabricant) en exécutant:
et vérifier toutes les paires ATTR pour votre périphérique bloc.
Un autre avantage est la possibilité de définir les paramètres des disques enfichables (par exemple, dans des boîtiers ou des baies de Hotswap) et le réglage sera appliqué à tous les nouveaux périphériques, à condition que les paramètres du périphérique correspondent.
Voici un exemple pour appliquer un planificateur spécifique pour les SSD Intel, la valeur de lecture anticipée souhaitée (4096 blocs = 2048 ko), et également appliquer un planificateur différent pour tous les autres SSD:
Après avoir enregistré le fichier, vous pouvez tester si votre règle correspondra à l'appareil et ce que fera udev en utilisant udevadm:
Cela affiche toutes les règles que udev charge, ce qui correspond, ce qui ne fonctionne pas et quelles décisions udev prendra lorsque le périphérique est branché.
J'espère que cela t'aides.
la source
OCZ vertex 3
des, mais je ne pense pas que vos règles suggérées soient spécifiques à Intel, à l'exception du champ du modèle, n'est-ce pas?udevadm info
pour trouver les paramètres spécifiques à votre matériel.Notez que la lecture anticipée peut être définie au moins via
/sys
(/sys/class/block/sda/queue/read_ahead_kb
)blockdev
ethdparm
(hdparm -a
).hdparm
sur Debian et ses dérivés est livré avec unhdparm.conf
qui spécifie les attributs par périphérique à définir au démarrage et lors du branchement à chaud (via desudev
règles).Vous pouvez donc avoir:
(mieux vaut utiliser des identifiants que ceux
sda
qui peuvent changer d'un démarrage à l'autre).la source
hdparm
sur SLES 11, mais ne semble pas localiserhdparm.conf
. Google semble me dire qu'un script rc est nécessaire pour que tous leshdparm
paramètres persistent, au moins sur SuSE.hdparm
conséquence. J'ai mis à jour la réponse./sys
chemin, bien que laudev
règle @zorlem soit plutôt agréable pour la configuration de démarrage.Il n'y a rien qui corresponde
sysctl
, alors oui,/etc/rc.local
c'est un moyen, ou similaire. Et méfiez-vous, - j'ai personnellement remarqué que sur Ubuntu, - ces changements dérivent encore plus, même en étant définis une fois après le démarrage, donc, il pourrait même être judicieuxcrontab
de les conserver.la source