Existe uma maneira de rastrear o motivo pelo qual o processo 'fseventsd' monopoliza a CPU?

11

Executei o Mac OSX 10.6 e notei que um processo 'fseventsd' consumia 100% da CPU e 1,5G de RAM. Fazendo uma pesquisa no google, descobri que isso poderia estar vinculado ao Time Machine. No entanto, não executo o Time Machine neste computador.

Existe uma maneira de rastrear a fonte do recurso porco? Registra em qualquer lugar? Uma reinicialização 'corrigiu' o problema, mas tenho certeza de que ele voltará se não conseguir descobrir por que ele começou.

Desde já, obrigado.

DTest
fonte
Você já encontrou a fonte? Estamos enfrentando o mesmo problema em nosso servidor snow leopard. Posso tentar uma reinicialização, mas não posso fazer isso até mais tarde esta noite.
Greg W
Eu não tive que aparecer desde a minha reinicialização, (in) felizmente, então eu ainda não sei a fonte
dtest
Eu tenho o mesmo problema. Reiniciar não ajuda. Após 20 a 30 minutos, o fseventsd inicia novamente para obter 99% da CPU. O Macbook não é silenciosa mais ...
Laurent K

Respostas:

7

fseventd é o processo de log de eventos do sistema de arquivos, você pode ler muito sobre isso na revisão do ars technica do Mac OS X Leopard. Você pode usar programas como o fseventer para ver o mesmo tipo de saída que vê.

Do artigo:

A estrutura do FSEvents depende de um único processo daemon em execução constante chamado fseventsd que lê em / dev / fsevents e grava os eventos nos arquivos de log em disco (armazenados em um diretório .fseventsd na raiz do volume para o qual os eventos são). É isso aí. Essa é a solução de alta tecnologia: basta escrever os eventos em um arquivo de log. Chato, pragmático, mas bastante eficaz.

Você pode verificar esse log, embora eu não saiba o quão útil será para você. Não ficaria surpreso ao ver o Time Machine, que lida com muitos arquivos e, às vezes, com muitos arquivos pequenos, possivelmente causando alguns problemas com os fsevents.

ConstantineK
fonte
Espero que não seja o Time Machine, pois isso está desativado! De qualquer forma, estou lendo no fseventer, então obrigado pela sugestão.
dtest
3

Um dos programas ficou preso em alterações de gravação de loop muito eficientes que causaram fseventsdmuito trabalho ou é um loop infinito processando uma estrutura de dados não resolvível em um dos volumes montados.

No caso anterior - programas como o fseventer que lêem o mesmo fluxo de dados provavelmente também serão interrompidos - agora você terá dois processos com 50% de utilização tentando processar uma quantidade infinita de dados. (Esse é um ótimo ponto de dados, se você estiver olhando para ver o que está errado.) É análogo a perguntas que perguntam por que syslogdestá consumindo toda a CPU - geralmente são outros programas que ficaram malucos, causando muito trabalho.

Quando / se acontecer novamente - comece a sair dos programas e considere desconectar-se. Você saberá se o item incorreto é um processo no nível do sistema ou no nível do usuário. fs_usagepode ser útil ver quais programas específicos são pesados ​​de E / S.

fsck de uma inicialização para o modo de usuário único é geralmente necessário se você tiver links físicos circulares ou outras desvantagens do sistema de arquivos degenerados que podem causar esse tipo de pico de atividade.

bmike
fonte
Sim, desculpe se eu não estava claro, você definitivamente não pôde abrir o fseventer enquanto o cocô proverbialmente atingiu o ventilador. Eu só quis dizer mais sobre o tipo de dados registrados e visíveis, como fs_usage faria.
ConstantineK
Adorei aprender sobre o fseventer - está muito bonito. Não há falha - apenas dados.
bmike
Uau, obrigado pela dica em 'fs_usage'. E sim, achei que não estava realmente causando o carregamento, mas sim outro programa. Espero um loop em algum lugar. Como um aparte, a máquina está executando a carga normal por 24 horas ou mais, e isso não aconteceu novamente.
dtest