操作系统版本:CentOS Linux 版本 7.2.1511(核心)
我的 rc.local 文件中有以下命令:
/usr/sbin/blockdev --report > /root/test_boot
/usr/sbin/blockdev --setra 256 /dev/vdb
/usr/sbin/blockdev --report >> /root/test_boot
启动后/root/test_boot文件包含以下内容:
猫测试_启动
RO RA SSZ BSZ StartSec Size Device
rw 256 512 4096 0 10737418240 /dev/vda
rw 256 512 4096 2048 8588886016 /dev/vda1
rw 256 512 4096 0 53687091200 /dev/vdb
RO RA SSZ BSZ StartSec Size Device
rw 256 512 4096 0 10737418240 /dev/vda
rw 256 512 4096 2048 8588886016 /dev/vda1
rw 256 512 4096 0 53687091200 /dev/vdb
而命令
blockdev——报告
给出不同的值:
RO RA SSZ BSZ StartSec Size Device
rw 8192 512 4096 0 10737418240 /dev/vda
rw 8192 512 4096 2048 8588886016 /dev/vda1
rw 8192 512 4096 0 53687091200 /dev/vdb
因此,似乎有其他内核程序在启动时覆盖了该值。这个程序可能是什么?我能否在启动过程的最后执行 blockdev --setra 命令?
注意:我也尝试将命令放入 init.d、systemd 和 crontab 中。每次都发生同样的事情。
答案1
- 在 tuned.conf 中禁用预读值。
运行以下命令重新加载 tuned.conf 文件:
# tuned-adm profile # tuned-adm active virtual-guest
此后,这些值将从 /etc/rc.d/rc.local 文件加载。
答案2
cat /etc/rc.local
这是来自 centos 7 服务器的输出。
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.