Podczas pracy tail -f filename
otrzymałem następujący komunikat:
tail: inotify cannot be used, reverting to polling: Too many open files
Czy to potencjalny problem?
Jak zdiagnozować, co odpowiada za wszystkie otwarte pliki? Mam listę podejrzanych procesów, ale jeśli nie okażą się winowajcami, przydatne będą instrukcje, które nie polegają na wiedzy, który proces sprawdzić.
filesystem
Andrew Grimm
źródło
źródło
ulimit
?Odpowiedzi:
Możesz użyć lsof, aby zrozumieć, kto otwiera tak wiele plików. Zwykle jest to serwer (internetowy), który otwiera tak wiele plików, ale lsof z pewnością pomoże ci zidentyfikować przyczynę.
Kiedy zrozumiesz, kto jest złym facetem, możesz
Jeśli dane wyjściowe z lsof są dość duże, spróbuj przekierować je do pliku, a następnie otwórz plik
Przykład (może być konieczne Ctrl+ Cpierwsze polecenie)
źródło
lsof | awk '{ print $2; }' | uniq -c | sort -rn | head
uniq
działa tylko z sąsiednimi liniami), uruchomić uniq, a następnie posortować ponownie. Taklsof | awk '{ print $2; }' | sort -rn | uniq -c | sort -rn | head
.:)
Jeśli ktoś tego potrzebuje ...
Wyświetli wszystkie aktualne limity. W szczególności
ulimit -n 70000
ustawi limit deskryptora pliku.Również...
Wyświetli / ustawi limit jądra, jeśli będzie edytowany.
Bardziej szczegółowe wyjaśnienie można znaleźć na ...
Jak zwiększyć limit otwartych plików dla użytkownika innego niż root?
źródło