2.5. Tuned e ktune

O Tuned é um daemon que monitora o uso de componentes de sistema e ajusta dinamicamente as configurações de sistema baseadas na informação de monitoramento. O ajuste dinâmico significa a forma que diversos componentes de sistema são usados de forma diferentes durante o tempo ativo para qualquer sistema. Por exemplo, o hard drive é usado de forma pesada durante a inicialização e login, mas é raramente usado mais tarde quando um usuário provavelmente estiver trabalhando com aplicativos como o OpenOffice ou clientes de email. Como forma semelhante, os dispositivos da CPU e rede são usados de forma diferentes em momentos diferentes. O Tuned monitora a atividade deste componentes e reage à mudanças em suas formas de uso.
Como exemplo prático, considere uma estação de trabalho de um escritório comum. Na maior parte do tempo, a interface de rede Ethernet estará inativa. Somente alguns emails serão recebidos ou enviados ou algumas páginas da Web podem ser carregadas. Para estes tipos de cargas, a interface de rede não precisa rodar em velocidade total o tempo todo, como é por padrão. O Tuned possui um plugin de monitoramento e ajuste para dispositivos de rede que podem detectar baixa atividade e depois diminuir automaticamente a velocidade da interface, geralmente resultando em menos uso de energia. Se a atividade na interface aumentar drasticamente por um longo período de tempo, por exemplo porque uma imagem de DVD está sendo baixada ou um email recebido com anexos grandes, o tuned irá detectar isto e ajustar a velocidade de interface para o máximo, para oferecer melhor desempenho enquanto o nível de atividade está tão alto. Este princípio é usado para os outros plugins para a CPU e discos rígidos também.
Dispositivos de rede não são configurados para se comportarem desta maneira por padrão, pois a mudança de velocidade pode levar um tempo para ser efetivado e portanto impacta a experiência do usuário diretamente e visivelmente. Considerações semelhantes se aplicam à CPU e plugins de ajuste de hard drive. Quando um hard drive for girado para baixo, pode levar alguns segundos para que volte para cima o que resulta na falta observada de resposta do sistema durante o período. As consequências da latência para o plugin da CPU é a menor possível, mas ainda é ao menos mensurável, embora quase não notável por um usuário.
Junto com o tuned agora também oferecemos o ktune. Ktune foi introduzido no Red Hat Enterprise Linux 5.3 como uma framework e serviço para otimizar o desempenho de uma máquina para casos de uso específicos. Desde então, o ktune tem sido aprimorado até o ponto que nós agora o usamos como parte estática de nossa framework de ajuste geral. É usado principalmente em perfis diferentes pré-definidos descritos em Seção 2.5.2, “Tuned-adm”.
Instalar o pacote tuned e seus scripts associados systemtap com o comando:
yum install tuned
Instalando o pacote tuned você também instala um arquivo de configuração de amostra em /etc/tuned.conf e ativa o perfil de padrão.
Iniciar tuned executando o:
service tuned start
Para iniciar tuned todas as vezes que a máquina inicializa, execute:
chkconfig tuned on
O próprio Tuned possui opções adicionais que você pode usar quando rodar automaticamente. As opções disponíveis são:
-d, --daemon
iniciar tuned como um daemon ao invés de permanente.
-c, --conffile
use o arquivo de configuração com o nome e caminho especificado, por exemplo, --conffile=/etc/tuned2.conf. O padrão é /etc/tuned.conf.
-D, --debug
use o nível mais alto de loggin

2.5.1. O arquivo tuned.conf

O arquivo tuned.conf contém configurações do tuned. Por padrão, está localizado em /etc/tuned.conf, mas você pode especificar um nome diferente e local iniciando o tuned com a opção --conffile.
O arquivo config deve sermpre conter uma seção [main] que define os parâmetros gerais para tuned. O arquivo então contém uma seção para cada plugin.
A seção [main] contém as seguintes opções:
interval
o intervalo no qual o tuned deve monitorar e ajustar o sistema, em segundos. O valor padrão é 10.
verbose
especifica se o resultado deve ser verbosidade. O valor padrão é False.
logging
especifica a prioridade mínima a ser autenticada. Em order decrescente, valores aceitáveis são: critical, error, warning, info, e debug. O valor padrão é info.
logging_disable
especifica prioridade máxima de mensagens a serem autenticadas; qualquer mensagem com esta prioridade ou menor, não será autenticada. Em ordem decrescente, os valores aceitáveis são: critical, error, warning, info, e debug. O valor notset desabilita esta opção.
Cada plugin possui sua própria seção, especificada com o nome do plugin nos colchetes; por exemplo: [CPUTuning]. Cada plugin possui suas próprias opções, mas o seguinte se aplica à todos os plugins:
enabled
especifica se o plugin está ativao ou não. O valor padrão é True.
verbose
especifica se o resultado deve ser verbosidade. Se não for ajustado para este plugin, o valor é herdado de [main].
logging
especifica a prioridade mínima de mensagens a serem autenticadas. Se não for ajustado para este plugin, o valor é herdado de [main].
Um arquivo de configuração de amostra segue:
[main]
interval=10
pidfile=/var/run/tuned.pid
logging=info
logging_disable=notset

# Disk monitoring section

[DiskMonitor]
enabled=True
logging=debug

# Disk tuning section

[DiskTuning]
enabled=True
hdparm=False
alpm=False
logging=debug

# Net monitoring section

[NetMonitor]
enabled=True
logging=debug

# Net tuning section

[NetTuning]
enabled=True
logging=debug

# CPU monitoring section

[CPUMonitor]
# Enabled or disable the plugin. Default is True. Any other value
# disables it.
enabled=True

# CPU tuning section

[CPUTuning]
# Enabled or disable the plugin. Default is True. Any other value
# disables it.
enabled=True