Делаем 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. Может быть, тюнифы могли бы помочь здесь?

Другие вопросы по тегам