Centos 6 soft openfiles 1024?

2

Berikut adalah file dan detail conf, tidak peduli apa yang saya lakukan, soft openfiles tidak akan membahas 1024.

CENTOS 6.7 x86_64

cat /etc/security/limits.conf
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535

cat /etc/security/limits.d/90-nproc.conf
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* soft nofile 65535 * hard nofile 65535

root @ server [~] # ulimit -n
65535

cat /etc/sysctl.conf
fs.file-max = 65535

cat / proc / 1 / limit
Maks membuka file 1024 4096

itu menunjukkan batas yang benar ketika Anda menjalankan ulimit -n tetapi ketika Anda memeriksa cat / proc / 1 / Limit itu menunjukkan 1024, semua program di server terhenti dengan batas 1024 openfiles, mereka semua berjalan di bawah pengguna root.

Mat
sumber
Bisakah Anda menjelaskan apa masalah luar Anda daripada memberi tahu kami bagaimana Anda berusaha menyelesaikannya? Apakah ada proses tertentu yang membutuhkan batas lebih tinggi? Jika demikian, proses mana dan bagaimana proses itu dimulai?
David Schwartz

Jawaban:

2

Batas yang Anda ubah hanya memengaruhi pengguna yang masuk karena diterapkan oleh PAM sebagai bagian dari proses masuk. Mereka tidak berpengaruh pada proses yang dimulai dengan cara lain, seperti dengan systemd atau init secara langsung.

Jika Anda ingin mengubah batas proses yang dimulai oleh sesuatu selain pengguna yang masuk, Anda harus melakukannya dalam proses itu sendiri. Proses yang memiliki izin root dapat mengubah batasnya seperti yang mereka inginkan.

# cat /proc/self/limits  | grep -i open
Max open files            1024                 1024                 files     

# ulimit -Hn 8192
# ulimit -n 8192
# cat /proc/self/limits  | grep -i open
Max open files            8192                 8192                 files     

# ulimit -Hn 65536
# ulimit -n 65536
# cat /proc/self/limits  | grep -i open
Max open files            65536                65536                files
David Schwartz
sumber
Terima kasih, saya mengerti sekarang. Namun, apakah mungkin untuk memaksa semua skrip untuk menggunakan file terbuka maks berbasis sistem atau apakah saya harus mengedit skrip dan menentukan batasan?
Matt
Tidak ada "file terbuka berdasarkan sistem", sejauh yang saya tahu. Sekali lagi, itu tergantung apa yang Anda coba lakukan, yang masih belum Anda beri tahu kami. Apapun yang diluncurkan, skrip ini akan memahami batasan atau tidak. Jika ya, beri tahu untuk menetapkan batas seperti yang Anda inginkan. Jika tidak, maka tetapkan batas sebelum meluncurkan hal yang meluncurkan skrip ini. Misalnya, systemdmendukung LimitNOFILE.
David Schwartz
Ini adalah sistem server cPanel yang berjalan di server dengan proc id 2001 root 2001 cpsrvd (SSL) - menunggu koneksi cat / proc / 2001 / limit | grep -saya buka Max buka file 1024 4096 file ---- Saya kira saya perlu menghubungi mereka, saya sedang mengembangkan skrip di bawah panel kontrol mereka.
Matt
Bagaimana panel kontrol diluncurkan? Oleh systemd?
David Schwartz
Yang menarik adalah, panel kontrol yang sama dengan versi yang sama di bawah CentOS 7 membaca batas dari file ini /etc/systemd/system.conf dan menunjukkan batas apa yang ditetapkan dalam file system.conf. Tetapi dalam centos 6 saya tidak bisa menemukan di mana ia mendapat batas. Dari centos7 saya melihat ya itu makan siang oleh systemd
Matt
2

Limits.conf dan Root

Penggunaan *di membatasi.conf hanya berlaku untuk semua pengguna kecuali root.

Jika Anda ingin menetapkan batasan pada root, Anda harus menentukan rootalih-alih (atau sebagai tambahan) *.

Contoh:

root soft nproc 65535
root hard nproc 65535
root soft nofile 65535
root hard nofile 65535

Atau Anda dapat mengubah batas dalam skrip Anda secara manual seperti yang disebutkan dalam jawaban lain.

Catatan

Ini mengasumsikan aplikasi Anda menggunakan pam. Jika tidak, Anda harus menetapkan batas dalam skrip.

Harun
sumber
Dia sudah menutupi bagian itu. Perhatikan output dari ulimit -npertanyaannya? Masalahnya tampaknya terkait dengan proses yang tidak dibuat oleh pengguna yang masuk.
David Schwartz
Yup, saya pernah mengalami yang ini sebelumnya. Anda harus menentukan root dengan nama. Ini juga mengasumsikan aplikasi benar-benar menggunakan pam.
Aaron
Terimakasih temanku. Saya memang mengubahnya ke root dan seperti kata David skrip itu sendiri perlu diatur dengan batas. Tetapi terima kasih atas informasinya.
Matt
Np. Jika Anda harus mengaturnya di skrip, maka aplikasi tidak memanggil pam.
Aaron
dan jika itu tidak memanggil pam, maka perubahan apa pun yang Anda lakukan pada membatasi.conf tidak akan pernah diterapkan. sigh
Aaron