0

[Performance] Performance tuning com o tuned

6 Flares 6 Flares ×

Ajustar um sistema de acordo com as suas necessidades não é uma tarefa fácil, requer conhecimento profundo dos parâmetros de sistemas e de como aplica-los de forma inteligente e segura, assim como uma monitoração continua, analisar dados, métricas, para sim ter um plano de ação.

A partir do RHEL6 tornou disponível um daemon chamado tuned.

Tuned é um serviço do sistema que permite selecionar de forma dinâmica ou não um tuning profile para diferentes workloads.

Os tuning profiles incluem configurações do sysctl, IO scheduler, gerenciamento de energia, transparent hugespages e qualquer scripts que você queria executar. Para cada subsistema, um plugins de monitoramento coleta dados periodicamente. Esses dados são então usados para ajustar o sistema de acordo com sua necessidade. Por exemplo, definir para modo de economia de energia para momentos de ociosidade ou… “força total” para momentos de alta utilização. Se adaptando ao seu uso atual.

Para começar a usar o tuned, precisamos instalar;

# yum install tuned

Para listar os tuning profiles, usamos o comando tuned-adm list. Para este artigo meu sistema operacional é o CentOS, ou seja, poderá variar o tipo e números de profiles disponibilizados na instalação do tuned. Em Rhel7, por exemplo, temos a disponibilização do tuning profile SAS.

# tuned-adm list
Available profiles:
- server-powersave
- virtual-host
- spindown-disk
- throughput-performance
- enterprise-storage
- desktop-powersave
- default
- virtual-guest
- laptop-battery-powersave
- laptop-ac-powersave
- latency-performance
Current active profile: off

Para consultar o status do daemons usamos o tuned-adm active.

# tuned-adm active
Current active profile: 
Service tuned: enabled, sttoped
Service ktune: enabled, sttoped

Como podemos observar, ainda não temos um profile ativo e os serviços tuned e ktune estão parados. Para definir um profile usamos o comando tuned-adm profile.

# tuned-adm profile virtual-guest
Switching to profile 'virtual-guest'
Applying deadline elevator: dm-0 dm-1 sda                  [  OK  ]
Applying ktune sysctl settings:
/etc/ktune.d/tunedadm.conf:                                [  OK  ]
Calling '/etc/ktune.d/tunedadm.sh start':                  [  OK  ]
Applying sysctl settings from /etc/sysctl.conf
Starting tuned:                                            [  OK  ]

Novamente, execute o comando tuned-adm active, para verificar o status.

# tuned-adm active
Current active profile: virtual-guest
Service tuned: enabled, running
Service ktune: enabled, running

Em qualquer momento podemos desabilitar completamente os deamons e qualquer ajuste aplicado, apenas executando o comando tuned-adm off.

Criando um tuning profile

Se você quiser, poderá criar o seu próprio profile. Todos os tuning profiles recebem seu próprio sub-diretório em  /etc/tune-profiles, e criar um novo é tão fácil como copiar um existente.

# cd /etc/tune-profiles/
# ls -lhtr
total 60K
-rw-r--r-- 1 root root  10K Mar 22 01:38 functions
drwxr-xr-x 2 root root 4,0K Abr 12 08:15 default
drwxr-xr-x 2 root root 4,0K Abr 12 08:15 desktop-powersave
drwxr-xr-x 2 root root 4,0K Abr 12 08:15 enterprise-storage
drwxr-xr-x 2 root root 4,0K Abr 12 08:15 laptop-ac-powersave
drwxr-xr-x 2 root root 4,0K Abr 12 08:15 laptop-battery-powersave
drwxr-xr-x 2 root root 4,0K Abr 12 08:15 latency-performance
drwxr-xr-x 2 root root 4,0K Abr 12 08:15 server-powersave
drwxr-xr-x 2 root root 4,0K Abr 12 08:15 spindown-disk
drwxr-xr-x 2 root root 4,0K Abr 12 08:15 throughput-performance
drwxr-xr-x 2 root root 4,0K Abr 12 08:15 virtual-host
drwxr-xr-x 2 root root 4,0K Abr 12 09:09 virtual-guest
-rw-r--r-- 1 root root   13 Abr 13 06:22 active-profile
# ls -lhtr virtual-guest/
total 16K
-rw-r--r-- 1 root root  191 Mar 22 01:38 tuned.conf
-rw-r--r-- 1 root root 1,8K Mar 22 01:38 sysctl.ktune
-rw-r--r-- 1 root root 1,3K Mar 22 01:38 ktune.sysconfig
-rwxr-xr-x 1 root root  294 Mar 22 01:38 ktune.sh

Dentro deste “novo diretório criado”, você deve encontrar 3 arquivos de configurações e 1 shell script.

  • tuned.conf: Neste arquivo você pode ativar/desativar os três principais plugings (disco, rede e CPU). Quando ativado, esses plugins de monitorarão o seu sistema e alterarão para o modo de economia de energia para seus repetitivos subsistemas sempre que esse subsistema tiver uma carga baixa.
  • ktune.sysconfig: Neste arquivo você pode ativar/desativar o uso de ktune e configurar um IO schedule para cada devices. O IO scheduler são os algoritmos de enfileiramento usados para reordenação e solicitações enviadas para os devices.
  • sysctl.ktune: Aqui você pode alterar as configurações de sysctl. Tenha em mente que quando um perfil é ativado as configurações de /etc/sysctl.conf também serão aplicadas depois que este arquivo for analisado.
  • ktune.sh: Neste script você deve ter duas funções: start() e stop(). A função start será chamada quando o profile for ativado (também no boot), e a função stop será chamada quando for desativado. O script Ktune.sh é fonte do arquivo /etc/tune-profiles/functions, o que lhe fornece um monte de funções de utilitário para gerenciamento de energia, ajuste de disco, ativando e desativando transparent hugespages. Uma das funções mais importantes neste arquivo é process, que normalmente é chamada como process ${@} no final do ktune.sh. A função process possui toda a lógica por default para manipular; o início, a parada e a reinicialização do profile.

Referencia:

https://access.redhat.com/solutions/5427

http://people.redhat.com/mskinner/rhug/q2.2016/RH_Perf_June2016.pdf

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Performance_Tuning_Guide/chap-Red_Hat_Enterprise_Linux-Performance_Tuning_Guide-Tuned.html

https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2011861

https://access.redhat.com/solutions/5427

 

:wq!

Jonatas Lopes

Sempre aprendendo coisas novas e passando o conhecimento adiante !!!

Dúvidas? Deixe seu comentário ou entre em contato.