Делаем stripe_cache_size постоянным
Я сделал
echo 8192 > /sys/block/md0/md/stripe_cache_size
улучшить мою производительность RAID, и это очень помогло.
Но я до сих пор не могу понять, как сделать его постоянным.
Я пытался установить его в /etc/rc.local - другие команды выполняются, но в других местах он был перезаписан на 256... Есть подсказки?
8 ответов
Добавить правило udev, например, /etc/udev/rules.d/60-md-stripe-cache.rules:
SUBSYSTEM=="block", KERNEL=="md*", ACTION=="change", TEST=="md/stripe_cache_size", ATTR{md/stripe_cache_size}="8192"
Я на самом деле не пробовал это, так что это может быть не на 100% правильно (может быть, некоторые опечатки), но это должно быть близко. Проверьте man udev чтобы понять больше.
Вы также можете выполнить следующие команды впоследствии, чтобы немедленно применить новое правило:
udevadm trigger
udevadm control --reload-rules
Просто чтобы расширить на последний пост; скрипт внизу работает на меня. Просто поменяйте свои данные между "<...>". Наслаждайтесь!
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
#################NOTE######################
## You are limited by CPU and memory too #
## <Your Name> <Date of Modification> #
## stripe cache size and read-ahead #
###########################################
echo 16384 > /sys/block/<Your RAID5 or 6 Volume>/md/stripe_cache_size
blockdev --setra 16384 /dev/<Your RAID5 or 6 Volume>
exit 0
Я также пытаюсь понять это. Я положил свой в rc.local и не повезло. Я запускаю его вручную после входа в систему. Я полагаю, что вы могли бы написать скрипт, чтобы справиться с этим, и поместить его в свои "Приложения для запуска", но это совсем не поможет, если вы не вошли в gnome.
Поможет ли пакет sysfsutils решить вашу проблему?
ОРИГИНАЛЬНЫЙ ОТВЕТ:
Я не могу понять, как прокомментировать ваш вопрос; Думаю, я отредактирую этот ответ, когда узнаю больше о вашей проблеме.
Можете ли вы опубликовать (или вставить, если он длинный) вывод
grep -R md0 /etc/init.d
У меня нет для вас реального ответа, но, возможно, вы могли бы попытаться создать простой стартовый скрипт запуска. Создайте файл в / etc / init с расширением.conf. В файле положить:
start on started tty1
exec echo 8192 > /sys/block/md0/md/stripe_cache_size
Я думаю, что это должно выполнить команду примерно во время запуска терминала, что, вероятно, примерно в то же время, когда вы запускаете команду.
Всего в темноте, так как у меня нет настройки RAID 5 для тестирования: Возможно, добавьте строку с
chmod -w /sys/block/md0/md/stripe_cache_size
в rc.local, чтобы удалить права на запись после того, как он установлен. Может быть, это остановит его от изменения в другом месте?
Присоединять
echo 8192 > /sys/block/mdX/md/stripe_cache_size
в /etc/rc.local,
Эта страница предполагает, что размер полосы (или ширина) должен был быть установлен при настройке fs. Может быть, тюнифы могли бы помочь здесь?