使stripe_cache_size永久化

我做到了

echo 8192 > /sys/block/md0/md/stripe_cache_size 

提高我的RAID性能,它确实帮助了很多。

但我仍然无法弄清楚如何使它成为永久性的。

我试图在/etc/rc.local中设置它 – 其他命令被执行,但它被覆盖到其他地方的256 …任何提示?

添加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 # ##   # ## stripe cache size and read-ahead # ########################################### echo 16384 > /sys/block//md/stripe_cache_size blockdev --setra 16384 /dev/ exit 0 

我也试图解决这个问题。 我把我放在rc.local,没有运气。 我在登录后手动启动它。我想你可以编写一个脚本来处理这个并把它放在你的“启动应用程序”中,但如果你没有登录到gnome那就没有用。

sysfsutils包会帮助解决您的问题吗?

原始答案:

我无法弄清楚如何评论你的问题; 我想我会编辑这个答案,因为我会更多地了解你的问题。

你可以发布(或者,如果很长的话,也可以使用pastebin)输出

 grep -R md0 /etc/init.d 

我没有真正的答案,但也许您可以尝试创建一个简单的upstart启动脚本。 使用.conf扩展名在/ etc / init中创建一个文件。 在文件中:

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时应设置条带大小(或宽度)。 也许tunefs可以帮到这里?