Posso dizer ao meu computador Linux que use apenas Núcleos Físicos?

0

Eu tenho uma máquina Linux com 2 processadores X5650 de 2,7 GHz e eu hospedo servidores de jogos para minha comunidade de jogos, e aí vem o meu problema: Os servidores de jogos precisam do melhor desempenho de 1 núcleo, mas eu tenho 24 vCORES e 12 Núcleos Físicos. É possível "dizer" o uso do kernel 12 núcleos físicos? e então 1 núcleo físico usará 2VCORES?

Obrigado Alex.

    
por Alex Ulmer 28.02.2018 / 03:44

1 resposta

2

Você pode usar taskset para distribuir manualmente os processos pelos núcleos, definindo suas afinidades de encadeamento. Para descobrir quais segmentos pertencem a quais núcleos e processadores, verifique /proc/cpuinfo como mostrado abaixo:

$ grep -E '^processor|^physical id|^core id' /proc/cpuinfo |sed 's/^processor/\nprocessor/'

processor       : 0
physical id     : 0
core id         : 0

processor       : 1
physical id     : 0
core id         : 1

processor       : 2
physical id     : 0
core id         : 0

processor       : 3
physical id     : 0
core id         : 1
$ _

processor é o número do encadeamento, physical id é o número da CPU física e core id é o número do núcleo. A saída acima vem de uma máquina com uma única CPU com dois núcleos e quatro threads.

taskset pode ser usado como taskset --all-tasks -p <hex_mask> <pid> para modificar a afinidade de todos os encadeamentos de um processo existente. O hex_mask é uma máscara de bits, em que cada 1 bit representa um encadeamento da CPU atribuído e a numeração começa a partir da direita. Por exemplo, 0xa para a máscara significa binário 0b1010 que indica uma afinidade do encadeamento # 1 e encadeamento # 3 para o processo. O PID, espero, é autoexplicativo.

    
por 28.02.2018 / 04:14