Pertanyaan Bagaimana cara meningkatkan batas buka file maksimum Neo4j (ulimit) di Ubuntu?


Saat ini ulimit -n pertunjukan 10000. Saya ingin meningkatkannya menjadi 40000. Saya telah mengedit "/etc/sysctl.conf" dan masukkan fs.file-max=40000. Saya juga sudah mengedit /etc/security/limits.conf dan memperbarui nilai-nilai keras dan lunak. Tapi masih menunjukkan ulimit 10000. Setelah melakukan semua perubahan ini saya me-reboot laptop saya. Saya sudah akses ke kata sandi root.

usr_name@usr_name-lap:/etc$ /sbin/sysctl fs.file-max
fs.file-max = 500000

Menambahkan baris berikut di /etc/security/limits.conf -

*     soft    nofile          40000
*     hard    nofile          40000

Saya juga menambahkan baris berikut di /etc/pam.d/su-

session    required   pam_limits.so

Saya sudah mencoba segala cara yang mungkin seperti yang diberikan di forum lain, tetapi saya bisa mencapai hingga batas maksimum 10000, bukan di luar itu. Apa yang bisa menjadi masalah?

Saya membuat perubahan ini karena neo4j melempar batas file terbuka maksimum mencapai kesalahan.


76
2018-02-02 19:58


asal


Jawaban:


Saya menggunakan Debian tetapi solusi ini harus berfungsi baik dengan Ubuntu.
Anda harus menambahkan satu baris di layanan neo4j naskah.
Inilah yang telah saya lakukan:

nano /etc/init.d/neo4j-service
Tambahkan « ulimit –n 40000 »Tepat sebelum garis start-stop-daemon dalam bagian do_start

Perhatikan bahwa saya menggunakan edisi Enterprise versi 2.0. Semoga ini akan membantu Anda.


8
2018-02-03 19:31



Apa yang Anda lakukan tidak akan berfungsi untuk pengguna root. Mungkin Anda menjalankan layanan Anda sebagai root dan karenanya Anda tidak bisa melihat perubahannya.

Untuk menambah ulimit untuk pengguna root, Anda harus mengganti * oleh root. * tidak berlaku untuk pengguna root. Istirahat sama seperti yang Anda lakukan. Saya akan mengutip ulang di sini.

Tambahkan baris berikut ke file: /etc/security/limits.conf

root soft  nofile 40000

root hard  nofile 40000

Dan kemudian tambahkan baris berikut di file: /etc/pam.d/common-session

session required pam_limits.so

Ini akan memperbarui ulimit untuk pengguna root. Seperti yang disebutkan dalam komentar, Anda mungkin bahkan tidak perlu melakukan reboot untuk melihat perubahan.


82
2018-06-21 08:32



1) Periksa sysctl file-max membatasi:

$ cat /proc/sys/fs/file-max

Jika batasnya lebih rendah dari nilai yang Anda inginkan, buka sysctl.conf dan tambahkan baris ini di akhir file:

fs.file-max = 65536

Akhirnya, terapkan sysctl batas:

$ sysctl -p 

2) Edit /etc/security/limits.conf dan tambahkan di bawah yang disebutkan

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

Batasan ini tidak berlaku untuk root pengguna, jika Anda ingin berubah root membatasi Anda harus melakukannya secara eksplisit:

root soft     nofile         65535   
root hard     nofile         65535
...

3) Reboot sistem atau tambahkan baris berikut ke akhir /etc/pam.d/common-session:

session required pam_limits.so

Keluar dan masuk lagi.

4) Periksa batas-batas lunak:

$ ulimit -a

dan batas keras:

$ ulimit -Ha
....

open files                      (-n) 65535

Referensi: http://ithubinfo.blogspot.in/2013/07/how-to-increase-ulimit-open-file-and.html


62
2017-07-17 06:37



Saya mengalami masalah yang sama, dan membuatnya berfungsi dengan menambahkan entri ke /etc/security/limits.d/90-somefile.conf. Perhatikan bahwa untuk melihat batas bekerja, saya harus keluar sepenuhnya dari sesi ssh, dan kemudian masuk kembali.

