Lompat ke konten Lompat ke sidebar Lompat ke footer

Meningkatkan Batas Maksimum Proses yang Diijinkan di Linux

Baru-baru ini saya mengalami kasus yang bisa dibilang juga merupakan pengalaman baru bagi saja. Saat mencoba login ke server melalui SSH, saya mendapati error dengan pesan "shell request failed on channel 0". Saya coba aktifkan flag debug di perintah ssh dengan command ssh [email protected] -p 22 -vvv Namun tetap saja belum ketauan dimana penyebab errornya.Disini saya masih berpikir bahwa errornya ada di SSH. Saya coba login ke server dengan user root dan berhasil masuk. Saya coba restart service sshd dan mencoba login lagi sebagai regular user ke ssh, errornya masih sama (shell request failed on channel 0).

Karena penasaran, saya coba pindah user dari root ke user dengan perintah

su user

Namun ternyata juga error. Kali ini pesannya adalah "su: failed to execute /bin/bash: Resource temporarily unavailable". Oke, sampai disini saya yakin kalau masalahnya bukan di service ssh.

Selanjutnya, dari user root saya cek jumlah proses yang dijalankan oleh user, dengan perintah

ps -U user | wc -l

Outputnya: 18546

Oke, sekarang kita mulai menemui titik terang. Masalahnya adalah di ulimit yang membatasi jumlah proses selain user root hanyalah 4096 (Setidaknya di CentOS defaultnya seperti itu).

Kita modifikasi file konfigurasi ulimit nya.

sudo nano /etc/security/limits.d/20-nproc.conf

Lalu tambahkan di paling bawah:

user    soft    nproc     50000

Sesuaikan sendiri untuk nama user dan jumlah proses maksimal yang dibutuhkan.

Saya sendiri tidak merekomendasikan value unlimited di user biasa, hal ini untuk menghindari command fork bomb yang mungkin tereksekusi secara tidak sengaja.

Oke, setelah konfigurasi disimpan, sekarang coba lagi login ke ssh menggunakan regular user. Seharusnya sekarang user tersebut sudah bisa masuk ke shell tanpa mengalami error.

Posting Komentar untuk " Meningkatkan Batas Maksimum Proses yang Diijinkan di Linux "