Saya baru saja menginstal Ubuntu 16.04 dan saya mendapatkan peringatan ini ketika saya memulai SmartGit :
IOException: User limit of inotify watches reached
Selain itu saya mendapatkan peluncuran peringatan ini tail -f
:
tail: inotify resources exhausted
tail: inotify cannot be used, reverting to polling
Saya tidak pernah mendapatkan kesalahan ini dengan Ubuntu 14.04 dan aplikasi dan file yang saya gunakan pada Ubuntu baru sama persis dengan yang saya gunakan di versi sebelumnya.
Satu-satunya perbedaan yang relevan adalah saya menambahkan Hard Disk tambahan pada PC dan saya mengkonfigurasi alat cadangan Ubuntu. Bisakah masalah ini terkait dengan disk kedua atau dengan alat cadangan?
Jawaban:
Default saat ini pada Xenial adalah 8192 (lihat fs / notify / inotify / inotify_user.c di sumber kernel), Anda dapat memverifikasi ini dengan mencetak file ke stdout:
Anda dapat meningkatkan jumlahnya, misalnya, menggandakan ini menjadi 16384, menggunakan:
ingatlah bahwa jam tangan yang tidak sah menghabiskan memori, saya pikir itu sekitar 160 byte per jam pada sistem 64 bit.
Untuk mengatur ini secara permanen, tambahkan entri ke /etc/sysctl.conf, misalnya:
..atau mengedit secara manual
/etc/sysctl.conf
(Anda perlu hak root untuk memperbaruinya) dan kemudian jalankansudo sysctl -p
sumber
Jawaban di atas berfungsi dengan baik tetapi tidak menjelaskan mengapa saya mencari-cari jawaban saya di sini -
Mengapa?
Program yang menyinkronkan file seperti dropbox, git dll menggunakan inotify untuk melihat perubahan pada sistem file. Batas bisa dilihat oleh -
Bagi saya, ini menunjukkan 100000 . Ketika batas ini tidak cukup untuk memantau semua file di dalam direktori, ia melempar kesalahan ini.
Meningkatkan jumlah pengamat yang tidak memberi tahu (Versi singkat):
Jika Anda menjalankan Debian, RedHat, atau distribusi Linux serupa lainnya , jalankan yang berikut ini di terminal:
Jika Anda menjalankan ArchLinux , jalankan perintah berikut sebagai gantinya (lihat di sini untuk alasannya):
Kemudian tempel di terminal Anda dan tekan enter untuk menjalankannya.
Rincian teknis:
Dengarkan menggunakan inotify secara default di Linux untuk memantau direktori untuk perubahan. Tidak jarang Anda menemukan batas sistem pada jumlah file yang dapat Anda pantau. Sebagai contoh, batas inotify Ubuntu Lucid (64bit) diatur ke 8192.
Anda bisa mendapatkan batas waktu tontonan file tidak sah saat ini dengan menjalankan:
Ketika batas ini tidak cukup untuk memantau semua file di dalam direktori, batas tersebut harus ditingkatkan agar Dengarkan berfungsi dengan baik.
Anda dapat menetapkan batas baru sementara dengan:
Jika Anda ingin menjadikan batas Anda permanen, gunakan:
Anda juga mungkin perlu memperhatikan nilai-nilai max_queued_events dan max_user_inances jika Listen terus mengeluh.
Sumber: https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify- watchers
sumber
Anda dapat memeriksa Batas yang ada dan berdasarkan pada itu Anda dapat mengubahnya sesuai kebutuhan Anda
To Check : cat /proc/sys/fs/inotify/max_user_watches To Alter : sudo sysctl fs.inotify.max_user_watches=524288
Ini akan menyelesaikan kesalahan.
sumber