Como encontrar o limite máximo de execução paralela?

4

Existe algum limite para a execução paralela? se sim, como descobrir o limite máximo?

Estou criando um script que cria uma sequência de scripts concatenados por '&' e usa o eval para executá-los todos juntos. Algo parecido com isto:

scriptBuilder="ksh -x script1.sh & ksh -x script2.sh & ksh -x script3.sh";
eval $scriptBuilder;

Só quero ter certeza de qual é o limite máximo para a execução paralela no servidor.

    
por Sas 12.11.2014 / 21:57

1 resposta

5

O comando ulimit -u mostra o número máximo de processos que você pode iniciar. No entanto, na verdade, não inicie muitos processos em segundo plano: sua máquina gastaria tempo alternando entre os processos e não conseguiria realizar o trabalho real.

Para tarefas associadas à CPU, execute quantas tarefas houver núcleos em sua máquina ou mais. Isso ocorre se houver RAM suficiente para acomodar todos esses processos e seu cache de arquivos: se os processos paralelos estiverem competindo pela largura de banda de E / S para continuar recarregando seus dados, eles serão executados mais lentamente do que se fossem executados sequencialmente. Você pode encontrar o número de núcleos em /proc/cpuinfo .

A maneira fácil de executar uma tarefa por processador é usar o paralelo GNU .

Se as tarefas forem ligadas a E / S e usarem os mesmos periféricos (por exemplo, acessam arquivos no mesmo disco), geralmente é melhor executá-los sequencialmente.

    
por 13.11.2014 / 02:59