Não é necessário instalar nenhum pacote extra, a sua boa e velha shell é capaz de o fazer sozinha.
Esta linha única irá carregar os seus quatro núcleos1 a 100%:
for i in 1 2 3 4; do while : ; do : ; done & done
Como funciona é bastante simples, inicia quatro loops infinitos. Cada um deles repete a instrução nula (:). Cada laço é capaz de carregar um núcleo de CPU a 100%.
Se utiliza bash, ksh93 e outros shells que suportam gamas, (ou seja, não dash ou mais antigos ksh), pode utilizar esta sintaxe não portátil:
for i in {1..4}; do ...
Substitua 4 pelo número de CPUs que gostaria de carregar se fosse diferente de 4.
Assumindo que não tinha nenhum trabalho de fundo já em execução quando lançou um destes loops, pode parar a geração de carga com esse comando:
for i in 1 2 3 4; do kill %$i; done
Resposta @underscore_d’s comment, aqui está uma versão melhorada que simplifica muito a paragem da carga e que também permite especificar um tempo limite (por defeito 60 segundos.) Um Control-C matará também todos os loops em execução. Esta função shell funciona pelo menos sob bash e ksh.
# 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
)
}
1Nota que com as CPUs suportando mais do que um fio por núcleo (Hyper-threading), o sistema operativo irá enviar a carga para todas as CPUs virtuais. Nesse caso, o comportamento da carga depende da implementação (cada rosca pode ser reportada como 100% ocupada ou não).