erro de "falta de memória" ao tentar carregar sites específicos (não estou sem memória RAM)

15

ATUALIZAÇÃO: A solução de Rich (com a marca de seleção) resolveu meu problema! Também postei uma resposta com uma solução alternativa que pode ajudar se a solução de Rich não funcionar para você. A resposta que recebeu a recompensa foi a melhor na época, mas não possui uma solução real (embora tenha ajudado na solução de problemas).


Estou tendo um problema em que meu computador (Macbook Pro, 8 GB de RAM, OS 10.8) não tenta carregar determinados sites. Nada o corrige, exceto a reinicialização. Isso ocorre quando nada mais está obviamente errado com o meu computador ou com a conexão à Internet e quando outros sites são carregados sem problemas.

Quando isso ocorre, eis os erros que eu recebo:

  • Chrome :Error 13 (net::ERR_OUT_OF_MEMORY)
  • Safari :"The error is: 'The operation couldn't be completed. Cannot allocate memory.' (NSPOSIXErrorDomain:12)"
  • Firefox : Nenhuma resposta depois de inserir o URL e pressionar Enter (nenhuma mensagem de erro, nenhum acelerador para indicar que ele está carregando ou tentando entrar em contato com o site).
  • ping :

    PING google.com (74.125.224.135): 56 data bytes
    ping: sendto: Cannot allocate memory
    ping: sendto: Cannot allocate memory
    Request timeout for icmp_seq 0
    ping: sendto: Cannot allocate memory
    Request timeout for icmp_seq 1
    

(depois do qual cancelei)

A primeira vez que notei isso, ocorreu em um ou dois sites que tentei visitar. Eu ainda era capaz de usar o facebook e o google. Mais tarde, o erro se estendeu ao facebook e ao google também. Após a reinicialização, esses sites tornaram-se acessíveis novamente, mas mais tarde não consegui acessar outros sites (stackexchange.com, surveygizmo.com).

Algumas outras notas:

  • Posso confirmar que isso acontece em várias redes sem fio e VPNs.
  • No momento em que isso estava acontecendo, eu tinha 2 GB de RAM "inativos" e 500 MB "livres" de um total de 8 GB, portanto, na verdade não estou com falta de memória. Outros sites e aplicativos estão respondendo rapidamente e não há sinal de troca excessiva.
  • A resposta do ping parece sugerir que o problema não afeta o DNS (embora o endereço IP possa ter sido armazenado em cache em algum lugar).

Eu encontrei apenas uma outra referência a esse problema, neste tópico de suporte da Apple . Nenhuma solução foi encontrada, exceto a reinicialização.

NOTA: Isso não é um problema com a falta de RAM

O Activity Monitor mostra muita memória livre / inativa. Não há uma quantidade excessiva de paginação em andamento. Outros sites carregam sem problemas. Pode haver algum outro tipo de erro de alocação de memória, mas não consigo imaginar que uma escassez antiga de RAM desative certos sites específicos, sem nenhum outro impacto no desempenho.

octern
fonte
Parece-me que você está ficando sem memória RAM em geral? Veja onde (que processos) sua memória está indo.
Gerry
Obrigado, mas não acho que esse seja o problema. Não há sinal de atrasos ou trocas quando isso acontece; isso imediatamente me dá o erro. Outros programas e guias do navegador continuam a responder sem demora. Além disso, 2.5G de RAM disponível é bastante (a menos que algo esteja muito quebrado e não consiga realocar a memória inativa).
out
Bem, possivelmente algo está quebrado, mas não é um problema de navegação, mas geralmente relacionado ao seu gerenciamento de memória.
Gerry
Depois de um intervalo, o problema está de volta. Dessa vez, estava me impedindo de acessar qualquer um dos meus arquivos de trabalho, então eu realmente preciso de uma correção! Recompensa adicionada.
octern
2
É improvável que esse problema esteja relacionado à memória do sistema, mas aos buffers de rede. Por favor, mostre-nos a saída de netstat -m. Quais VPN (s) você está usando? Você vê o problema quando não está usando uma VPN?
precisa saber é o seguinte

Respostas:

6

Não consegui recuperar minha rede desativando e reativando o TCP / IP ou o Wi-Fi. Parece que, no meu caso, o computador dormiu com uma conexão VPN Juniper e, quando voltou a funcionar, a conexão expirou e as rotas não foram limpas. Para mim, eu tinha dois computadores, um funcionando e outro não, e, portanto, consegui identificar o problema após a execução netstat -rn.

No computador que não estava funcionando, eu tinha um destino 192.168.43.1 com um gateway do link # 5. No computador em que estava funcionando, o gateway para esse destino era o endereço mac do roteador sem fio, então removi essa rota com:

sudo route delete -host 192.168.43.1

Depois disso, eu poderia executar ping no meu roteador sem fio e também voltar à Internet.

Algumas pessoas alegaram que ir para Configurações → Rede → Wi-Fi → Avançado → Proxies e ativar a Detecção automática de proxy funcionou para eles. Não foi possível verificar isso porque minha conexão foi corrigida excluindo a rota 'inoperante'.

Rico
fonte
Isso funciona! E, diferentemente da minha solução, ele realmente corrige o problema subjacente e ajuda a explicar o que está acontecendo. Obrigado!
Oct
Em retrospecto, parece que o cliente Juniper também foi a causa dos meus problemas. Agora, posso relatar que esse fenômeno não se repetiu desde que minha organização parou de usar o Juniper e mudou para a interface VPN nativa do OS X.
octern
4

Este não é um problema relacionado à RAM nem ao disco.

