É possível influenciar a maneira como as CPUs são enumeradas no Linux?

31

Eu tenho um HP DL380 G7 com 2 CPUs incompatíveis. Um é um processador quad core com núcleos mais rápidos e um é um processador de 6 núcleos com núcleos mais lentos.

Nesta caixa, eu executo um aplicativo que, por motivos de licenciamento, só usa CPU0-CPU3.

Para mim, seria desejável que os núcleos mais rápidos na CPU quad core fossem enumerados em CPU0-CPU3 no sistema operacional, dando-me um bônus de desempenho para a) usando núcleos com clock mais rápido eb) mantendo todos os threads na mesma CPU física.

Existe uma maneira de fazer isso acontecer, seja no BIOS, ou em um arquivo de configuração ou opção de inicialização no Linux?

Os modelos específicos de CPU são:

CPU Intel (R) Xeon (R) E5649 @ 2.53GHz (núcleo hexadecimal)

CPU Intel (R) Xeon (R) E5640 @ 2.67GHz (quad core)

    
por paulos 08.08.2014 / 13:44

1 resposta

27

Wut?!?

Isso é louco , sabe? Não é suportado e provavelmente não é bom para o seu hardware. Você deve estar usando processadores com especificação igual no seu servidor.

Suponho que você simplesmente execute sua aplicação em um cgroup ou escudo (ou via taskset ) que contém apenas os núcleos da CPU que você deseja usar. Você também pode fixar o acesso à memória a essa CPU com numactl . Mas, na verdade, por que você não removeria completamente a CPU mais lenta ou pagaria o que é necessário para colocar o sistema na especificação?

Talvez a coisa mais óbvia, se seu aplicativo é codificado para usar CPU0-CPU3, seja trocar fisicamente os soquetes ... mas, na verdade, basta rodar com uma CPU aqui.

Se você está se referindo ao hardware do ProLiant DL380 G7, o seu CPU "mais rápido" é provavelmente um processador Nehalem série 5500, com o CPU hex-core mais lento sendo um Westmere. Você já fez algum teste? Quais CPUs específicas estão instaladas?

Editar:

Ok, esses são pelo menos CPUs da mesma geração / revisão. Mas ainda é uma má ideia ... A diferença na especificação da CPU nem é tão grande (versus algo como uma Intel X5690 a 3.47GHz).

    
por 08.08.2014 / 13:50