Korzystam z aplikacji, która zużywa zegarki Inotify. Mam już ustawione
fs.inotify.max_user_watches=32768
w /etc/sysctl.conf
ale ostatniej nocy aplikacja zatrzymana indeksowanie chyba że prowadził ją ręcznie, co skłania mnie do podejrzeń, jestem z zegarków.
Ponieważ nie wiem, na czym polega kompromis, gdy zwiększam tę liczbę (czy zużywa więcej pamięci RAM?), Nie wiem, czy powinienem po prostu zwiększyć tę liczbę, więc chciałbym wiedzieć, czy jest jakiś sposób może stwierdzić, czy używa wszystkich tych zegarków i jakie mogą być kompromisy w jego zwiększaniu.
Odpowiedzi:
Skąd wiesz, że nie masz zegarków? ogon powie!
tail
od opcji-f
(Follow) w dowolnym starym pliku, np .tail -f /var/log/dmesg
:Dla ciekawskich: dlaczego ogon to „gadżet”?
strace tail -f ...
zamiast tego, a gdy się powiedzie, kończy się na:Czy możesz zwiększyć zegarki? O ile? Jakieś kompromisy?
Krótka odpowiedź: Jasne, nie ma potu. Przejdź bezpośrednio do pół miliona (524288), jeśli chcesz ... dodatkowa pamięć powinna być nieistotna w nowoczesnym systemie z 4 GB + pamięci.
Zakładając, że ustawiłeś maksimum na 524288 i wszystkie były używane (nieprawdopodobne), użyłbyś około. 256 MB / 512 MB 32-bitowej / 64-bitowej pamięci jądra
Jaka jest maksymalna wartość? Teoretycznie nie sądzę, dopóki masz wystarczającą ilość pamięci RAM. W praktyce 524288 jest oficjalnie zalecane przez aplikacje , a ludzie ustawiają go na 2 miliony , oczywiście przy zużyciu pamięci.
źródło
sudo lsof | grep -i inotify | wc -l
Nie wiem, czy powinienem tylko zwiększyć tę liczbę
Najłatwiejszym sposobem sprawdzenia, czy osiągnąłeś swoją
max_user_watches
wartość, jest użycieinotifywatch
przez użytkownika z paczkiinotify-tools
i sprawdzenie, czy nadal możesz zbierać informacje z pliku.Na przykład
inotifywatch -v /home/bruno/.profile
dla mnie zwraca:Więc
inotify
nie ma problemów z tworzeniem nowego zegarka, żadnych problemów tutaj.Jeśli osiągnąłeś maksymalny limit w zegarkach inotify, zwróci coś w rodzaju
Jeśli zobaczysz coś takiego, oznacza to, że osiągnąłeś limit i musisz zwiększyć dozwolony limit zegarków.
Czy zużywa więcej pamięci RAM?
Tak. Ale według tego starego artykułu ilość zużywana przez użytkownika jest minimalna w porównaniu z innymi aspektami działającego pulpitu.
Oczywiście zakładam, że wiele się nie zmieniło od czasu napisania artykułu, ale patrząc na liczby nie martwiłem się, a zwiększenie limitu nie zwiększy znacznie zużycia pamięci RAM.
Powiązane posty na temat
inotify
Błąd Dropbox - „echo 100000 | sudo tee / proc / sys / fs / inotify / max_user_watches '
osiągnięto limit jądra-inotify-watch-limit
źródło