Maximize o poder do seu servidor com Hot-Plug no Linux

Maximize o poder do seu servidor com Hot-Plug no Linux

Dentro do Linux é possível realizar o hot-plug de CPU, mas o que é “hot-plug“?

Hot-plug é um mecanismo de “troca de hardware à quente”, ou seja, enquanto o servidor ainda está ligado, não sendo necessário que o mesmo seja desligado para que ele reconheça e habilite o novo hardware que está sendo adicionado. A vantagem de se ter um servidor que suporta esse tipo recurso, é poder realizar manutenções e alterações físicas no hardware com o servidor ainda ligado, sendo assim, não há downtime nas aplicações que rodam nele.

Lembrando que para servidores físicos é necessário que a BIOS tenha suporte ao hot-plug e também possua mais de um slot para processadores.

Agora que entendemos o que é o hot-plug em si, podemos habilitar e desabilitar os núcleos logicamente.

 

Hands-On!

A partir do momento em que adicionamos um processador, o diretório “/sys/devices/system/cpu/” será populado com os núcleos deste processador. A população do diretório também acontece quando é aumentado a quantidade de vCPUS em um servidor virtualizado.

root@ubuntu:~# ls -l /sys/devices/system/cpu/
total 0
drwxr-xr-x 6 root root 0 Jan 21 19:18 cpu0
drwxr-xr-x 6 root root 0 Jan 21 19:18 cpu1
drwxr-xr-x 6 root root 0 Jan 21 19:18 cpu2
drwxr-xr-x 6 root root 0 Jan 22 18:53 cpu3
drwxr-xr-x 5 root root 0 Jan 21 19:18 cpu4
drwxr-xr-x 5 root root 0 Jan 21 19:18 cpu5
drwxr-xr-x 5 root root 0 Jan 21 19:18 cpu6
drwxr-xr-x 5 root root 0 Jan 21 19:19 cpu7
drwxr-xr-x 2 root root 0 Jan 21 19:18 cpufreq
drwxr-xr-x 2 root root 0 Jan 21 19:18 cpuidle
drwxr-xr-x 2 root root 0 Jan 21 19:18 hotplug
-r--r--r-- 1 root root 4096 Jan 21 19:18 isolated
-r--r--r-- 1 root root 4096 Jan 21 19:18 kernel_max
-r--r--r-- 1 root root 4096 Jan 21 19:18 modalias
-r--r--r-- 1 root root 4096 Jan 21 19:18 offline
-r--r--r-- 1 root root 4096 Jan 21 19:18 online
-r--r--r-- 1 root root 4096 Jan 21 19:18 possible
drwxr-xr-x 2 root root 0 Jan 21 19:18 power
-r--r--r-- 1 root root 4096 Jan 21 19:18 present
drwxr-xr-x 2 root root 0 Jan 21 19:18 smt
-rw-r--r-- 1 root root 4096 Jan 21 19:18 uevent
drwxr-xr-x 2 root root 0 Jan 21 19:18 vulnerabilities
root@ubuntu:~#

Através do retorno da listagem do diretório, podemos notar que existem alguns arquivos destacados, sendo eles:

  • cpuX – Dentro destes diretórios há arquivos que podemos utilizar na manipulação do núcleo do processador.
  • offline – Neste arquivo há os núcleos que estão logicamente desativados.
  • online – Dentro deste arquivo há os núcleos que estão habilitados no servidor.

E dentro do diretório referente ao novo núcleo, existe um arquivo chamado “online”. Através desse arquivo, podemos gerenciar o status de tal núcleo no servidor, sendo assim, podemos habilitá-lo ou desabilitá-lo.

Por exemplo, para verificar o status do núcleo através do arquivo, podemos exibir o conteúdo do arquivo “online” dentro do diretório “cpu7”:

root@ubuntu:~# cat /sys/devices/system/cpu/cpu7/online
0
root@ubuntu:~#

Como conteúdo deste arquivo, podemos ter duas informações:

  • 0 – Significa que este núcleo está desabilitado;
  • 1 – Significa que este núcleo está habilitado.

Para habilitar, simplesmente podemos redirecionar o numeral “1” para dentro deste arquivo.

root@ubuntu:~# echo 1 > /sys/devices/system/cpu/cpu7/online
root@ubuntu:~#

Caso queira desabilitar o núcleo, é só redirecionar o numeral “0” para o mesmo arquivo.

root@ubuntu:~# echo 0 > /sys/devices/system/cpu/cpu7/online
root@ubuntu:~#

 

Conclusão

Neste post vimos que é possível aumentar o poder de processamento em nosso servidor sem ter que desligá-lo para isso, o que no dia a dia se torna um recurso muito importante.

Até a próxima!

 

CURSOSCONSULTORIA    CONTATO

Anterior Caça Talentos Melhor Idade: 20 candidatos selecionados para terceira fase do projeto
Próxima Terraform: Aprenda a gerenciar dependências entre recursos na GCP

About author

Vinicius Felix
Vinicius Felix 5 posts

Vinicius Felix da Silva, atua como Analista de Infraestrutura, é entusiasta em tecnologias de software livre e é formado em Redes de Computadores pelo SENAC. Possui a certificação LPI 1.

View all posts by this author →

Você pode gostar também

Infraestrutura TI

Desvendando o Mundo da Computação: Processos, Programas e Comunicação

No mundo da computação, cada programa e processo desempenha um papel único na criação e execução de tarefas. No entanto, a diferença entre esses dois termos pode não ser tão

Desenvolvimento

Acelere seus algoritmos de Machine Learning com CUDA no Linux

Se você deseja trabalhar com algoritmos de Machine Learning, provavelmente precisará usar processamento paralelo para acelerar os resultados dos seus algoritmos. Muitos frameworks como por exemplo, o TensorFlow, já possuem

Containers

Guia para atualizar o AWS Load Balancer Controller após migração do Kubernetes 1.21 para 1.22

Após atualizar o cluster do Kubernetes da versão 1.21 para a 1.22, você pode precisar atualizar o AWS Load Balancer Controller (anteriormente conhecido como ALB Ingress Controller) para garantir que