Cara Meningkatkan Batas Jumlah File Terbuka di Linux
Di Linux, Anda dapat mengubah jumlah maksimum file yang terbuka. Anda dapat mengubah nomor ini dengan menggunakan perintah ulimit. Ini memberi Anda kemampuan untuk mengontrol sumber daya yang tersedia untuk shell atau proses yang dimulai olehnya.
Baca Juga: Tetapkan Batas Proses yang Berjalan di Linux pada Tingkat Per Pengguna
Dalam tutorial singkat ini kami akan menunjukkan kepada Anda cara memeriksa batas file terbuka dan deskripsi file Anda saat ini, tetapi untuk melakukannya, Anda harus memiliki akses root ke sistem Anda.
Pertama, Mari kita lihat bagaimana kita dapat mengetahui jumlah maksimum deskriptor file yang dibuka di sistem Linux Anda.
Temukan Batas File Terbuka Linux
Nilainya disimpan di:
cat /proc/sys/fs/file-max
818354
Nomor yang akan Anda lihat menunjukkan jumlah file yang dapat dibuka pengguna per sesi login. Hasilnya mungkin berbeda tergantung pada sistem Anda.
Misalnya pada server CentOS milik saya, batasnya ditetapkan ke 818354, sedangkan pada server Ubuntu yang saya jalankan di rumah, batas defaultnya adalah disetel ke 176772.
Jika ingin melihat batasan hard dan soft, Anda dapat menggunakan perintah berikut:
Periksa Batas Keras di Linux
ulimit -Hn
4096
Periksa Batas Lunak di Linux
ulimit -Sn
1024
Untuk melihat nilai keras dan lunak untuk pengguna yang berbeda, Anda cukup mengalihkan pengguna dengan “su” ke pengguna yang batasannya ingin Anda periksa.
Misalnya:
su marin
ulimit -Sn
1024
ulimit -Hn
4096
Cara Memeriksa Batas Deskriptor File Seluruh Sistem di Linux
Jika Anda menjalankan server, beberapa aplikasi Anda mungkin memerlukan batas yang lebih tinggi untuk deskriptor file yang dibuka. Contoh bagusnya adalah layanan MySQL/MariaDB atau server web Apache.
Anda dapat meningkatkan batas file yang dibuka di Linux dengan mengedit direktif kernel fs.file-max
. Untuk tujuan tersebut, Anda dapat menggunakan utilitas sysctl.
Sysctl digunakan untuk mengonfigurasi parameter kernel saat runtime.
Misalnya, untuk meningkatkan batas file terbuka menjadi 500000, Anda dapat menggunakan perintah berikut sebagai root:
sysctl -w fs.file-max=500000
Anda dapat memeriksa nilai saat ini untuk file yang dibuka dengan perintah berikut:
cat /proc/sys/fs/file-max
Dengan perintah di atas perubahan yang Anda lakukan hanya akan tetap aktif hingga reboot berikutnya. Jika Anda ingin menerapkannya secara permanen, Anda harus mengedit file berikut:
vi /etc/sysctl.conf
Tambahkan baris berikut:
fs.file-max=500000
Tentu saja, Anda dapat mengubah nomornya sesuai kebutuhan Anda. Untuk memverifikasi perubahan lagi gunakan:
cat /proc/sys/fs/file-max
Pengguna harus keluar dan masuk lagi agar perubahan diterapkan. Jika Anda ingin segera menerapkan batasan tersebut, Anda dapat menggunakan perintah berikut:
sysctl -p
Tetapkan batas File Terbuka Tingkat Pengguna di Linux
Contoh di atas menunjukkan cara menetapkan batasan global, namun Anda mungkin ingin menerapkan batasan per basis pengguna. Untuk tujuan itu, sebagai pengguna root, Anda perlu mengedit file berikut:
vi /etc/security/limits.conf
Jika Anda seorang administrator Linux, saya menyarankan agar Anda memahami file itu dan apa yang dapat Anda lakukan terhadapnya. Baca semua komentar di dalamnya karena memberikan fleksibilitas besar dalam hal pengelolaan sumber daya sistem dengan membatasi pengguna/grup di tingkat yang berbeda.
Baris yang harus Anda tambahkan mengambil parameter berikut:
<domain> <type> <item> <value>
Berikut ini contoh penetapan batas lunak dan batas keras untuk marin pengguna:
## Example hard limit for max opened files
marin hard nofile 4096
## Example soft limit for max opened files
marin soft nofile 1024
Pikiran terakhir
Artikel singkat ini menunjukkan contoh dasar tentang cara memeriksa dan mengonfigurasi batas global dan tingkat pengguna untuk jumlah maksimum file yang dibuka.
Meskipun kita baru menggali permukaannya, saya sangat menganjurkan Anda untuk melihat dan membaca lebih detail mengenai /etc/sysctl.conf dan /etc/security/limits.conf dan pelajari cara menggunakannya. Mereka akan sangat membantu Anda suatu hari nanti.