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!
About author
Você pode gostar também
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
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
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