使 stripe_cache_size 永久化

使 stripe_cache_size 永久化

我做到了

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

来提高我的 RAID 性能,它确实有很大帮助。

但我还是不知道如何使它永久存在。

我试图在 /etc/rc.local 中设置它 - 其他命令被执行,但它在其他地方被覆盖为 256...有什么提示吗?

答案1

添加 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

答案2

只是对上一篇文章进行扩展;下面的脚本对我有用。只需在“<...>”之间交换您的详细信息即可。尽情享受吧!


#!/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

答案3

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

答案4

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

start on started tty1

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

我的想法是,应该在终端启动时运行该命令,这可能与您运行该命令的时间大致相同。

相关内容