预读值在启动时自动更新

预读值在启动时自动更新

操作系统版本: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

  1. 在 tuned.conf 中禁用预读值。
  2. 运行以下命令重新加载 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.

相关内容