Saat ini saya sedang dalam proses debug instalasi Cacti dan ingin membuat beban CPU untuk debug grafik penggunaan CPU saya.
Saya mencoba menjalankannya cat /dev/zero > /dev/null
, yang berfungsi dengan baik tetapi hanya menggunakan 1 inti:
Apakah ada metode yang lebih baik untuk menguji / memaksimalkan sumber daya sistem yang sedang dimuat?
Terkait: Bagaimana saya bisa menghasilkan beban CPU yang tinggi pada Windows?
performance
debian
benchmarking
Der Hochstapler
sumber
sumber
cat
secara bersamaan?screen
sesi. Tapi saya lebih suka solusi yang lebih canggih jika memungkinkan.cat /dev/random > /dev/null
. Tebak/dev/zero
juga berfungsi. :-)Jawaban:
Coba
stress
Ini hampir setara dengan Windowsconsume.exe
:sumber
sudo apt-get install stress
sudo yum install stress
sudo pacman -S stress
brew install stress
pada OS XTidak perlu menginstal paket tambahan, shell lama Anda yang baik dapat melakukannya sendiri.
One-liner ini akan memuat empat core 1 Anda pada 100%:
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 tidakdash
atau lebih lamaksh
), Anda dapat menggunakan sintaksis non-portabel ini:Ganti
4
dengan jumlah CPU yang ingin Anda muat jika berbeda4
.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:
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
danksh
.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). .
sumber
&
menyebabkan perintah dijalankan di utas terpisah atau inti terpisah ? Saya bingung.killall bash
- pastikan Anda tidak memiliki skrip penting yang sedang berjalan saat itu.killall bash
. Jawaban diedit untuk menambahkan metode yang lebih aman untuk mengakhiri pembuatan beban.Saya membuat skrip python sederhana yang melakukan hal yang sama. Anda dapat mengontrol jumlah inti cpu yang ingin Anda muat. Hal yang baik tentang ini adalah ia tidak akan mengkonsumsi sumber daya lain selain cpu. (Saya pikir ide mark johnson akan menghabiskan banyak sumber daya I / O, yang tidak diinginkan di sini.)
Jalankan skrip ini dari terminal
$ python temp1.py
. Anda harus membunuh skrip saat selesai.Di sini, adalah output konsumsi cpu saya ketika saya memuat 3 core saya.
sumber
Salah satu cara alternatif adalah
atau (jika nproc ada)
OpenSSL hampir selalu hadir di distro saat ini, jadi tidak perlu paket tambahan.
sumber
Mulai dua
perintah untuk setiap inti di sistem Anda.
Untuk berhenti
atau
sumber
Saya biasanya mengambil suite cpuburn:
Ganti 4 dengan jumlah inti / HT-utas yang Anda miliki atau ingin Anda tekankan.
Catatan: Ini menekankan area chip sebanyak mungkin pada saat yang sama, ini diprogram untuk menghasilkan disipasi daya maksimum. Saya harus menulis posting ini untuk yang kedua kalinya, entah bagaimana mesin saya tidak menyukainya :-(
Anda juga bisa melakukan cpuburn secara berurutan:
Dan ketika Anda ingin menghentikan mereka:
Anda juga bisa menggandakan
burnP6 &
agar sesuai dengan jumlah inti CPU di sistem Anda.sumber
Saya telah mengembangkan stress-ng, alat stress terbaru yang dapat menekankan berbagai aspek dari sistem Linux. Untuk informasi lebih lanjut, lihat http://kernel.ubuntu.com/~cking/stress-ng/
Penggunaannya mirip dengan stres
Instal dengan
sumber
Anda dapat menjalankan perintah itu sebanyak yang Anda inginkan, dan itu akan mengambil inti yang berbeda setiap kali:
sumber
killall cat
harus melakukannya.cat
proses lain yang berjalan (biasanya saya lakukan).https://github.com/GaetanoCarlucci/CPULoadGenerator
solusi yang cukup sederhana dan ilmiah.
Di sini Anda dapat melihat contoh dinamika di mana 50% beban dihasilkan pada inti CPU 0:
Anda dapat menjalankan proses pada core lain secara bersamaan.
sumber
Saya menggabungkan + jlliagre dan + ecabuk.
sumber
Anda dapat gunakan:
Ulangi
dd if=/dev/zero of=/dev/null
untuk core CPU Anda.Tekan tombol apa saja untuk menghentikan tes.
sumber
pxz
adalah implementasi paralel darixz
.pxz -9e /dev/zero --stdout >/dev/null
harus melakukan trik, karena ini cukup cpu intensif.Jika
/dev/zero
tidak cukup cepat (Anda perhatikan bahwapxz
I / O tercekik) dapat Anda lakukanpxz -9e /dev/zero --stdout | pxz -9e --stdout >/dev/null
Versi yang lebih baru
xz
memiliki--threads
opsi yang merupakan penggantipxz
.sumber
Inilah cara saya menggunakan dan tidak perlu menginstal apa pun tambahan.
Misalnya untuk memulai dengan 4 proses,
Anda dapat mengubah jumlah proses dengan opsi "-P" di atas.
sumber
Baris perintah sederhana juga melakukannya:
sumber
while : ; do : ; done
for i in 1 2 3; do while : ; do : ; done & ; done
Saya ingin menambahkan ini ke komentar @ jlliagre, tetapi saya tidak memiliki reputasi yang cukup. Jika Anda akan menggunakan kode ini di beberapa server dan jumlah CPU akan bervariasi, Anda dapat menggunakan perintah berikut:
Ini akan memanfaatkan semua core di server Anda terlepas dari berapa banyak yang Anda miliki. Perintah
nproc
ini adalah bagian dari coreutils sehingga harus di sebagian besar instalasi Linux.sumber