CPU Hot-Plug em Servidores Linux

CPU Hot-Plug em Servidores 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 Status do Caça Talentos Melhor Idade 2019
Próxima Terraform #parte3 - Criando dependências entre recursos

About author

Vinicius Felix
Vinicius Felix 3 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

MongoDB: como gerenciar dados com noSQL

Dando continuidade na série de MongoDB, após construir um Cluster de MongoDB usando o passo a passo do desse artigo, vamos agora manipular os dados dentro desse banco, ou como

Infraestrutura

PostgreSQL e MySQL – Os bancos de dados mais utilizados no mercado

Atualmente, existem dois bancos de dados que estão entre os mais usados no mercado. São eles: o PostgreSQL e o MySQL. Saiba mais sobre cada um deles, lendo o post!

Infraestrutura

Realizando videoconferências no Rocket.Chat

Introdução Rocket.Chat Rocket.Chat, é uma plataforma de chat Open Source lançada no final de 2014. Após a aplicação estar pronta seu código não foi prontamente aberto. A abertura do código