Número limite externo de núcleos de CPU usados

6

Eu preciso limitar externamente um processo / sessão a um determinado número de núcleos.

Existem outras possibilidades além da afinidade com CPU (não gosto da necessidade de especificar os núcleos reais) e cgroups (difíceis de integrar em nosso projeto)?

    
por Let_Me_Be 31.05.2013 / 10:44

3 respostas

1

Nós fomos com os cgroups no final, já que realmente não parece haver nenhuma outra abordagem que possa conseguir isso.

Os cgroups permitem a utilização da CPU limitando-se através do agendador do kernel, usando cpu.cfs_period_us e cpu.cfs_quota_us . Isso evita a especificação explícita dos núcleos da CPU.

    
por 27.08.2015 / 15:36
4

Bem, para o bit de afinidade de CPU, isso geralmente é destinado a resolver um conjunto diferente de problemas que pertencem às CPUs físicas que estão executando o programa. É por isso que você precisa especificar de qual CPU específica você está falando com a afinidade da CPU.

Do fato de você não se importar com qual CPU é usada, estou supondo que você está apenas tentando obter fatias de tempo reformuladas. cgroups realmente realizam o que você está querendo lá e são o mecanismo para ajustar o tempo da CPU, independentemente da execução da (s) CPU (s).

A diferença determinante basicamente se resume a isso: ou você se importa em quais núcleos físicos seu processo é executado ou não. Se você não tiver nenhum requisito de desempenho que exija que os processos sejam executados em determinadas CPUs (alguns caches da CPU permanecem aquecidos, assegure que os processos relacionados não sejam executados em nós NUMA externos, que interrupções específicas são tratadas por um conjunto específico de CPUs, etc) então tudo o que você provavelmente está tentando controlar a alocação de tempo da CPU. Nesse caso, é um erro pensar em "núcleos de CPU" quando o que você realmente quer dizer é "Tempo de CPU".

Quais partes dos cgroups você está tendo dificuldade em integrar? Posso atualizar minha resposta assim que souber o problema específico que você está enfrentando.

    
por 31.05.2013 / 20:41
0

Pode ser muita sobrecarga para você, mas se eu precisar testar algo com menos núcleos do que a minha máquina tem disponível, configuro uma VM do VirtualBox e especifique o número de CPUs na configuração.

    
por 31.05.2013 / 10:48