Cara Menerapkan Beban CPU Tinggi dan Stress Test di Linux Menggunakan Alat 'Stress-ng'


Sebagai Administrator Sistem, Anda mungkin ingin memeriksa dan memantau status sistem Linux Anda ketika sistem tersebut berada dalam tekanan beban tinggi. Ini bisa menjadi cara yang baik bagi Administrator Sistem dan Pemrogram untuk:

  1. menyempurnakan aktivitas pada suatu sistem.
  2. memantau antarmuka kernel sistem operasi.
  3. uji komponen perangkat keras Linux Anda seperti CPU, memori, perangkat disk, dan banyak lainnya untuk mengamati kinerjanya di bawah tekanan.
  4. mengukur beban konsumsi daya yang berbeda pada suatu sistem.

Dalam panduan ini, kita akan melihat dua alat penting, stress dan stress-ng untuk pengujian stres pada sistem Linux Anda.

1. stres – adalah alat penghasil beban kerja yang dirancang agar sistem Anda terkena ukuran tekanan CPU, memori, I/O, dan disk yang dapat dikonfigurasi.

2. stress-ng – adalah versi terbaru dari alat penghasil beban kerja stres yang menguji sistem Anda untuk fitur-fitur berikut:

  1. komputasi CPU
  2. mendorong stres
  3. Sinkronisasi I/O
  4. Pipa I/O
  5. penghancuran cache
  6. stres VM
  7. penekanan soket
  8. pembuatan dan penghentian proses
  9. properti pengalihan konteks

Meskipun alat ini bagus untuk memeriksa sistem Anda, alat ini tidak boleh digunakan oleh pengguna sistem mana pun.

Penting: Sangat disarankan agar Anda menggunakan alat ini dengan hak pengguna root, karena alat ini dapat membebani mesin Linux Anda dengan sangat cepat dan untuk menghindari kesalahan sistem tertentu pada perangkat keras yang dirancang dengan buruk .

Cara Memasang Alat 'stres' di Linux

Untuk menginstal alat stres di Debian dan turunannya seperti Ubuntu dan Mint, jalankan perintah berikut.

sudo apt-get install stress

Untuk menginstal stress pada RHEL/CentOS dan Fedora Linux, Anda perlu mengaktifkan repositori EPEL lalu mengetikkan perintah yum berikut untuk menginstal sama:

yum install stress

Sintaks umum untuk menggunakan stres adalah:

sudo stress option argument

Beberapa opsi yang dapat Anda gunakan dengan stres.

  1. Untuk memunculkan N pekerja yang berputar pada fungsi sqrt(), gunakan opsi –cpu N sebagai berikut.
  2. Untuk memunculkan N pekerja yang berputar pada fungsi sync(), gunakan opsi –io N sebagai berikut.
  3. Untuk memunculkan N pekerja yang berputar pada fungsi malloc()/free(), gunakan opsi –vm N.
  4. Untuk mengalokasikan memori per pekerja vm, gunakan opsi –vm-bytes N.
  5. Daripada mengosongkan dan mengalokasikan ulang sumber daya memori, Anda dapat mengatur ulang memori dengan menggunakan opsi –vm-keep.
  6. Setel mode tidur ke N detik sebelum mengosongkan memori dengan menggunakan opsi –vm-hang N.
  7. Untuk menelurkan N pekerja yang berputar pada fungsi write()/unlink(), gunakan opsi –hdd N.
  8. Anda dapat menyetel batas waktu setelah N detik dengan menggunakan opsi –batas waktu N.
  9. Tetapkan faktor tunggu N mikrodetik sebelum pekerjaan dimulai dengan menggunakan opsi –backoff N sebagai berikut.
  10. Untuk menampilkan informasi lebih detail saat menjalankan stres, gunakan opsi -v.
  11. Gunakan –help untuk melihat bantuan dalam menggunakan stres atau melihat halaman manual.

Bagaimana cara menggunakan stres pada sistem Linux?

1. Untuk memeriksa efek perintah setiap kali Anda menjalankannya, pertama-tama jalankan perintah uptime dan catat rata-rata bebannya.

Selanjutnya, jalankan perintah stress untuk memunculkan 8 pekerja yang berputar di sqrt() dengan waktu tunggu 20 detik. Setelah menjalankan stress, jalankan kembali perintah uptime dan bandingkan rata-rata beban.


tecmint@tecmint ~ $ uptime
tecmint@tecmint ~ $ sudo stress --cpu  8 --timeout 20
tecmint@tecmint ~ $ uptime
Contoh Keluaran
tecmint@tecmint ~ $ uptime    
 17:20:00 up  7:51,  2 users,  load average: 1.91, 2.16, 1.93     [<-- Watch Load Average]
