Como executar um programa com apenas um núcleo de CPU?

25

Estou tentando executar vários scripts relacionados a um servidor de jogos no Terminator. O único problema é quando eu faço isso, o Terminator detecta todos os meus núcleos de CPU e os atrasos do PC. Existe alguma maneira de iniciá-lo, mas acho que só tenho 1 núcleo de CPU?

    
por user245115 16.06.2014 / 00:17

2 respostas

38

Não é terminator que está fazendo o "espalhamento" em toda a CPU de um determinado processo. O próprio Linux (o kernel) está fazendo isso. Uma tarefa (processo) está agendada como disponível para ser executada em todas as CPUs por padrão; se usar threads, pode usar mais de uma CPU por vez.

Para restringir um processo a uma CPU específica, use o comando taskset .

taskset --cpu-list 1,2 my_command 

força o comando para rodar apenas com CPUs # 1 ou # 2.

Para saber mais, digite man taskset ou procure por "afinidade com CPU do Linux" (primeiro clique em aqui ).

    
por Rmano 16.06.2014 / 00:38
5

Embora outra resposta já tenha dado a resposta literal, eu exploraria a possibilidade de que isso não está sendo feito da maneira correta. Em vez disso, você deve executar um script que não deseja desacelerar o computador (como scripts não interativos) usando o comando nice .

Para fazer isso, basta prefixar o comando que você deseja executar com bom comportamento, por exemplo: %código% Isso fará com que o programa seja de-priorizado abaixo de outras tarefas e não irá desacelerar sua máquina. Eu costumo usar essa técnica ao fazer uma compilação longa que, de outra forma, deixaria meu PC lento, isso tem a vantagem de permitir que o programa use todos os núcleos quando a máquina não estiver ocupada, mas parará rapidamente quando usar algo mais.

    
por Vality 16.06.2014 / 15:08

Tags