Este é um problema do kernel devido a um mau comportamento de uma das suas interfaces de rede. Aqui estão alguns comandos para começar a localizar a origem desse problema quando ele ocorrer:

  • netstat -mm fornecerá informações detalhadas sobre o uso do seu conjunto de buffers;
  • netstat -I en0se sua interface de rede real em uso for en0(Ethernet) mostrará erros reais (Ierrs, Oerrs);
  • netstat -r mostrará se suas rotas para o resto do mundo estão corretas.

Esse mau comportamento pode ser a consequência de um ataque de rede automático ou direcionado. Se você suspeita que esteja enfrentando um caso assim, aqui está uma maneira de olhar a verdade bem nos olhos:

  • deixar qualquer aplicativo de rede ( Safari, Mail, ssh...) de modo a limitar o seu próprio ruído conhecido (na sua interface de rede);
  • abra ae Terminaldigite: /usr/bin/sudo tcpdump -i en0(se sua interface for en0== Ethernet);
    • se a saída tcpdumppermanecer silenciosa, você não for atacado, basta sair desse aplicativo privilegiado digitando control-C
    • se a saída de tcpdumpestiver inundando, você será atacado. Se você estiver nesse caso, publique um extrato desta saída e das 3 saídas acima dos comandos.
dan
fonte
Ainda não consegui testar isso, mas vou tentar quando puder. Eu concedi a recompensa para impedir que ela expire. Obrigado por suas sugestões.
octern
Estou muito interessado nos seus testes a seguir, porque tive o mesmo tipo de problema difícil de reproduzir ... e tenho que matá-lo!
dan
3

Isso deve ser bastante fácil de rastrear com a ferramenta sysdiagnose.

Quando você obtiver erros de cunha e cuspir no navegador, abra o terminal e adicione o nome do navegador como argumento ao script: (portanto, se o Safari estiver travando)

 sysdiagnose Safari

Esta ferramenta irá chamar sudo que você precise digitar sua senha (ela não será exibida na tela, digite-a lentamente se você for iniciante no sudo ou propenso a digitar sua senha incorretamente, caso não a veja sendo digitada).

Nesse ponto, você terá um enorme arquivo tar.gz de diagnóstico do sistema armazenado em / private / var / tmp que pode ser copiado para a área de trabalho e examinado. Será como procurar uma agulha no palheiro - mas você pode ter certeza de que algum recurso está sendo preenchido se uma reinicialização fizer as coisas funcionarem até que qualquer bug ou recurso seja acionado / usado novamente.

bmike
fonte
Obrigado pelo conselho! Eu tive que reiniciar para concluir um trabalho urgente, para que o problema não esteja ativo no momento. Não deixe de tentar sua sugestão e enviar uma resposta na próxima vez que ela surgir.
octern
Parece bom - você também pode enviar um relatório de bug à Apple se não conseguir diagnosticar o problema. Eles provavelmente não responderão para ajudá-lo a solucionar o problema, mas poderão corrigir o problema subjacente com os dados que você enviar sobre a aparência do sistema quando você conseguir quebrá-lo novamente.
bmike
2

Veja a sua tabela de roteamento (executada netstat -rnem um terminal). Esse problema ainda persiste após uma reinicialização.

Resolvi problemas semelhantes ao desativar o TCP / IP ( Preferências do sistema »Rede» Wi-Fi »Avançado» TCP / IP ) e reativar o TCP / IP para a interface Wifi / Ethernet.

VincentM
fonte
1

É improvável que esse problema esteja relacionado à memória do sistema, mas aos buffers de rede. Por favor, mostre-nos a saída do netstat -m.

Qual software VPN você está usando? Você vê o problema quando não está usando uma VPN?

AndrewNimmo
fonte
0

Algumas sugestões, embora você já as tenha experimentado:

  1. Limpe os caches em todos os lugares ... execute o Cocktail ou o MacPilot para destruí-los.
  2. Limpe a Internet Plug-inspasta na Librarypasta principal . Todo navegador irá usá-los.
  3. Eu também sugeriria criar uma nova conta de usuário nova e testá-la lá, apenas para ver o que acontece.
Pixelwiz
fonte
0

Meu amigo já enfrentou um problema semelhante com o Google Chrome, que puxou a RAM dessa maneira. Você pode olhar para quais programas estão usando quanta RAM quando esse problema ocorre com o Activity Monitor. Se houver uma suboperação do Google Chrome, tente reinstalá-lo.

cbbcbail
fonte
0

Após muita experimentação cega, encontrei uma solução! Se eu criar manualmente uma entrada na tabela de roteamento para o bloco IP que não está sendo carregado, isso resolverá o problema.

Etapa 1: encontre o endereço IP do site que você deseja carregar.

Você pode fazer isso usando ping,, digou nslookup(consulte esta pergunta para detalhes).

Etapa 2: encontre o endereço IP do seu gateway

Você pode encontrar isso no painel de controle da rede, em ifconfigou executando netstat -rne anotando o endereço IP ao lado da entrada "padrão".

Etapa 3: criar uma entrada da tabela de roteamento para o endereço IP ou bloco afetado

Use o comando sudo route add [affected IP address] [gateway IP address]

Se, como eu, você tiver esse problema com blocos IP inteiros de uma só vez, poderá inserir o bloco / 8 inteiro. Por exemplo, se o endereço do site que você deseja acessar for 173.231.155.34, você poderá inserirsudo route add 173.0.0.0/8 [gateway IP address]

Esta é uma solução muito ruim. Você precisará inserir novamente todas essas manualmente se mudar para uma rede com um endereço de gateway diferente ou se reiniciar. E ainda não explica por que isso estava acontecendo em primeiro lugar. Mas ele me deixou usar meu computador, quando anteriormente eu estava totalmente mangueira.

octern
fonte