У меня есть некоторые SSD - накопители установлены на /dev/sda1
и /dev/sdb1
на сервере SP2 SLES 11, и я был в состоянии настроить упреждающее чтение с установкой 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
Как мне сохранить этот параметр при загрузке? В частности, есть ли соответствующая настройка sysctl.conf
или мне придется согласиться на сценарий rc, чтобы это произошло?
block-device
ssd
sles
Banjer
источник
источник
Ответы:
Я бы предложил вам использовать udev для настройки параметров дисков SSD. Таким образом, вы можете настроить определенный планировщик очереди, который больше подходит для SSD и т. Д. Вы также можете применять параметры только к некоторым устройствам, основываясь на большом количестве параметров.
Вы можете получить конкретные атрибуты, необходимые для соответствия вашим устройствам (например, модель диска и производителя), выполнив:
и проверка всех пар ATTR для вашего блочного устройства.
Еще одним преимуществом является возможность устанавливать параметры для сменных дисков (например, в корпусах или отсеках для горячей замены), и эта настройка будет применяться ко всем новым устройствам при условии, что параметры устройства совпадают.
Ниже приведен пример применения определенного планировщика для твердотельных накопителей Intel, желаемого значения времени чтения (4096 блоков = 2048 КБ), а также применения другого планировщика для всех других твердотельных накопителей:
После сохранения файла вы можете проверить, соответствует ли ваше правило устройству и что udev будет делать с помощью udevadm:
Это печатает все правила, которые udev загружает, что соответствует, что нет, и какие решения будет принимать udev, когда устройство подключено.
Надеюсь это поможет.
источник
OCZ vertex 3
, но я не думаю, что предложенные вами правила относятся к Intel, кроме поля модели, верно?udevadm info
чтобы найти параметры, специфичные для вашего оборудования.Обратите внимание, что упреждающее чтение может быть установлено по крайней мере с помощью
/sys
(/sys/class/block/sda/queue/read_ahead_kb
)blockdev
иhdparm
(hdparm -a
).hdparm
в Debian и его производных поставляется сhdparm.conf
атрибутом для каждого устройства, устанавливаемым при загрузке и при «горячей» замене (черезudev
правила).Таким образом, вы можете иметь:
(лучше использовать идентификаторы, чем те,
sda
которые могут меняться от одной загрузки к другой).источник
hdparm
на SLES 11, но не могу найтиhdparm.conf
. Google, кажется, говорит мне, чтоhdparm
для сохранения любых настроек необходим скрипт rc , по крайней мере, на SuSE.hdparm
соответственно. Я обновил ответ./sys
пути, хотяudev
правило @zorlem прекрасно подходит для настройки загрузки.Там нет ничего соответствующего
sysctl
, так что, да,/etc/rc.local
это путь, или похожий. И будьте осторожны, - я лично заметил, что в Ubuntu, - эти изменения дрейфуют дальше, даже если они устанавливаются один раз после загрузки, так что, возможно, имеет смысл использовать ихcrontab
для сохранения.источник