Cara Membatasi Penggunaan Waktu dan Memori Proses di Linux


Skrip timeout adalah program pemantauan sumber daya yang berguna untuk membatasi konsumsi waktu dan memori proses di Linux. Hal ini memungkinkan Anda untuk menjalankan program di bawah kendali, dan menerapkan batas waktu dan memori, menghentikan program jika melanggar parameter ini.

Tidak diperlukan instalasi, cukup jalankan perintah beserta argumennya menggunakan program timeout dan program ini akan memantau memori perintah dan konsumsi waktu, menghentikan proses jika melampaui batas, dan memberi tahu Anda dengan perintah yang telah ditentukan pesan.

Untuk menjalankan skrip ini, Anda harus menginstal Perl 5 di sistem Linux Anda dan sistem file /proc sudah terpasang.

Untuk memeriksa versi Perl yang terinstal di sistem Linux Anda, jalankan perintah berikut.

perl -v

Selanjutnya, kloning repositori timeout ke sistem Anda menggunakan perintah git, lalu pindah ke repositori lokal menggunakan perintah cd dan jalankan seperti perintah Linux biasa.

cd ~/bin
git clone https://github.com/pshved/timeout.git
cd timeout

Sekarang mari kita lihat cara kerja skrip timeout.

Batasan Memori Dasar (Memori Virtual 100M):

Contoh pertama ini menunjukkan cara membatasi penggunaan memori suatu proses hingga 100 juta memori virtual, menggunakan flag -m. Satuan default untuk memori adalah kilobyte.

Di sini, perintah stress-ng menjalankan 4 pemicu memori virtual (VMS) yang digabungkan untuk menggunakan 40% memori yang tersedia selama 10 menit. Jadi setiap penyebab stres menggunakan 10% memori yang tersedia.

./timeout -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m

Mengingat output dari perintah timeout di atas, proses pekerja stress-ng dihentikan setelah 1,16 detik saja. Hal ini karena konsumsi memori gabungan VMS (438660 kilobyte) lebih besar daripada penggunaan memori virtual yang diizinkan untuk stress-ng dan turunannya proses.

Batasan Waktu Dasar Proses:

Untuk mengaktifkan pembatasan waktu proses, gunakan tanda -t seperti yang ditunjukkan.

./timeout -t 4 stress-ng --vm 4 --vm-bytes 40% -t 10m

Dalam contoh di atas, ketika waktu stress-ng CPU+SYS melebihi nilai yang ditentukan yaitu 4, proses pekerja akan dimatikan.

Membatasi Waktu dan Memori Proses

Anda juga dapat membatasi memori dan waktu sekaligus sebagai berikut.

./timeout -t 4 -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m

Timeout juga mendukung beberapa opsi lanjutan seperti --detect-hangups, yang memungkinkan deteksi hangup.

./timeout --detect-hangups -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m

Anda dapat memantau batas memori RSS (ukuran tetap penduduk) menggunakan sakelar --memlimit-rss atau -s .

./timeout -m 100000 -s  stress-ng --vm 4 --vm-bytes 40% -t 10m

Selain itu, untuk mengembalikan kode keluar atau sinyal+128 dari suatu proses, gunakan opsi --confess atau -c seperti yang ditunjukkan.

./timeout -m 100000 -c  stress-ng --vm 4 --vm-bytes 40% -t 10m

Untuk informasi lebih lanjut dan contoh penggunaan, lihat repositori Github timeout: https://github.com/pshved/timeout.

Anda mungkin juga menemukan artikel terkait berikut ini sama bermanfaatnya:

  1. Cara Menemukan 15 Proses Teratas berdasarkan Penggunaan Memori dengan 'atas' dalam Mode Batch
  2. CPUTool – Batasi dan Kontrol Pemanfaatan CPU dari Segala Proses di Linux
  3. Cara Membatasi Penggunaan CPU suatu Proses di Linux dengan Alat CPULimit

Skrip timeout adalah program pemantauan sumber daya sederhana yang pada dasarnya membatasi konsumsi waktu dan memori proses di Linux. Anda dapat memberi kami masukan tentang skrip batas waktu melalui formulir komentar di bawah.