Ketika saya mencoba tail -f catalina.out
, saya mendapatkan kesalahan:
tail: inotify cannot be used, reverting to polling: Too many open files
Saya mencoba jawabannya di posting ini: Terlalu banyak file yang terbuka - bagaimana menemukan pelakunya
lsof | awk '{ print $2; }' | sort -rn | uniq -c | sort -rn | head
Ketika saya menjalankan perintah di atas, hasilnya adalah
17 6115
13 6413
10 6417
10 6415
9 6418
9 6416
9 6414
8 6419
4 9
4 8
Saya tidak melihat adanya proses membuka 1024 file. Bukankah jumlah file terbuka 17,13,10,10,9? Atau saya salah memahaminya? Dan semua ini adalah bash, sshd, apache2, tomcat memiliki nomor 4.
Saya juga melakukan lsof | grep tail | wc -l
yang kembali 20
. Angka-angka ini tidak besar, jadi mengapa tail -f catalina.out
gagal?
tail
pesan adalah sedikit berbeda:tail: inotify resources exhausted
. Jawaban ini membantu saya. Anda juga dapat menggunakansudo sysctl -w fs.inotify.max_user_watches=1048576 && sysctl -p
untuk menguji apakah itu membantu tanpa memodifikasinya secara permanen. Posting ini juga membantu nefaria.com/2014/08/tail-inotify-resources-exhaustedSaya pikir jawaban itu tidak lengkap (tidak mengatakan apa-apa tentang batas maksimum file yang terbuka pada sistem).
Ada dua batasan mengenai jumlah maksimum file terbuka:
Batas maksimum file terbuka per proses .
ulimit -n
ulimit -n new_limit_number
Berikut adalah perintah untuk mendapatkan 10 proses teratas yang membuka banyak file:
Batas maksimum file terbuka per sistem .
cat /proc/sys/fs/file-max
echo new_limit_number > /proc/sys/fs/file-max
lsof | wc -l
sumber
Kemungkinan besar, Anda sudah kehabisan
inotify
arloji Anda . Mungkin, Anda menjalankan beberapa alat sinkronisasi file (mis. Dropbox) di latar belakang?Di Linux, implementasi internal
tail -f
perintah menggunakaninotify
mekanisme secara default, untuk memonitor perubahan file. Jika Anda kehabisan semuainotify
jam tangan (8192 secara default), makainotify -f
harus beralih ke polling untuk mendeteksi perubahan pada file itu.Tentu saja, Anda dapat memodifikasi jumlah
inotify
jam tangan maksimum .referensi:
http://www.quora.com/How-is-tail-f-implemented
http://peter-butkovic.blogspot.com/2013/08/tail-inotify-resources-exhausted.html
https: // serverfault.com/questions/510708/tail-inotify-cannot-be-used-reverting-to-polling-too-many-open-files
sumber
sysctl fs.inotify.max_user_instances
akan mendapatkan batas per pengguna untukinotify
.Saya mengalaminya, dan semua sistem lebar batas cukup tinggi, tetapi pengaturan oleh pengguna biasanya relatif rendah secara default, Anda dapat meningkatkannya
sysctl.conf
dan memuatnya kembalisysctl -p
.sumber
Lari
untuk memeriksa apakah terlalu banyak perintah ekor yang berjalan, seperti spawn by crontab.
sumber
root 20161 0.0 0.0 11132 1044 pts/0 S+ 17:27 0:00 grep tail
Periksa versi kernel Anda, mungkin ini bug:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1101666
sumber