Esiste un modo per rintracciare il motivo per cui il processo 'fseventsd' fa funzionare la CPU?


11

Ho eseguito Mac OSX 10.6 e ho notato che un processo "fseventsd" richiedeva il 100% di CPU e 1,5 G 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 l'origine del porco di risorse? Accede ovunque? Un riavvio "risolto" il problema, ma sono sicuro che tornerà se non riesco a capire perché è iniziato in primo luogo.

Grazie in anticipo.


Hai mai trovato la fonte? Stiamo riscontrando lo stesso problema sul nostro server Snow Leopard. Potrei provare a riavviare, ma non posso farlo più tardi stasera.
Greg W,

Non ho avuto pop-up dal mio riavvio, (non) per fortuna, quindi ancora non conosco la fonte
DTest

Ho lo stesso problema. Il riavvio non aiuta. Dopo 20-30 minuti, fseventsd ricomincia a prendere il 99% di CPU. Il Macbook non tace più ...
Laurent K

Risposte:


7

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

Dall'articolo:

Il framework FSEvents si basa su un singolo processo daemon in esecuzione costante chiamato fseventsd che legge da / dev / fsevents e scrive gli eventi per registrare i file sul disco (memorizzati in una directory .fseventsd alla radice del volume a cui sono destinati gli eventi). Questo è tutto. Questa è la soluzione super tecnologica: basta scrivere gli eventi in un file di registro. Noioso, pragmatico, ma abbastanza efficace.

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


Spero che non sia Time Machine, poiché questo è disabilitato! Ad ogni modo, sto leggendo su fseventer, quindi grazie per il suggerimento.
DTest,

3

O un programma è stato bloccato in un ciclo molto efficiente per scrivere le modifiche che hanno causato fseventsdmolto lavoro o è un ciclo infinito stesso che elabora una struttura di dati irrisolvibile su uno dei volumi montati.

Nel caso precedente - probabilmente si bloccheranno anche programmi come fseventer che leggono lo stesso flusso di dati - ora avrai due processi con un utilizzo del 50% che prova a elaborare una quantità infinita di dati. (Questo è un ottimo punto dati se stai cercando di vedere cosa c'è che non va.) È analogo alle domande che chiedono perché syslogdsta prendendo tutta la CPU - di solito è qualche altro programma impazzito che causa molto lavoro.

Quando / se si verifica di nuovo - iniziare a chiudere i programmi e prendere in considerazione la disconnessione. Saprai se l'elemento offensivo è un processo a livello di sistema o un processo a livello di utente. fs_usagepotrebbe essere utile per vedere quali programmi specifici sono IO pesanti.

fsck da un avvio in modalità utente singolo è in genere necessario se si dispone di collegamenti fissi circolari o altri shenanigans degenerati del file system che possono causare questo tipo di picco nell'attività.


Sì, scusa se non ero chiaro, sicuramente non potevi aprire fseventer mentre la cacca colpiva proverbialmente il fan. Intendevo solo di più per darti un'idea del tipo di dati registrati e visualizzabili, come farebbe fs_usage.
ConstantineK,

Mi è piaciuto molto conoscere fseventer - sembra molto bello. Non ci sono errori - solo dati.
bmike

Wow, grazie per il suggerimento su "fs_usage". E sì, ho pensato che non fosse effettivamente il fseventsd a causare il carico, ma piuttosto un altro programma. Mi aspetto un loop da qualche parte. A parte questo, la macchina ha funzionato a carico normale per circa 24 ore e non è più successo.
DTest,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.