Saya ingin membuat hampir 100% beban pada mesin Linux. Ini sistem quad core dan saya ingin semua core berjalan dengan kecepatan penuh. Idealnya, beban CPU akan bertahan dalam jumlah waktu yang ditentukan dan kemudian berhenti. Saya berharap ada beberapa trik di bash. Saya sedang memikirkan semacam loop tak terbatas.
281
Jawaban:
Anda juga bisa melakukannya
Untuk menjalankan lebih banyak dari mereka untuk memuat lebih banyak core, cobalah untuk memotongnya:
Ulangi perintah di kurung keriting sebanyak jumlah utas yang ingin Anda hasilkan (di sini 4 utas). Hit enter sederhana akan menghentikannya (pastikan tidak ada dd lain yang berjalan pada pengguna ini atau Anda membunuhnya juga).
sumber
/dev/zero
dan menulis ke/dev/null
bukan generator beban yang sangat baik - Anda harus menjalankan banyak dari mereka untuk menghasilkan beban yang signifikan. Lebih baik melakukan sesuatu sepertidd if=/dev/urandom | bzip2 -9 >> /dev/null
./dev/urandom
membutuhkan upaya yang jauh lebih besar untuk menghasilkan output, danbzip2
akan mengeluarkan banyak upaya untuk mengompresnya, sehingga penggunaan CPU secara keseluruhan jauh lebih tinggi daripada "mengisi blok dengan nol, dan kemudian membuangnya".jobs -p | xargs kill
untuk hanya membunuh proses yang telah Anda buat.Saya menggunakan stres untuk hal-hal semacam ini, Anda bisa mengatakan berapa banyak core yang akan keluar maksimal .. ini memungkinkan untuk menekankan memori dan disk juga.
Contoh untuk menekankan 2 core selama 60 detik
stress --cpu 2 --timeout 60
sumber
sudo yum install stress
EPEL
repo untuk CentOSwget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
brew
install stress
pada OS X. Juga karena alasan tertentu saya harus menentukan 8 core pada quad-core MBPrsudo apt-get install stress
pada sistem berbasis debian, untuk kelengkapan. Gunakan ini untuk menguji mod pendingin pada Intel i7 NUC Kit .Saya pikir ini lebih sederhana. Buka Terminal dan ketik berikut ini dan tekan Enter.
Untuk sepenuhnya menggunakan CPU modern, satu baris tidak cukup, Anda mungkin perlu mengulangi perintah untuk menghabiskan semua daya CPU.
Untuk mengakhiri semua ini, cukup cantumkan
Gagasan ini awalnya ditemukan di sini , meskipun ditujukan untuk pengguna Mac, tetapi ini harus bekerja untuk * nix juga.
sumber
yes
perintah (dengan asumsi sistem idle).Meskipun saya terlambat ke pesta, posting ini adalah salah satu hasil teratas dalam pencarian google "menghasilkan beban di linux".
Hasilnya ditandai sebagai solusi yang dapat digunakan untuk menghasilkan beban sistem, saya lebih suka menggunakan
sha1sum /dev/zero
untuk memaksakan beban pada cpu-core.Idenya adalah untuk menghitung jumlah hash dari datastream yang tak terbatas (mis. / Dev / nol, / dev / urandom, ...) proses ini akan mencoba untuk memaksimalkan cpu-core sampai proses dibatalkan. Untuk menghasilkan beban untuk lebih banyak core, beberapa perintah dapat disalurkan secara bersamaan.
misalnya. menghasilkan beban 2 inti:
sha1sum /dev/zero | sha1sum /dev/zero
sumber
Satu inti (tidak meminta proses eksternal):
Dua core:
Yang terakhir hanya membuat kedua milikku pergi ke ~ 50% meskipun ...
Yang ini akan membuat keduanya menjadi 100%:
sumber
renice 19 -p $$
. Ini masih akan memaksimalkan CPU, tetapi tidak akan mempengaruhi proses lainnya.Untuk memuat 3 core selama 5 detik:
Ini menghasilkan beban kernel yang tinggi dari banyak panggilan sistem write ().
Jika Anda lebih suka memuat sebagian besar penggunalandpu cpu:
Jika Anda hanya ingin memuat berlanjut hingga Anda menekan Ctrl-C:
sumber
Ini adalah program yang bisa Anda unduh di sini
Instal dengan mudah di sistem Linux Anda
dan meluncurkannya dalam baris perintah sederhana
untuk menekankan semua CPU Anda (namun Anda miliki) dengan masing-masing 40 thread menjalankan
sqrt
komputasi kompleks pada angka yang dihasilkan secara ramdomly.Anda bahkan dapat menentukan batas waktu program
tidak seperti solusi yang diusulkan dengan
dd
perintah, yang pada dasarnya berkaitan denganIO
dan karena itu tidak terlalu membebani sistem Anda karena bekerja dengan data.Program stres benar-benar membebani sistem karena berurusan dengan perhitungan.
sumber
stress
perintah. Seperti jawaban yang mengatakan, Anda bisa menginstalnya melalui yum / apt / etc.Bom fork ini akan menyebabkan kerusakan pada CPU dan kemungkinan akan menyebabkan crash pada komputer Anda.
sumber
Sebuah infinite loop adalah ide yang juga saya miliki. Yang tampak aneh adalah:
(
:
Sama dengantrue
, tidak melakukan apa pun dan keluar dengan nol)Anda dapat memanggilnya dalam subkulit dan berjalan di latar belakang. Melakukan itu
$num_cores
seharusnya sudah cukup. Setelah tidur waktu yang diinginkan Anda bisa membunuh mereka semua, Anda mendapatkan PID denganjobs -p
(petunjuk:xargs
)sumber
Saya akan memecahnya menjadi 2 skrip:
infinite_loop.bash:
cpu_spike.bash:
sumber
sumber
sumber
Saya telah menggunakan
bc
( kalkulator biner ), meminta mereka untuk PI dengan banyak desimal.dengan NUMCPU (di Linux):
Metode ini kuat tetapi tampaknya ramah sistem , karena saya tidak pernah crash sistem menggunakan ini.
sumber
sumber
:-)
Saya pergi melalui Internet untuk menemukan sesuatu seperti itu dan menemukan skrip cpu hammer yang sangat berguna ini.
sumber
NUM_PROC=${1:-10}
.Menggunakan contoh yang disebutkan di sini, tetapi juga bantuan dari IRC, saya mengembangkan skrip pengujian stres CPU saya sendiri. Ia menggunakan subkulit per utas dan teknik loop tanpa ujung. Anda juga dapat menentukan jumlah utas dan jumlah waktu secara interaktif.
sumber
Memanfaatkan gagasan di sini, membuat kode yang keluar secara otomatis setelah durasi yang ditentukan, tidak harus mematikan proses -
sumber
Ini berguna bagi saya:
dan tidak menggunakan apa pun kecuali bash.
sumber
Untuk meningkatkan jawaban dimba dan memberikan sesuatu yang lebih pluggable (karena saya membutuhkan sesuatu yang serupa). Saya telah menulis yang berikut ini menggunakan konsep load-up dd: D
Ini akan memeriksa inti saat ini, dan membuat banyak utas dd. Mulai dan Akhiri beban inti dengan Enter
sumber
Saya menggabungkan beberapa jawaban dan menambahkan cara untuk mengukur tekanan pada semua CPU yang tersedia:
sumber
Dimba
dd if=/dev/zero of=/dev/null
sudah pasti benar, tetapi juga patut disebutkan adalah memverifikasi maxing cpu untuk penggunaan 100%. Anda dapat melakukannya denganIni meminta output ps dari rata-rata 1 menit penggunaan cpu oleh setiap proses, lalu menjumlahkannya dengan awk. Walaupun rata-rata 1 menit, ps cukup pintar untuk mengetahui apakah suatu proses hanya sekitar beberapa detik dan menyesuaikan jendela waktu yang sesuai. Dengan demikian Anda dapat menggunakan perintah ini untuk segera melihat hasilnya.
sumber
untuk menambah beban atau mengonsumsi CPU 100%
maka Anda dapat melihat penggunaan CPU dengan mengetik perintah
untuk melepaskan beban
sumber
Cukup tempelkan bocah nakal ini ke SSH atau konsol server mana pun yang menjalankan linux.
Anda dapat mematikan proses secara manual, tetapi saya baru saja mematikan server setelah saya selesai, lebih cepat.Sunting: Saya telah memperbarui skrip ini untuk sekarang memiliki fitur pengatur waktu sehingga tidak perlu mematikan proses.
sumber