GNU/Linux >> Belajar Linux >  >> Linux

Cara mengatur batas ulimit dan deskriptor file di Server Linux

Pendahuluan:  Tantangan seperti jumlah file yang terbuka di lingkungan produksi mana pun telah menjadi hal yang umum saat ini. Karena banyak aplikasi berbasis Java dan Apache, sedang diinstal dan dikonfigurasi, yang dapat menyebabkan terlalu banyak file terbuka, deskriptor file, dll. Jika ini melebihi batas default yang ditetapkan, maka seseorang mungkin menghadapi masalah kontrol akses dan pembukaan file tantangan. Banyak lingkungan produksi mengalami situasi yang terhenti karena hal ini.

Untungnya, kami memiliki “ulimit ” di salah satu server berbasis Linux, yang dengannya seseorang dapat melihat/mengatur/mendapatkan jumlah file status terbuka/detail konfigurasi. Perintah ini dilengkapi dengan banyak opsi dan dengan kombinasi ini seseorang dapat mengatur jumlah file yang terbuka. Berikut adalah perintah langkah demi langkah dengan contoh yang dijelaskan secara rinci.

Untuk melihat berapa batas file terbuka saat ini di Sistem Linux apa pun

Untuk mendapatkan batas file terbuka di server Linux apa pun, jalankan perintah berikut,

[[email protected] ~]# cat /proc/sys/fs/file-max146013

Angka di atas  menunjukkan bahwa pengguna dapat membuka file '146013' per sesi login pengguna.

[[email protected] ~]# cat /proc/sys/fs/file-max149219[[email protected] ~]# cat /proc/sys/fs/file-max73906

Ini dengan jelas menunjukkan bahwa masing-masing sistem operasi Linux memiliki jumlah file terbuka yang berbeda. Ini didasarkan pada dependensi dan aplikasi yang berjalan di sistem masing-masing.

perintah ulimit :

Seperti namanya, ulimit (batas pengguna) digunakan untuk menampilkan dan menetapkan batas sumber daya untuk pengguna yang masuk. Ketika kita menjalankan perintah ulimit dengan opsi -a maka ia akan mencetak semua batas sumber daya untuk pengguna yang masuk. Sekarang mari kita jalankan “ulimit -a ” pada sistem Ubuntu / Debian dan CentOS,

Sistem Ubuntu / Debian ,

[email protected] ~}$ ulimit -acore file size         (blocks, -c) 0data seg size          (kbytes, -d) unlimitedscheduling priority           (-e) 0 ukuran file                   sinyal 5731maks memori terkunci       (kbytes, -l) 64max ukuran memori         (kbytes, -m) file terbuka tak terbatas                        (-n) 1024     ukuran pipa           (512 byte ) prioritas (-p) 8 byte ) 0stack size             (kbytes, -s) 8192cpu time             (detik, -t) proses pengguna tak terbatas            (-u) 5731memori virtual         (k     ) tak terbatas (kbytes, -v) 

Sistem CentOS

[email protected] ~}$ ulimit -acore file size         (blocks, -c) 0data seg size          (kbytes, -d) unlimitedscheduling priority           (-e) 0 ukuran file                   sinyal 5901max memori terkunci       (kbytes, -l) 64max memory size         (kbytes, -m) unlimitedopen files                   (-n) 1024 ukuran pipa           (512 byte, -p     prioritas byte) (    -q prioritas byte) 0stack size              (kbytes, -s) 8192cpu time              (detik, -t) proses pengguna tak terbatas            (-u) 5901memori virtual         (kbytes, -v) tak terbatas 

Seperti yang dapat kita lihat di sini, OS yang berbeda memiliki batasan yang berbeda. Semua batasan ini dapat dikonfigurasi/diubah menggunakan perintah “ulimit”.

Untuk menampilkan batas sumber daya individual, lalu berikan parameter individual dalam perintah ulimit, beberapa parameter tercantum di bawah ini:

  • ulimit -n  –> Ini akan menampilkan jumlah batas file yang terbuka
  • ulimit -c –> Menampilkan ukuran file inti
  • umilit -u –> Ini akan menampilkan batas proses pengguna maksimum untuk pengguna yang masuk.
  • ulimit -f –> Ini akan menampilkan ukuran file maksimum yang dapat dimiliki pengguna.
  • umilit -m –> Ini akan menampilkan ukuran memori maksimum untuk pengguna yang login.
  • ulimit -v –> Ini akan menampilkan batas ukuran memori maksimum

Gunakan perintah di bawah ini, periksa batas keras dan lunak untuk jumlah file yang terbuka untuk pengguna yang masuk

[email protected] ~}$ ulimit -Hn1048576[email protected] ~}$ ulimit -Sn1024

