Eu estava usando meu MBP (com 16 GB de RAM) como de costume e, fora do azul, tenho este pop-up que:
Seu sistema ficou sem memória do aplicativo.
Para evitar problemas com o seu computador, feche os aplicativos que você não está usando.
Obviamente fechei alguns que pude, mas não ajudou.
Depois de checar a memória, parece que a tarefa do kernel consumiu 7 GB e 22,36 GB de memória swap foram usadas, totalizando 23 GB (o que obviamente era o caso). No entanto, eu ainda tenho 20 GB de espaço livre no meu SDD.
O Activity Monitor não ajudou muito enquanto meu OS X estava indo para a destruição.
Minhas top
estatísticas antes do congelamento do meu kernel:
Processes: 344 total, 2 running, 5 stuck, 337 sleeping, 2580 threads 19:23:56
Load Avg: 1.56, 1.62, 2.09 CPU usage: 3.51% user, 8.47% sys, 88.1% idle SharedLibs: 46M resident, 0B data, 6572K linkedit. MemRegions: 757970 total, 2139M resident, 56M private, 907M shared.
PhysMem: 9410M used (6198M wired), 556M unused. VM: 1155G vsize, 1311M framework vsize, 112872658(320) swapins, 122668389(0) swapouts. Networks: packets: 299419263/363G in, 142126838/14G out.
Disks: 58970173/1079G read, 20012389/1120G written.
No final, meu OS X congelou e tive que fazer uma reinicialização completa, reparar meu SDD no modo de recuperação e corrigi-lo posteriormente (recuperando trabalho perdido, corrigindo conflitos de aplicativos, verificando minha pasta perdida + encontrada, as guias do Chrome / Terminal desaparecidas, dor de cabeça etc.) )
Minha pergunta é: como verifico o alto uso de memória da tarefa do kernel ou como lidar adequadamente com esse tipo de situação? Tentei coletar amostras com o Activity Monitor, mas está acinzentado.
Detalhes do meu MBR: Intel Core i7 de 2,3 GHz (final de 2013) com 16 GB de RAM. OS X: 10.9.5
zprint -t
(Leão) ousudo zprint -t
(Leão da montanha e posterior).Respostas:
Há muitas coisas que dão errado com o alto uso de tarefas do kernel. Geralmente, isso está relacionado a um processo defeituoso ou pesado que utiliza demais os recursos do sistema (como indexação de armazenamento, execução de VMs, muitas guias no navegador da web ou outros processos em segundo plano).
Aqui estão alguns métodos que ajudam a investigar problemas de uso do kernel do OS X:
Métodos básicos
Console.app
e verifique ' Todas as mensagens ' para ver se algo incomum está acontecendo no momento.Use o Monitor de atividades para ler a memória do sistema e determinar a quantidade de CPU, RAM e disco em uso.
Alternativamente executar
top
no Terminal e segure Spacepara refrescar - mais fácil encontrar a causa do problema ( swapins / swapouts / discos ?).Executar
sudo fs_usage
em Terminal para relatar chamadas do sistema e falhas de página relacionadas com sistema de arquivos atividade em tempo real (eu acho que essa é a melhor opção de todos os outros). Então aperte Control- Cpara pará-lo.Ação: considere matar aplicativos que aparecem com frequência na lista, mas você não os está usando.
Saiba mais em: Como depuro um processo "kernel_task" fora de controle?
Corra
sudo syscallbypid.d
(ousyscallbyproc.d
), espere um pouco, aperte Control- C. Agora verifique qual processo gerou o maior número de chamadas do sistema nesse período (última coluna) e se você o reconhecer, considere eliminá-lo. Caso contrário, pesquise no Google e saiba mais.Métodos avançados
Use o
sysdiagnose
comando (pode ser acionado pressionando Shift- Control- ⌥- ⌘- .(ponto) para reunir rapidamente informações de diagnóstico em todo o sistema, úteis na investigação de problemas de memória / desempenho do sistema (aparecerão em/var/tmp
) por você ou pelo pessoal da Apple. Durante a análise, tente não qualquer coisa, quando terminar - considere descompactar o arquivo gerado e analisar os logs.Consulte: Como você obtém arquivos de diagnóstico do sistema no OS X?
Execute
footprint
para reunir informações detalhadas de memória em um nível de tipo por região da VM e bytes trocados:Versão antiga:
Use
spindump
para criar um perfil do sistema inteiro, ele irá gerar/tmp/spindump.txt
arquivos (incluindo o kernel e suas extensões).Use
vm_stat
para mostrar estatísticas da memória virtual. Por exemploUse
zprint
para verificar informações sobre o uso do kernel, é possível:Ele mostrará as zonas de kernel mais desgastantes.
Use
newproc.d
para bisbilhotar novos processos à medida que são executados,creatbyproc.d
para arquivos:Nota: No OS X mais recente (10.11 ou superior), isso pode não funcionar quando a proteção de integridade está ativada (marque por
csrutil status
).Try
sar
- repórter de atividade do sistema que pode amostrar e relatar vários contadores estatísticos cumulativos mantidos pelo sistema operacional.Para ferramentas de depuração mais úteis, verifique os scripts dtrace (
grep dtrace /usr/bin/*
). Se você conhece o processo defeituoso que está causando o problema, pode usádtruss
-lo para depurá-lo.Ações
Aqui estão algumas sugestões que podem ajudá-lo com os problemas do sistema operacional.
Libere memória inativa. Para fazer isso, você deve liberar o cache primeiro e forçar a limpeza do cache de disco:
Sua função é basicamente encerrar todas as operações pendentes de E / S que estão usando cache de disco e, em seguida, liberar todo o cache ocupado, portanto, deve liberar espaço em disco para facilitar a paginação e a troca da memória principal. É seguro usar, pois não afeta a memória anônima que foi alocada por malloc, vm_allocate etc.
Use alguns aplicativos de terceiros para limpar a memória usada em excesso, como iBoostUp , SystemPal , etc.
Você também pode desativar o Spotlight temporário:
E considere outros serviços:
Saia do seu navegador da web e verifique se isso ajuda. Por exemplo, o uso do Chrome é muito engenhoso, especialmente quando há algum processamento front-end em segundo plano (por exemplo, Javascript) ou animações semelhantes a anúncios estão constantemente processando o conteúdo.
fonte
kernel_task
problema de uso de alta memória e CPU.Eu tive um problema muito semelhante depois de substituir minha tela LCD em um iMac de final de 2012. O ventilador estava rodando em alta RPM e tinha alto uso de Kernel_task da CPU. Limitei-o a um sensor de temperatura. Você deve passar da tela LCD antiga para a nova tela de substituição. se você esquecer de fazê-lo, a velocidade da CPU e o Kernel_task serão afetados, diminuindo a velocidade do seu sistema.
fonte