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 1 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

Big Data

JSON e BSON no MongoDB: para iniciantes

Dando continuidade na série de MongoDB, nesse post farei uma Introdução ao formato “Javascript Object Notation” (JSON), ao BSON e aos primeiros passos com o MongoDB. Compartilhe este post: Twitter

Infraestrutura

Terraform #parte2 – Alterando sua infraestrutura de forma incremental

Vimos no post anterior uma introdução ao Terraform e como criar de forma prática e simples uma máquina virtual na cloud da Google – GCP, porém não vimos como realizar

Desenvolvimento

Instalação do Cuda 9 em distribuições Linux baseadas no Ubuntu

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