it-swarm-id.com

Bagaimana saya dapat meningkatkan batas file terbuka untuk semua proses?

Saya bisa menggunakan ulimit tapi saya pikir itu hanya mempengaruhi sesi Shell saya. Saya ingin batas ditingkatkan untuk semua proses. Ini di Red Hat.

34
user5554

Jawaban Justin memberi tahu Anda cara menaikkan jumlah file terbuka yang tersedia total ke seluruh sistem. Tapi saya pikir Anda bertanya bagaimana meningkatkan batas per pengguna, secara global. Jawabannya adalah menambahkan baris berikut ke /etc/security/limits.conf:

*               soft    nofile            2048
*               hard    nofile            2048

(Di mana * berarti semua pengguna.)

Ada beberapa dokumentasi ringkasan dalam file itu sendiri dan dalam man limits.conf. Ini diimplementasikan melalui pam_limits.so modul yang dipanggil untuk berbagai layanan yang dikonfigurasi dalam /etc/pam.d/.

Dan, saya harus mengakui, saya sudah tidak tah dari mana 1024 default berasal. Dan percayalah, saya melihat. Saya bahkan mencoba tanpa modul pam_limits dikonfigurasi, dan itu masih ada. Pasti ada hard-coded di suatu tempat, tapi saya tidak yakin di mana.

27
mattdm

Tambah jumlah maksimum file terbuka ulimit di Linux

1.Langkah: buka sysctl.conf dan tambahkan baris ini fs.file-max = 65536

$ vi /etc/sysctl.conf

tambahkan baris baru dan

fs.file-max = 65536

simpan dan keluar.

2.Langkah:

$ vi /etc/security/limits.conf

dan tambahkan di bawah ini

* soft     nproc          65535
* hard     nproc          65535
* soft     nofile         65535
* hard     nofile         65535

simpan dan keluar periksa maks file terbuka ulimit

# ulimit -a

....
open files                      (-n) 65535
14
minhas23

Menurut artikel Linux Meningkatkan Jumlah Maksimum File Terbuka/Penjelas File (FD) , Anda dapat meningkatkan batas file terbuka dengan menambahkan entri ke /etc/sysctl.conf.

Tambahkan direktif konfigurasi sebagai berikut:

fs.file-max = 100000

Kemudian simpan dan tutup file tersebut. Pengguna harus keluar dan masuk lagi untuk perubahan yang diberlakukan atau mereka cukup mengetik perintah berikut:

# sysctl -p

Anda juga dapat memverifikasi pengaturan Anda dengan perintah:

# cat /proc/sys/fs/file-max
14
Justin Ethier

Tetapi jika Anda mencoba meningkatkan jumlah maksimum file terbuka dari layanan seperti MariaDB atau yang lainnya (menggunakan systemd) yang harus Anda lakukan langsung dalam file .service

/lib/systemd/system/<servicename>.service

Akan menjadi sesuatu seperti ini:

[Unit]
Description=Some Daemon
After=syslog.target network.target

[Service]
Type=notify
LimitNOFILE=49152
ExecStart=/usr/sbin/somedaemon

[Install]
WantedBy=multi-user.target

Jawaban lengkapnya ada di sini: Meningkatkan nproc untuk proses yang diluncurkan oleh systemd pada CentOS 7

8

SUPLEMENT:

Anda mungkin menemukan konfigurasi di tempat yang berbeda: /etc/security/limits.d/*.conf

Saya harus memodifikasinya. Itu tidak akan berhasil tanpanya. Formatnya sama dengan limits.conf

3