Tidak perlu menginstal paket tambahan, shell lama Anda yang baik dapat melakukannya sendiri.
One-liner ini akan memuat empat core 1 Anda pada 100%:
for i in 1 2 3 4; do while : ; do : ; done & done
Cara kerjanya cukup sederhana, dimulai empat loop tanpa akhir. Masing-masing dari mereka mengulang instruksi nol ( :
). Setiap loop dapat memuat inti CPU pada 100%.
Jika Anda menggunakan bash
, ksh93
dan rentang pendukung shell lainnya (yaitu tidak dash
atau lebih lama ksh
), Anda dapat menggunakan sintaksis non-portabel ini:
for i in {1..4}; do ...
Ganti 4
dengan jumlah CPU yang ingin Anda muat jika berbeda 4
.
Dengan asumsi Anda tidak memiliki pekerjaan latar belakang yang sudah berjalan ketika Anda meluncurkan salah satu dari loop ini, Anda dapat menghentikan pembuatan load dengan perintah itu:
for i in 1 2 3 4; do kill %$i; done
Menjawab komentar @ underscore_d, berikut adalah versi yang disempurnakan yang menyederhanakan banyak penghentian beban dan yang juga memungkinkan menentukan batas waktu (default 60 detik.) A Control- Cakan membunuh semua loop pelarian juga. Fungsi shell ini bekerja setidaknya di bawah bash
dan 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 Perhatikan bahwa dengan CPU yang mendukung lebih dari satu thread per core (Hyper-threading), OS akan mengirimkan beban ke semua CPU virtual. Dalam hal itu, perilaku beban tergantung pada implementasi (setiap utas mungkin dilaporkan 100% sibuk atau tidak). .
cat
secara bersamaan?