O que está causando toda a atividade do disco no OS X?

59

Ocasionalmente, o meu Macbook Pro fica mais lento à medida que o disco rígido se afasta infinitamente. A carga da CPU é baixa, mas os aplicativos e itens de menu demoram a responder. Existe um utilitário que pode me ajudar a determinar o que está acontecendo, como o número de bytes lidos / gravados ou arquivos abertos / fechados por processo ao longo do tempo?

um nerd pago
fonte
11
Especulando aqui, mas pode ser algo simples como mdsatualizar o índice do Spotlight.
4
9 vezes em cada 10 holofotes é o problema. Uma coisa que eu notei é que, se você tiver uma partição do bootcamp, inclua-a na lista negra dos holofotes, ou o mds sempre parecerá mastigá-la.
Bryan Schuetz
5
Obrigado pela sugestão sobre o Spotlight. Acabei de experimentar leituras de disco muito altas, joguei minha partição do Boot Camp na guia Privacidade nas preferências do Spotlight e imediatamente leituras planas de disco! Está me deixando louco há meses.
Tim Keating

Respostas:

61

De man iotop:

O iotop rastreia a E / S do disco por processo e imprime um relatório de resumo que é atualizado a cada intervalo.

Isso está medindo os eventos do disco que passaram pelos caches do sistema.

Como isso usa o DTrace, apenas o usuário raiz ou usuários com o privilégio dtrace_kernel podem executar este comando.

Pode não ser exatamente o que você deseja - mas é um script ksh que envolve o dtrace, portanto você deve descobrir como fazer com que o dtrace faça o que você precisa, se o iotop não o tratar por padrão.

No entanto, algo como iotop -C 5 12deve lhe dar algo para começar: ele produzirá 12 amostras, a cada 5 segundos.

James Polley
fonte
2
Muito bom. iotop -C 5 12é uma boa maneira de obter um resumo do que está acontecendo.
um nerd pago
51

Você também pode usar fs_usagepara obter uma conta detalhada de quais aplicativos estão atingindo o disco.

AlBlue
fonte
11
Oooh, isso é quente. fs_usagetambém permite filtrar as atividades da rede e do sistema de arquivos.
um nerd pago
2

Eu sempre notei isso nas manhãs de sábado, e acabou sendo locate, o que atualiza seu banco de dados às 3:15 da manhã de sexta-feira.

Tentei desabilitar sua launchdconfiguração (in /System/Library/LaunchDaemons/com.apple.locate.plist), mas ela ainda funcionava de qualquer maneira, então apenas /usr/libexec/locate.updatedbsaí do caminho. Problema ... mitigado.

Brandan
fonte
1

Pode ser a paginação do SO na memória virtual em vez de algo específico do aplicativo. Você pode tentar sair de aplicativos usados ​​com menos frequência ou, pelo menos, reiniciar alguns aplicativos que gostam de criar caches na memória ao longo do tempo (por exemplo, Safari). Confira as várias estatísticas de memória por processo com o Activity Monitor para encontrar possíveis culpados. Se sair de alguns aplicativos com uso intenso de memória parece aliviar temporariamente o problema, tente adicionar RAM.

Se a atividade do disco não estiver relacionada à paginação, você poderá usá fs_usage-lo para rastrear de volta a um ou mais processos específicos.

Chris Johnsen
fonte