Saya ingin menetapkan batas untuk pengguna tertentu yang menjalankan layanan, tetapi tampaknya saya mendapatkan batas yang ditetapkan untuk pengguna yang saya masuki sebagai. Berikut ini contoh untuk menunjukkan bagaimana ulimit ditentukan berdasarkan pengguna yang diautentikasi, dan bukan pengguna yang efektif:

$ sudo cat /etc/security/limits.d/90-nofiles.conf
loginuser    soft    nofile   10240
loginuser    hard    nofile   10240
root         soft    nofile   10241
root         hard    nofile   10241
serviceuser  soft    nofile   10242
serviceuser  hard    nofile   10242

$ whoami
loginuser
$ ulimit -n
10240
$ sudo -i
# ulimit -n
10240    # loginuser's limit
# su - serviceuser
$ ulimit -n
10240    # still loginuser's limit.

Anda bisa menggunakan * untuk menentukan peningkatan untuk semua pengguna. Jika saya me-restart layanan sebagai pengguna yang saya masuki, dan tambahkan ulimit -n ke skrip init, saya melihat bahwa batas pengguna login awal sudah ada. Saya belum memiliki kesempatan untuk memverifikasi batas pengguna yang digunakan selama boot sistem atau menentukan apa batas nofile sebenarnya dari layanan yang saya jalankan (yang dimulai dengan start-stop-daemon).

Ada 2 pendekatan yang berfungsi untuk saat ini:

  1. tambahkan penyesuaian ulimit ke skrip init, tepat sebelum start-stop-daemon.
  2. wildcard atau pengaturan ulimit yang lebih luas dalam file keamanan.

3
2017-10-03 09:03



Anda bisa mengubah skrip init untuk neo4j untuk melakukan ulimit -n 40000 sebelum berlari neo4j.

Namun, saya tidak bisa membantu tetapi merasa Anda menggonggong pohon yang salah. Apakah neo4j sah membutuhkan lebih dari 10.000 deskriptor file terbuka? Ini terdengar sangat mirip dengan bug neo4j atau cara Anda menggunakannya. Saya akan mencoba menjawabnya.


2
2018-02-02 23:31



Saya memiliki banyak masalah untuk membuat ini berfungsi.

Menggunakan yang berikut ini memungkinkan Anda untuk memperbaruinya terlepas dari izin pengguna Anda.

sudo sysctl -w fs.inotify.max_user_watches=100000

Edit

Hanya melihat ini dari pengguna lain juga di situs stackexchange lain (keduanya berfungsi, tetapi versi ini secara permanen memperbarui pengaturan sistem, bukan sementara):

echo fs.inotify.max_user_watches=100000 | sudo tee -a /etc/sysctl.conf; 
sudo sysctl -p

2
2017-07-10 15:41



Coba jalankan perintah ini maka akan membuat a *_limits.conf file di bawah /etc/security/limits.d

echo "* soft nofile 102400" > /etc/security/limits.d/*_limits.conf && echo "* hard nofile 102400" >> /etc/security/limits.d/*_limits.conf

Keluar saja dari terminal dan masuk lagi dan verifikasi dengan ulimit -n itu akan diatur untuk * pengguna


2
2017-07-29 07:36



tl; dr mengatur batas lunak dan keras

Saya yakin itu berfungsi sebagaimana mestinya, tetapi saya akan menambahkannya di sini untuk berjaga-jaga. Untuk kelengkapan, batasnya ditetapkan di sini (lihat di bawah untuk sintaks): /etc/security/limits.conf

some_user       soft    nofile          60000
some_user       hard    nofile          60000

dan diaktifkan dengan yang berikut di /etc/pam.d/common-session:

session required pam_limits.so

Jika Anda hanya menetapkan batas keras, ulimit -a akan menampilkan default (1024): Jika Anda mengatur hanya soft limit ulimit -a akan muncul (4096)

Jika Anda mengatur keduanya ulimit -a akan menunjukkan batas lunak (hingga batas keras tentunya)


2
2017-09-12 00:51