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
, edebug
. 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
, edebug
. O valornotset
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