Esiste un modo per rintracciare la ragione per cui il processo 'fseventsd' esegue l'hog della CPU?

10

Eseguo Mac OSX 10.6 e ho notato che un processo 'fseventsd' stava prendendo il 100% di CPU e 1.5G di RAM. Facendo una ricerca su google, ho scoperto che questo potrebbe essere legato a Time Machine. Tuttavia, non eseguo Time Machine su questo computer.

C'è un modo per rintracciare la fonte del maiale delle risorse? Si collega ovunque? Un riavvio ha risolto il problema, ma sono sicuro che tornerà se non riesco a capire perché è iniziato in primo luogo.

Grazie in anticipo.

    
posta DTest 28.04.2011 - 17:41
fonte

2 risposte

7

fseventd è il processo di registrazione degli eventi del filesystem, puoi leggere molto su di esso nella recensione di ars technica di Mac OS X Leopard. Puoi utilizzare programmi come fseventer per vedere lo stesso tipo di output che vede.

Dall'articolo:

The FSEvents framework relies on a single, constantly running daemon process called fseventsd that reads from /dev/fsevents and writes the events to log files on disk (stored in a .fseventsd directory at the root of the volume the events are for). That's it. That's the super-high-tech solution: just write the events to a log file. Boring, pragmatic, but quite effective.

Puoi controllare quel registro anche se non so quanto sarà utile per te. Non sarei così sorpreso di vedere Time Machine, che si occupa di molti file e, a volte, di molti piccoli file, per causare alcuni problemi con fsevents.

    
risposta data 28.04.2011 - 17:56
fonte
3

Entrambi i programmi sono rimasti bloccati in un ciclo molto efficiente scrivendo le modifiche che hanno causato fseventsd di avere molto lavoro o è un ciclo infinito che elabora una struttura dati non risolvibile su uno dei volumi montati.

Nel caso precedente - probabilmente anche i programmi come fseventer che leggono lo stesso flusso di dati si bloccherà - ora avrete due processi al 50% di utilizzo che cercano di elaborare una quantità infinita di dati. (Questo è un grande punto di dati se stai cercando di capire cosa non va.) È analogo a domande che chiedono perché syslogd sta prendendo tutta la CPU - di solito è un altro programma impazzito che causa molto lavoro.

Quando / se succede di nuovo - inizia a chiudere i programmi e prendi in considerazione la disconnessione. Saprai se l'elemento offendente è un processo a livello di sistema o un processo a livello di utente. fs_usage potrebbe essere utile per vedere quali programmi specifici sono pesanti per IO.

fsck da un avvio in modalità utente singolo è di solito richiesto se hai hard link circolari o altri shenanigans degenerati del file system che possono causare questo tipo di picco nell'attività.

    
risposta data 28.04.2011 - 19:26
fonte

Leggi altre domande sui tag