GNU/Linux >> Belajar Linux >  >> Linux

Batas jam pemberitahuan kernel tercapai

Apakah aman untuk menaikkan nilai tersebut dan apa konsekuensi dari nilai yang terlalu tinggi?

Ya, aman untuk menaikkan nilai tersebut dan di bawah ini adalah kemungkinan biayanya [sumber]:

  • Masing-masing digunakan jam inotify membutuhkan 540 byte (sistem 32-bit), atau 1 kB (ganda - pada 64-bit) [sumber:1, 2]
  • Ini berasal dari memori kernel , yang tidak dapat ditukar.
  • Dengan asumsi Anda menyetel maksimum pada 524288 dan semuanya telah digunakan (tidak mungkin), Anda akan menggunakan sekitar 256MB/512MB memori kernel 32-bit/64-bit.
    • Perhatikan bahwa aplikasi Anda juga akan menggunakan memori tambahan untuk melacak pegangan inotify, jalur file/direktori, dll. -- seberapa banyak bergantung pada desainnya.

Untuk memeriksa jumlah maksimal jam tangan inotify:

cat /proc/sys/fs/inotify/max_user_watches

Untuk menyetel jumlah maksimum jam tangan inotify

Untuk sementara:

  • Jalankan sudo sysctl fs.inotify.max_user_watches= dengan nilai pilihan Anda di bagian akhir.

Permanen (info lebih detail):

  • masukkan fs.inotify.max_user_watches=524288 ke pengaturan sysctl Anda. Bergantung pada sistem Anda, mereka mungkin berada di salah satu tempat berikut:
    • Debian/RedHat:/etc/sysctl.conf
    • Arch:masukkan file baru ke dalam /etc/sysctl.d/ , mis. /etc/sysctl.d/40-max-user-watches.conf
  • Anda mungkin ingin memuat ulang pengaturan sysctl untuk menghindari reboot:sysctl -p (Debian/RedHat) atau sysctl --system (Lengkungan)

Periksa untuk melihat apakah jumlah maksimum jam tangan inotify telah tercapai:

Gunakan tail dengan -f (ikuti) opsi pada file lama mana pun, mis. tail -f /var/log/dmesg :- Jika semuanya baik-baik saja, itu akan menampilkan 10 baris terakhir dan jeda; batalkan dengan Ctrl-C- Jika Anda kehabisan jam tangan , itu akan gagal dengan kesalahan yang agak samar ini:

tail: cannot watch '/var/log/dmsg': No space left on device

Untuk melihat apa yang menggunakan jam tangan inotify

find /proc/*/fd -lname anon_inode:inotify |
   cut -d/ -f3 |
   xargs -I '{}' -- ps --no-headers -o '%p %U %c' -p '{}' |
   uniq -c |
   sort -nr

Kolom pertama menunjukkan jumlah inotify fds (meskipun bukan jumlah jam tangan) dan kolom kedua menunjukkan PID dari proses tersebut [sumber:1, 2].


Linux
  1. Pelacakan kernel dengan trace-cmd

  2. "Kepanikan kernel"?

  3. Linux – Kernel:Dukungan Namespaces?

  1. Linux – Penerusan Ip Kernel?

  2. Efisiensi Banyak Jam Tangan Inotify Atau Panggilan Stat?

  3. Batas memori PHP

  1. Batas garis Shebang di bash dan kernel linux

  2. Apa itu penerusan ip kernel?

  3. nonaktifkan halaman besar transparan