tecmint@tecmint ~ $ sudo stress --cpu 8 --timeout 20
stress: info: [17246] dispatching hogs: 8 cpu, 0 io, 0 vm, 0 hdd
stress: info: [17246] successful run completed in 21s
tecmint@tecmint ~ $ uptime
 17:20:24 up  7:51,  2 users,  load average: 5.14, 2.88, 2.17     [<-- Watch Load Average]

2. Untuk memunculkan 8 pekerja yang berputar di sqrt() dengan waktu tunggu 30 detik, yang menampilkan informasi detail tentang operasi tersebut, jalankan perintah ini:

tecmint@tecmint ~ $ uptime
tecmint@tecmint ~ $ sudo stress --cpu 8 -v --timeout 30s
tecmint@tecmint ~ $ uptime
Contoh Keluaran
tecmint@tecmint ~ $ uptime
 17:27:25 up  7:58,  2 users,  load average: 1.40, 1.90, 1.98     [<-- Watch Load Average]
tecmint@tecmint ~ $ sudo stress --cpu 8 -v --timeout 30s
stress: info: [17353] dispatching hogs: 8 cpu, 0 io, 0 vm, 0 hdd
stress: dbug: [17353] using backoff sleep of 24000us
stress: dbug: [17353] setting timeout to 30s
stress: dbug: [17353] --> hogcpu worker 8 [17354] forked
stress: dbug: [17353] using backoff sleep of 21000us
stress: dbug: [17353] setting timeout to 30s
stress: dbug: [17353] --> hogcpu worker 7 [17355] forked
stress: dbug: [17353] using backoff sleep of 18000us
stress: dbug: [17353] setting timeout to 30s
stress: dbug: [17353] --> hogcpu worker 6 [17356] forked
stress: dbug: [17353] using backoff sleep of 15000us
stress: dbug: [17353] setting timeout to 30s
stress: dbug: [17353] --> hogcpu worker 5 [17357] forked
stress: dbug: [17353] using backoff sleep of 12000us
stress: dbug: [17353] setting timeout to 30s
stress: dbug: [17353] --> hogcpu worker 4 [17358] forked
stress: dbug: [17353] using backoff sleep of 9000us
stress: dbug: [17353] setting timeout to 30s
stress: dbug: [17353] --> hogcpu worker 3 [17359] forked
stress: dbug: [17353] using backoff sleep of 6000us
stress: dbug: [17353] setting timeout to 30s
stress: dbug: [17353] --> hogcpu worker 2 [17360] forked
stress: dbug: [17353] using backoff sleep of 3000us
stress: dbug: [17353] setting timeout to 30s
stress: dbug: [17353] --> hogcpu worker 1 [17361] forked
stress: dbug: [17353] tecmint@tecmint ~ $ uptime
 17:27:59 up  7:59,  2 users,  load average: 5.41, 2.82, 2.28     [<-- Watch Load Average]

3. Untuk mengeluarkan satu pekerja dari fungsi malloc() dan free() dengan waktu tunggu 60 detik, jalankan perintah berikut.

tecmint@tecmint ~ $ uptime
tecmint@tecmint ~ $ sudo stress --vm 1 --timeout 60s 
tecmint@tecmint ~ $ uptime
Contoh Keluaran
tecmint@tecmint ~ $ uptime
 17:34:07 up  8:05,  2 users,  load average: 1.54, 2.04, 2.11     [<-- Watch Load Average]
tecmint@tecmint ~ $ sudo stress --vm 1 --timeout 60s 
stress: info: [17420] dispatching hogs: 0 cpu, 0 io, 1 vm, 0 hdd
stress: info: [17420] successful run completed in 60s
tecmint@tecmint ~ $ uptime
 17:35:20 up  8:06,  2 users,  load average: 2.45, 2.24, 2.17     [<-- Watch Load Average]

4. Untuk melakukan spwan 4 pekerja pada sqrt(), 2 pekerja spwaning pada sync(), 2 pekerja pada malloc()/free(), dengan waktu habis 20 detik dan mengalokasikan memori sebesar 256MB per pekerja vm, jalankan perintah di bawah ini.

tecmint@tecmint ~ $ uptime
tecmint@tecmint ~ $ sudo stress --cpu 4 --io 3 --vm 2 --vm-bytes 256M --timeout 20s 
tecmint@tecmint ~ $ uptime
Contoh Keluaran
tecmint@tecmint ~ $ uptime
 17:40:33 up  8:12,  2 users,  load average: 1.68, 1.84, 2.02     [<-- Watch Load Average]
tecmint@tecmint ~ $ sudo stress --cpu 4 --io 3 --vm 2 --vm-bytes 256M --timeout 20s
stress: info: [17501] dispatching hogs: 4 cpu, 3 io, 2 vm, 0 hdd
stress: info: [17501] successful run completed in 20s
tecmint@tecmint ~ $ uptime
 17:40:58 up  8:12,  2 users,  load average: 4.63, 2.54, 2.24     [<-- Watch Load Average]