Leopard Macbook muito lento depois de acordar do sono / cron?

3

Problema:

  • Ocasionalmente, meu Macbook fica muito lento depois de acordar do sono
  • Eu abro o Activity Monitor e percebo que alguns processos como makewhatis estão recebendo 100% da CPU
  • Eu mato o processo [es] e tudo funciona bem de novo

Perguntas:

  • Meu palpite é que esses processos são trabalhos agendados. Isso está correto?
  • Está tudo bem matá-los?
  • Existe uma maneira de fazer com que esse problema não aconteça?
  • Isso é corrigido no Snow Leopard?

Estou usando o Leopard (10.5.8) em um MacBook5,1

    
por yairchu 28.04.2010 / 13:36

2 respostas

1

É quase certo que você esteja vendo os efeitos de launchd iniciando os trabalhos de manutenção do sistema de rotina periodic daily , periodic weekly e periodic monthly , que fazem coisas como rolar os logs e excluir arquivos temporários não usados. Esses trabalhos geralmente são executados às 3h da manhã, mas se a sua máquina estava adormecida nesse momento, launchd os inicia na próxima vez que sua máquina for ativada.

O trabalho que provavelmente executa mais tempo e retarda mais o sistema com muita E / S de disco é o trabalho de makewhatis semanal (3AM sábado de manhã), que atualiza o banco de dados de nomes de arquivo usado pelo tradicional Unix locate comando (sorta como um mds old-school / Spotlight). Você pode desabilitar isso em /etc/defaults/periodic.conf alterando a linha

weekly_whatis_enable="YES"

para

weekly_whatis_enable="NO"

Se você tiver adicionado ou modificado um grande número de arquivos em seu sistema, na próxima vez em que makewhatis for executado, poderá levar um longo tempo. Se você matá-lo todas as vezes e nunca terminar, então na próxima semana terá que começar tudo de novo. Eu geralmente não sou incomodado por makewhatis , mesmo que meu sistema não seja rápido, especialmente meu disco. A única vez que eu realmente percebo é quando adiciono um grande número de arquivos ao meu sistema, como depois de verificar toda a árvore fonte do sistema operacional NetBSD.

Se makewhatis e os outros periodic trabalhos não se tornarem todo o seu problema, esteja ciente de que launchd fornece o serviço adiar para a próxima ativação para qualquer trabalho launchd que usa a chave StartCalendarInterval . Aqui está uma maneira de ver rapidamente quais tarefas do launchd em seu sistema usam essa chave:

grep -r StartCalendarInterval {/System,,~}/Library/Launch{Daemons,Agents}/

(NB: Eu acho que as chaves nesta declaração podem ser um bash -ism)

    
por 28.04.2010 / 19:46
1

Para ver se são tarefas agendadas ... faça um

crontab -l 

no terminal

Você provavelmente irá receber

crontab: no crontab for (user)

a maioria dos trabalhos agendados é gerenciada pelo launchd em 10.5 e acima.

Para verificar trabalhos agendados que são controlados pelo launchd, faça um

sudo launchctl list 

Se você vir algum dos trabalhos retornando um 1 , isso é uma indicação de que está ocorrendo um problema.

    
por 28.04.2010 / 13:44

Tags