Попробую реанимировать блог,  а то вся активность в последние полгода была исключительно в твиттере :)

Сегодня немного о новом (по сравнению с пятой версией Red Hat Enterprise Linux) демоне tuned. Демон предназначен для динамической оптимизации поведения севера или рабочей станции под различными нагрузками. В первую очередь, вам стоит посмотреть в сторону tuned, если вас интересуют вопросы настройки производительности и/или экономии электроэнергии. С последним вопросом простой пользователь в первую очередь сталкивается при работе с лэптопом от батареи. 

Для начала установим сервис:

[root@rhel6 ~]# yum -y install tuned

Теперь можно активировать один из профилей tuned. В последней версии RHEL 6.3 присутствуют одиннадцать заранее подготовленных профилей для различных ролей. Просмотрим список профилей:

[root@rhel6 ~]# tuned-adm list

Available profiles:

- virtual-host

- server-powersave

- laptop-battery-powersave

- throughput-performance

- latency-performance

- laptop-ac-powersave

- spindown-disk

- desktop-powersave

- default

- virtual-guest

- enterprise-storage

Current active profile: default

Имена профилей “говорящие”, так что вам не составит труда выбрать подходящий. В моем случае, поскольку я работаю с виртуальной машиной, очевидный выбор virtual-guest

[root@rhel6 ~]# tuned-adm profile virtual-guest

Switching to profile ‘virtual-guest’

Применение настроек ktune sysctl:

/etc/ktune.d/tunedadm.conf:                                [  OK  ]

Calling ‘/etc/ktune.d/tunedadm.sh start’:                  [  OK  ]

Applying sysctl settings from /etc/sysctl.conf

Применяется конвейер deadline:dm-0 dm-1 dm-2 dm-3 sda      [  OK  ]

Запускается tuned:                                         [  OK  ]

Если проверить вывод команды chkconfig, то вы увидите два новых включенных сервиса:

[root@rhel6 ~]# chkconfig | grep tune

ktune          0:выкл 1:выкл 2:выкл 3:вкл 4:вкл 5:вкл 6:выкл

tuned          0:выкл 1:выкл 2:выкл 3:вкл 4:вкл 5:вкл 6:выкл

Активизация профиля через tuned-adm автоматически выполняет chkconfig on. Следующая команда отключает оба сервиса:

[root@rhel6 ~]# tuned-adm off

Возврат сохранённых настроек sysctl:                       [  OK  ]

Calling ‘/etc/ktune.d/tunedadm.sh stop’:                   [  OK  ]

Вернуть конвейер cfq:dm-0 dm-1 dm-2 dm-3 sda               [  OK  ]

Останавливается tuned:                                     [  OK  ]

[root@rhel6 ~]# chkconfig | grep tune

Помимо использования готовых профилей, администратор может создать свой. Проще всего это делать на основе существующего.

[root@rhel6 ~]# cp -av /etc/tune-profiles/virtual-guest/ /etc/tune-profiles/my-guest

«/etc/tune-profiles/virtual-guest/» -> «/etc/tune-profiles/my-guest»

«/etc/tune-profiles/virtual-guest/ktune.sh» -> «/etc/tune-profiles/my-guest/ktune.sh»

«/etc/tune-profiles/virtual-guest/ktune.sysconfig» -> «/etc/tune-profiles/my-guest/ktune.sysconfig»

«/etc/tune-profiles/virtual-guest/sysctl.ktune» -> «/etc/tune-profiles/my-guest/sysctl.ktune»

«/etc/tune-profiles/virtual-guest/tuned.conf» -> «/etc/tune-profiles/my-guest/tuned.conf»

Профиль определяется несколькими файлами:

  • tuned.conf - включает и выключает модули мониторинга и настройки для различных подсистем
  • sysctl.ktune - настройки sysctl для ktune.  В документации не говорится, но обратите внимание, что /etc/sysctl.conf всегда имеет приоритет по сравнению с этим файлом.
  • ktune.sysconfig - включает и выключает ktune, а также задает планировщик ввода-вывода. Можете заметить что, например, во всех профилях, предполагающих высокую нагрузку, вместо планировщика по умолчанию cfq используется deadline.
  • ktune.sh - скрипт, который включает или выключает настройки, не описанные в других файлах. Обратите внимание на файл /etc/tune-profiles/functions. В нем содержатся полезные функции-кандидаты на вызов из ktune.sh

Отредактировав один или несколько из этих конфигурационных файлов, вы можете применить свой профиль:

[root@rhel6 ~]# tuned-adm profile my-guest

Возможно,  имеет смысл задать переключение профилей в cron для того, чтобы в нерабочее время менять профиль серверов на более экономичный по питанию вариант.

Что касается динамического мониторинга и изменения параметров, в настоящий момент это поддерживается для ЦП, сетевых карт и дисков. 

Куда смотреть дальше/глубже: