GNU/Linux >> Belajar Linux >  >> Linux

Tidak dapat mengubah file terbuka maksimum per proses dengan sysctl

Untuk Ubuntu 17.04. Lihat solusi ini.

Sebelum Ubuntu 17.04:

Saya tidak tahu mengapa pengaturan di atas tidak berfungsi tetapi sepertinya Anda bisa mendapatkan hasil yang sama dengan menggunakan /etc/security/limits.conf berkas.

Tetapkan batas dalam /etc/security/limits.conf

sudo bash -c "echo '* - nofile 10240' >> /etc/security/limits.conf"
  • * berarti semua pengguna. Anda dapat menggantinya dengan nama pengguna tertentu.
  • - berarti keduanya soft dan hard untuk jenis batasan yang akan diberlakukan. Hard hanya dapat dimodifikasi oleh superuser. Soft dapat dimodifikasi oleh pengguna non-root dan tidak bisa lebih unggul dari hard.
  • nofile adalah Jumlah maksimum file yang terbuka parameter.
  • 10240 adalah batas baru.

Muat ulang

Keluar dan masuk kembali. sudo sysctl -p sepertinya tidak cukup untuk memuat ulang.

Anda dapat memeriksa batas baru dengan:

ulimit -n

Diuji pada Ubuntu 16.04 dan CentOS 6. Terinspirasi oleh jawaban ini.


Untuk MacOs 10.14.6 dan yang lebih baru, berikut berfungsi jika Anda perlu menaikkan batas untuk sementara:

Periksa batas Anda saat ini:

ulimit -n

Punyaku 256

Ubah itu:

ulimit -n 1024

Periksa lagi di tab yang sama:

ulimit -n

Milik saya sekarang menunjukkan 1024.

Perubahannya langsung, tidak perlu keluar dan masuk lagi, atau membuka tab Terminal baru. Itu memperbaiki masalah khusus saya.

Sayangnya, perubahan itu bersifat sementara. Nanti, saat Anda membuka jendela Terminal baru, Anda akan kembali dengan nilai dan masalah lama Anda.


Linux
  1. Periksa batas FD terbuka untuk proses tertentu di Linux

  2. Menghitung file terbuka per proses

  3. Terlalu banyak file yang terbuka di Debian

  1. Cara Meningkatkan Jumlah Batas File Terbuka di Linux

  2. Bagaimana Cara Mengubah Ekstensi Banyak File?

  3. Bagaimana cara zip file dengan batas ukuran?

  1. Nilai Maksimum Id Proses?

  2. Bagaimana Menemukan Proses Dengan Deskriptor File Maksimum?

  3. Jumlah maksimum utas per proses di Linux?