Bagaimana cara mengatasi masalah ketika batas jumlah File Maksimum tercapai?

Mari kita asumsikan server Linux kita telah mencapai batas jumlah maksimum file yang terbuka dan ingin memperluas batas sistem tersebut, misalnya kita ingin menetapkan 100000 sebagai batas jumlah file yang terbuka.

Gunakan perintah sysctl untuk meneruskan parameter fs.file-max ke kernel dengan cepat, jalankan perintah di bawah sebagai pengguna root,

[email protected]~]# sysctl -w fs.file-max=100000fs.file-max =100000

Perubahan di atas akan aktif hingga reboot berikutnya, jadi untuk membuat perubahan ini tetap ada selama reboot, edit file /etc/sysctl.conf dan tambahkan parameter yang sama,

[email protected]~]# vi /etc/sysctl.conffs.file-max =100000

simpan dan keluar dari file,

Jalankan perintah di bawah untuk membuat perubahan di atas langsung berlaku tanpa logout dan reboot.

[email protected]~]# sysctl -p

Sekarang verifikasi apakah perubahan baru berlaku atau tidak.

[email protected]~]# cat /proc/sys/fs/file-max100000

Gunakan perintah di bawah ini untuk mengetahui berapa banyak deskriptor file yang sedang digunakan:

[[email protected] ~]# lainnya /proc/sys/fs/file-nr1216 0 100000

Catatan:- Perintah “sysctl -p ” digunakan untuk melakukan perubahan tanpa reboot dan logout.

Tetapkan batas sumber daya tingkat pengguna melalui file limit.conf 

/etc/sysctl.conf File ” digunakan untuk mengatur lebar sistem batas sumber daya tetapi jika Anda ingin menetapkan batas sumber daya untuk pengguna tertentu seperti Oracle, MariaDB dan Apache maka ini dapat dicapai melalui “/etc/security/limits.conf ” berkas.

Contoh Limit.conf ditunjukkan di bawah ini,

[email protected]~]# cat /proc/sys/fs/file-max

Mari kita asumsikan kita ingin menetapkan batas keras dan lunak pada jumlah file yang terbuka untuk pengguna linuxtechi dan untuk pengguna oracle menetapkan batas keras dan lunak pada jumlah proses yang terbuka, edit file “/etc/security/limits.conf” dan tambahkan yang berikut garis

# hard limit untuk max membuka file untuk linuxtechi userlinuxtechi hard nofile 4096# soft limit untuk max membuka file untuk linuxtechi userlinuxtechi soft nofile 1024# hard limit untuk max jumlah proses untuk oracle useroracle hard nproc 8096# soft limit untuk max jumlah proses untuk oracle useroracle soft nproc 4096

Simpan &keluar dari file.

Catatan: Jika Anda ingin menempatkan batas sumber daya pada grup alih-alih pengguna, maka itu juga dapat dilakukan melalui file limit.conf, sebagai ganti nama pengguna , ketik @ dan item lainnya akan sama, contoh ditunjukkan di bawah ini,

# hard limit untuk file yang dibuka maksimal untuk sysadmin group@sysadmin        hard         nofile            4096 # soft limit untuk file yang dibuka maksimal untuk sysadmin group@sysadmin        soft         nofile          

Verifikasi apakah perubahan baru berlaku atau tidak,

~]# su - linuxtechi~]$ ulimit -n -H4096~]$ ulimit -n -S1024~]# su - oracle~]$ ulimit -H -u8096~]$ ulimit -S -u4096

Catatan:Perintah lain yang sering digunakan adalah “lsof ” yang digunakan untuk mengetahui “berapa banyak file yang dibuka saat ini”. Perintah ini sangat membantu admin.

Kesimpulan:

Seperti disebutkan di bagian pendahuluan, perintah "ulimit" sangat kuat dan membantu seseorang untuk mengonfigurasi dan memastikan penginstalan aplikasi lebih lancar tanpa hambatan apa pun. Perintah ini membantu memperbaiki banyak batasan jumlah file di server berbasis Linux.


Linux
  1. Cara Mengatur Alamat IP Statis dan Konfigurasi Jaringan di Linux

  2. Apa itu NFS dan bagaimana cara menginstalnya di Linux

  3. Cara memasang dan memasang sistem file di Linux

  1. Cara Mengarahkan Output ke File dan Stdout di Linux

  2. Cara mengekstrak file .gz dan .tar.gz di Linux

  3. Bagaimana cara mengatur batas Ukuran Unggah File di Apache?

  1. Cara Menggunakan Perintah Linux ulimit

  2. Cara Kompres dan Dekompresi File .bz2 di Linux

  3. Bagaimana cara mengatur file swap terenkripsi di Linux?