Saya saat ini menghadapi masalah pada kotak linux di mana sebagai root saya memiliki perintah untuk mengembalikan kesalahan karena batas jam tidak sah telah tercapai.
# tail -f /var/log/messages
[...]
tail: cannot watch '/var/log/messages': No space left on device
# inotifywatch -v /var/log/messages
Establishing watches...
Failed to watch /var/log/messages; upper limit on inotify watches reached!
Please increase the amount of inotify watches allowed per user via '/proc/sys/fs/inotify/max_user_watches'.`
Saya googled sedikit dan setiap solusi yang saya temukan adalah meningkatkan batas dengan:
sudo sysctl fs.inotify.max_user_watches=<some random high number>
Tetapi saya tidak dapat menemukan informasi tentang konsekuensi dari peningkatan nilai itu. Saya kira nilai kernel default ditetapkan karena suatu alasan tetapi tampaknya tidak memadai untuk penggunaan tertentu. (mis. saat menggunakan Dropbox dengan banyak folder, atau perangkat lunak yang memantau banyak file)
Jadi inilah pertanyaanku:
- Apakah aman untuk meningkatkan nilai itu dan apa konsekuensi dari nilai yang terlalu tinggi?
- Apakah ada cara untuk mengetahui jam tangan apa yang saat ini ditetapkan dan proses mana yang mengatur mereka untuk dapat menentukan apakah batas yang dicapai tidak disebabkan oleh perangkat lunak yang salah?
Jawaban:
Apakah aman untuk meningkatkan nilai itu dan apa konsekuensi dari nilai yang terlalu tinggi?
Ya, aman untuk meningkatkan nilai itu dan di bawah ini adalah biaya yang mungkin [ sumber ]:
Untuk memeriksa jumlah maksimum jam tangan tidak sah:
Untuk mengatur jumlah maksimum jam tangan tidak sah
Untuk sementara:
sudo sysctl fs.inotify.max_user_watches=
dengan nilai pilihan Anda di akhir.Permanen ( info lebih rinci ):
fs.inotify.max_user_watches=524288
ke dalam pengaturan sysctl Anda. Tergantung pada sistem Anda, mereka mungkin berada di salah satu tempat berikut:/etc/sysctl.conf
/etc/sysctl.d/
, misalnya/etc/sysctl.d/40-max-user-watches.conf
sysctl -p
(Debian / RedHat) atausysctl --system
(Lengkungan)Periksa untuk melihat apakah jumlah maksimum jam tangan tidak sah telah tercapai:
Gunakan
tail
dengan opsi-f
(ikuti) pada file lama apa pun, misalnyatail -f /var/log/dmesg
: - Jika semuanya baik-baik, itu akan menampilkan 10 baris terakhir dan berhenti; batalkan dengan Ctrl-C - Jika Anda kehabisan jam tangan , itu akan gagal dengan kesalahan yang agak samar ini :Untuk melihat apa yang menggunakan jam tangan tidak sah
Kolom pertama menunjukkan jumlah FDS inotify (bukan jumlah jam tangan) dan yang kedua menunjukkan PID dari proses itu [sumber: 1 , 2 ].
sumber
I guess very few codes need the values higher than the default
Dropbox mungkin memerlukan batas yang lebih tinggi, tergantung pada berapa banyak file yang Anda miliki. Iv'e mengangkat milikku tanpa masalah. pada kenyataannya, notifikasi dropbox (yang terjadi ketika mencapai batasnya) secara eksplisit memberitahu Anda untuk menaikkannya./etc/sysctl.conf
/etc/sysctl.d
juga bekerja pada sistem berbasis RedHat yang lebih baru.