추가 패키지를 설치할 필요가 없으며, 오래된 쉘에서 단독으로 수행 할 수 있습니다.
이 원 라이너는 4 개의 코어 1 을 100 %로 로드합니다 .
for i in 1 2 3 4; do while : ; do : ; done & done
작동 방식은 매우 간단하며 4 개의 무한 루프를 시작합니다. 그들 각각은 널 명령 ( :
)을 반복합니다 . 각 루프는 CPU 코어를 100 %로로드 할 수 있습니다.
당신이 사용하는 경우 bash
, ksh93
다른 쉘 범위를 지원하는 (즉,하지 dash
또는 그 이상 ksh
)이 아닌 휴대용 구문을 사용할 수 있습니다 :
for i in {1..4}; do ...
4
와 다른 경우로드하려는 CPU 수로 교체하십시오 4
.
이러한 루프 중 하나를 시작할 때 백그라운드 작업이 이미 실행 중이 아니라고 가정하면 해당 명령으로로드 생성을 중지 할 수 있습니다.
for i in 1 2 3 4; do kill %$i; done
@의 underscore_d의 의견을 응답, 여기에 많은 부하를 중지 간단하고도 타임 아웃 (. 기본 60초)를 지정 할 수 향상된 버전입니다 Control- C너무 모든 가출 루프를 죽일 것이다. 이 쉘 함수는 적어도 bash
and 아래에서 작동합니다 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
)
}
1 코어 당 둘 이상의 스레드를 지원하는 CPU (하이퍼 스레딩)를 사용하면 OS가 모든 가상 CPU에로드를 전달합니다. 이 경우로드 동작은 구현에 따라 다릅니다 (각 스레드는 100 % 사용 중이라고보고 될 수 있음). .
cat
동시에 여러 인스턴스를 실행할 수 있습니까?