Назад | Перейти на главную страницу

Значение Read Ahead автоматически обновляется при загрузке

Версия ОС: CentOS Linux, выпуск 7.2.1511 (Core)

В моем файле 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 имеет следующее содержимое:

кошка 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 --report

дает другое значение:

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. Отключите значение readahead в tuned.conf.
  2. Выполните эти команды, чтобы перезагрузить файл tuned.conf:

    # tuned-adm profile
    # tuned-adm active virtual-guest
    

После этого значения загрузятся из файла /etc/rc.d/rc.local.

Это результат 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.