uso multi-core, inclinado para o core 2?

2

Eu tenho 4 núcleos no meu sistema. O Core 2 está mostrando frequentemente 100% de uso no htop. Enquanto isso, o Core 1,3,4 mostra algo em torno de 5% a maior parte do tempo.

Isso é normal? Existe uma maneira de distribuir melhor a carga do Core 2 para os outros núcleos e isso é desejável até?

    
por flickerfly 27.10.2014 / 17:06

1 resposta

2

Sim, isso pode ser normal. Depende de quanto gerenciamento o sistema operacional faz. As duas grandes ferramentas para impactar isso são

  • taskset que pode direcionar qual CPU um processo pode usar
  • definindo a afinidade de IRQ dos seus dispositivos pci

A afinidade de IRQ é fácil de corrigir. Faça algum IO, observe / proc / interrompe e se você vir MSI-foo na mesma CPU, distribua-os. Você geralmente deseja atender IRQs nos "núcleos reais", já que são os mais rápidos. Uma vez que você tenha descoberto, escreva um script para confirmar o início do sistema e pronto.

Os processos são penosos porque podem migrar entre CPUs. Para "fazer certo" você realmente precisa configurar cgroups para os processos em questão. Ou ... você faz o caminho mais lento e faz um script wrapper para o programa X que chama o taskset ... _X.

Meça seu antes e depois de um desempenho com um benchmark como fio ou todos os seus ajustes são para nada. Se você não consegue medir suas alterações, não sabe o que elas valem.

Por exemplo, eu tenho uma CPU de 24, 2 num sistema de nós aqui que tem um dispositivo de armazenamento que irá criar uma interrupção MSI para cada CPU ... e então ligá-los todos à CPU 0 :-p. Distribuindo a afinidade de IRQ entre os primeiros 12 núcleos quadruplicou a taxa de transferência de IO registrada por fio. Mas este sistema realmente tem muita largura de banda, o desktop típico não.

Boa sorte. O trabalho de performance é divertido, ... e difícil:)

    
por ppetraki 27.10.2014 / 18:00