Você pode baixar e instalar o utilitário "stress" ... Ele permite gerar carga de CPU, memória, disco e E / S a partir da linha de comando.
Homepage: link
FAQ: link
Eu gostaria de testar a carga falsa no servidor, estou procurando algum utilitário de linha de comando de burn-in ou benchmark que geraria carga de CPU no sistema.
Eu gostaria de poder gravar somente CPU (sem carga de disco rígido, rede e co) e que eu seria capaz de definir o período em que a carga será executada. Significa que eu quero algo que possa ser executado: carga da CPU por 10min no sistema.
Alguma idéia?
Eu prefiro ops de ponto flutuante:
for i in 'seq 64'; do perl -e '$z=time()+(10*60); while (time()<$z) { $j++; $sqrt = sqrt($j) for (1..9999); }' & done
Esteja ciente do seu número de CPU: -)
Isso é algo que eu frequentemente quero fazer. Mas eu não tenho uma boa maneira de fazer isso. Acabei de escrever um pequeno script em Perl que irá apenas fazer um loop por quantos segundos eu quiser.
Por exemplo (por 10 minutos):
perl -e '$z=time()+(10*60); while (time()<$z) { $j++; $j *= 1.1 for (1..9999); }'
Claro que se você tiver processadores n você pode querer adicionar um laço bash para criar muitos processos:
#!/bin/bash
# e.g. for 4 processors
for i in 1 2 3 4; do
perl -e .... &
done
wait
Eu recomendo usar o stress-ng, ele tem muito mais recursos do que o estresse e pode exercitar muito mais do sistema operacional.
Aqui está uma forma de shell puro (pelo menos, bash
& ksh
) que já publiquei como resposta a uma pergunta semelhante aqui
# Usage: lc [number_of_cpus_to_load [number_of_seconds] ]
lc() {
(
pids=""
cpus=${1:-1}
seconds=${2:-60}
echo loading $cpus CPUs for $seconds seconds
trap 'for p in $pids; do kill $p; done' 0
for ((i=0;i<cpus;i++)); do while : ; do : ; done & pids="$pids $!"; done
sleep $seconds
)
}
Tags linux benchmark load-testing