É 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)