Czy istnieje sposób, aby prześledzić, dlaczego proces „fseventd” przetwarza procesor?

11

Korzystam z systemu Mac OSX 10.6 i zauważyłem, że proces „fseventd” zajmował 100% procesora i 1,5 GB pamięci RAM. Podczas wyszukiwania w Google odkryłem, że można to powiązać z Time Machine. Nie uruchamiam jednak Time Machine na tym komputerze.

Czy istnieje sposób na prześledzenie źródła świni zasobów? Czy loguje się gdziekolwiek? Ponowne uruchomienie „naprawiło” problem, ale jestem pewien, że wróci, jeśli nie będę w stanie zrozumieć, dlaczego zaczął się w ogóle.

Z góry dziękuję.

DTest
źródło
Czy kiedykolwiek znalazłeś źródło? Ten sam problem występuje na naszym serwerze z lampartami śnieżnymi. Mogę spróbować zrestartować komputer, ale nie mogę tego zrobić do późniejszej nocy.
Greg W
Nie miałem go wyskakującego od czasu mojego ponownego uruchomienia (na szczęście), więc nadal nie znam źródła
DTest
Mam ten sam problem. Ponowne uruchomienie nie pomaga. Po 20–30 minutach program fseventd ponownie zaczyna pobierać 99% procesora. Macbook nie milczy już ...
Laurent K,

Odpowiedzi:

7

fseventd to proces rejestrowania zdarzeń w systemie plików, o którym można przeczytać wiele w przeglądzie ars technica Mac OS X Leopard. Możesz użyć programów takich jak fseventer, aby zobaczyć ten sam rodzaj danych wyjściowych.

Z artykułu:

Struktura FSEvents opiera się na jednym, stale działającym procesie demona o nazwie fseventsd, który odczytuje z / dev / fsevents i zapisuje zdarzenia w plikach dziennika na dysku (przechowywanym w katalogu .fseventsd w katalogu głównym wolumenu, dla którego są przeznaczone zdarzenia). Otóż ​​to. To rozwiązanie supernowoczesne: wystarczy zapisać zdarzenia w pliku dziennika. Nudne, pragmatyczne, ale dość skuteczne.

Możesz sprawdzić ten dziennik, chociaż nie wiem, jak użyteczny będzie dla Ciebie. Nie byłbym zaskoczony widząc Time Machine, która zajmuje się wieloma plikami, a czasem wieloma małymi plikami, co może powodować pewne problemy z awariami.

ConstantineK
źródło
Mam nadzieję, że nie jest to wehikuł czasu, ponieważ jest on wyłączony! W każdym razie czytam fseventer, więc dziękuję za sugestię.
DTest
3

Albo jeden program utknął w bardzo wydajnym zapisie zmian w pętli, który spowodował, że fseventsdmiał dużo pracy, lub sam jest nieskończoną pętlą przetwarzającą nierozwiązywalną strukturę danych na jednym z zamontowanych woluminów.

W poprzednim przypadku - programy takie jak fseventer, które czytają ten sam strumień danych prawdopodobnie również się zawieszą - będziesz mieć teraz dwa procesy przy 50% wykorzystaniu, próbujące przetworzyć nieskończoną ilość danych. (Jest to świetny punkt danych, jeśli próbujesz sprawdzić, co jest nie tak.) Jest to analogiczne do pytań, które pytają, dlaczego syslogdzajmuje cały procesor - zwykle jest to jakiś inny zwariowany program, który powoduje dużo pracy.

Kiedy / jeśli to się powtórzy - zacznij wychodzić z programów i rozważ wylogowanie. Dowiesz się, czy przestępstwo jest procesem na poziomie systemu, czy procesem na poziomie użytkownika. fs_usagemoże być przydatne, aby zobaczyć, jakie konkretne programy są ciężkie we / wy.

fsck od rozruchu do trybu pojedynczego użytkownika jest zwykle wymagany, jeśli masz okrągłe twarde łącza lub inne zdegenerowane shenanigany systemu plików, które mogą powodować tego rodzaju gwałtowny wzrost aktywności.

bmike
źródło
Tak, przepraszam, gdybym był niejasny, zdecydowanie nie można otworzyć Fseventer, gdy kupa przysłowiowo uderza w wentylator. Chciałem tylko dowiedzieć się więcej o tym, jakie dane były rejestrowane i widoczne, tak jak zrobiłby to fs_usage.
ConstantineK
Uwielbiałem uczyć się o fseventer - wygląda bardzo ładnie. Nie ma awarii - tylko dane.
bmike
Wow, dzięki za wskazówkę na temat „fs_usage”. Tak, doszedłem do wniosku, że tak naprawdę to nie spowodowało obciążenia, ale jakiś inny program. Spodziewam się gdzieś pętli. Nawiasem mówiąc, maszyna działa normalnie przez około 24 godziny i to się nie powtórzyło.
DTest