답변:
"stress"유틸리티를 다운로드하여 설치할 수 있습니다. 명령 줄에서 CPU, 메모리, 디스크 및 IO로드를 생성 할 수 있습니다.
부동 소수점 연산을 선호합니다.
for i in `seq 64`; do perl -e '$z=time()+(10*60); while (time()<$z) { $j++; $sqrt = sqrt($j) for (1..9999); }' & done
CPU 번호를 알고 있어야합니다 :-)
이것은 내가 자주하고 싶은 일입니다. 그러나 나는 그것을하는 좋은 방법이 없습니다. 원하는만큼 몇 초 동안 반복되는 작은 Perl 스크립트를 작성합니다.
예 : 10 분 동안 :
perl -e '$z=time()+(10*60); while (time()<$z) { $j++; $j *= 1.1 for (1..9999); }'
물론 n 개의 프로세서 가 있다면 bash 루프를 추가하여 많은 프로세스를 생성 할 수 있습니다.
#!/bin/bash
# e.g. for 4 processors
for i in 1 2 3 4; do
perl -e .... &
done
wait
for
루프가 병렬이 아니라 직렬로 실행 되지 않습니까? 그래도 (perl -e '...' &)
쉘에서 분리하면 작업을 수행 할 것이라고 생각합니다.
stress-ng를 사용하는 것이 좋습니다. 스트레스보다 많은 기능이 있으며 운영 체제를 훨씬 더 많이 사용할 수 있습니다.
여기 에 비슷한 질문에 대한 답변으로 이미 게시 한 순수한 쉘 (적어도 bash
& 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
)
}
time
있습니까?