O Mac OS X Mavericks congela, para de responder quando a memória está acabando

9

Isso acontece todos os dias e os sintomas são estranhos para dizer o mínimo. O computador ainda responde em algum sentido; Posso mover o mouse, os botões de volume nos meus fones de ouvido funcionam. No entanto, o teclado não faz nada , nem o clique. Nenhum estado de foco é apresentado. É como se o ponteiro do mouse não estivesse realmente movido.

Posso usar o computador se efetuar login de outro computador usando SSH ou usando um controle remoto do meu telefone (uso o Rowmote.) Mas é muito lento - mas responde.

Nesse estado, eu posso fazer muito poucas coisas. Iniciar novos aplicativos é uma roleta, por exemplo, eu poderia iniciar o Activity Monitor (nada de estranho a ser visto), mas iniciar o Console depois disso não foi possível. O fechamento de aplicativos deu resultados estranhos até que finalmente parou de responder ao controle remoto. Curiosamente, o aplicativo remoto não achou que havia perdido a conexão e, de alguma forma, ainda recebeu e reconheceu os comandos remotos.

Aqui está a /var/log/system.logsaída relevante a partir do momento em que aconteceu:

Jan  3 10:39:19 knifen.local WindowServer[119]: CGXCreateShmem : mach_make_memory_entry(268453900: unknown error code) : Cannot map memory
Jan  3 10:39:19 knifen.local WindowServer[119]: _CGXCreateWindowInline: Creation failure 1007
Jan  3 10:39:19 knifen.local Dock[15204]: CGSNewWindowWithOpaqueShape: Cannot create window
Jan  3 10:39:19 knifen.local WindowServer[119]: CGXCreateShmem : mach_make_memory_entry(268453900: unknown error code) : Cannot map memory
Jan  3 10:39:19 knifen.local WindowServer[119]: _CGXCreateWindowInline: Creation failure 1007
Jan  3 10:39:19 knifen.local Dock[15204]: CGSNewWindowWithOpaqueShape: Cannot create window
Jan  3 10:39:28 knifen.local WindowServer[119]: BUG in libdispatch: 13A603 - 2930 - 0x1000480c
Jan  3 10:39:51 knifen kernel[0]: IOHIDSystem: postEvent LLEventQueue overflow.
Jan  3 10:40:50 knifen.local Spotify[13941]: Got disconnected: Error Domain=GCDAsyncSocketErrorDomain Code=4 "Read operation timed out" UserInfo=0xfa075f0 {NSLocalizedDescription=Read operation timed out}
Jan  3 10:40:55 knifen kernel[0]: IOHIDSystem: postEvent LLEventQueue overflow.
Jan  3 10:41:50 knifen.local hidd[95]: IOHIDEventQueue unable to get policy for event of type 11. (e00002e8)
Jan  3 10:41:56 --- last message repeated 113 times ---

Eu realmente não estou querendo saber nada aqui, se você tiver dicas, acho que seria bom. Parece ser uma engenharia ruim da parte da Apple.

lericson
fonte

Respostas:

4

Quando o sistema operacional fica sem espaço em disco, coisas ruins acontecem por design, em um esforço para tentar manter as partes críticas do sistema on-line por tempo suficiente para permitir que uma falha controlada aconteça e potencialmente permitir que aplicativos com alterações sejam salvas até a atividade de limpeza. começa.

É muito menos provável que o Mavericks aloque a quantidade total de RAM para / var / db / sleepimage, para que as pessoas acostumadas a ter esse espaço pré-alocado possam se surpreender quando o sistema operacional precisar de um pouco de espaço para aumentar a imagem do sono, se as condições operacionais o exigirem.

A dica principal seria preservar vários gigabytes de espaço livre no volume inicializável quando você tiver uma carga de trabalho que sobrecarregue o sistema de memória virtual e execute com a pressão da memória em vermelho.

Aqui estão as minhas recomendações:

  • Em que escala ou medida a "pressão de memória" de Mavericks e Yosemite se adere? possui algumas boas informações sobre o monitoramento e a pressão da memória sob comando
  • inicialize seu sistema, efetue login em um usuário, feche todos os aplicativos
  • abra o monitor de atividades e observe / grave a tela de memória
  • coloque a máquina em repouso e acorde 30 segundos depois
  • execute sudo du -sm /var/vm/*e observe o tamanho do seu arquivo de imagem de suspensão e se foram criados arquivos de troca no disco.

O ideal é ter um espaço livre em disco ideal para corresponder à sua área total de memória se você pretende executar programas que levam o sistema de memória virtual ao território amarelo devido à pressão da memória. Você provavelmente não precisará de todo esse espaço apenas para o sistema operacional, mas especialmente se estiver recebendo erros de memória mach como os listados, a carga de trabalho que você está executando precisa de um pouco mais de espaço livre para crescer do que o permitido.

Além disso, se você achar que o ajuste do sistema está incorreto, poderá facilmente registrar um relatório de erro executando sysdiagnoseuma inicialização limpa, conforme descrito acima, mais uma vez quando o sistema estiver executando corretamente a carga de trabalho pretendida e uma última sydiagnoseexecução após causar a memória alocações para começar a quebrar o sistema. É possível que haja opções melhores que a Apple poderia ter feito, mas também pode ser que seu software esteja com erros / com vazamento de memória e o sistema esteja com defeito conforme planejado quando os recursos finitos esgotados. Sem mais detalhes, é difícil dizer qual é o caso.

bmike
fonte
2

"shmem" é memória compartilhada e o OS X está falhando ao alocar memória compartilhada. Portanto, parece que o computador ficou sem memória, tanto a RAM quanto a memória do disco rígido. É esse o caso? No momento do congelamento, parecia haver cerca de 1 GB de espaço restante.

  • Libere espaço em disco excluindo arquivos
  • Libere memória fechando aplicativos

Nesse caso específico, os logs mais tarde indicaram que o Spotlight estava tentando indexar um volume de pacotes esparsos montado, resultando na falta de espaço no disco de backup.

lericson
fonte