Por que recebo com frequência o erro “Não é possível alocar memória”?

28

Estou usando o Ubuntu 12.10 com o Gnome-Classic. Eu estou recebendo esse erro com freqüência e com quase todos os programas, grandes e pequenos. Quando tento abri-los, eles não iniciam e, em vez disso, recebo uma mensagem de erro que diz Could not launch 'Program' - Failed to fork child process (Cannot allocate memory) . Isso não foi um problema até as últimas semanas.

Eu não consigo discernir nenhuma semelhança entre os programas que causam esse erro. Parece ser mais uma questão de tempo. Depois que meu computador está funcionando há algum tempo, de um dia a alguns dias, não consigo iniciar nenhum programa novo.

A única maneira de evitar esse erro é reinicializar o computador.

Por que estou recebendo esse erro e o que eu faço para impedir que isso aconteça?

Eu corri o memtest disponível no menu GRUB, e ele não reporta nenhum erro, então eu não acho que isso seja uma falha de hardware.

Também corri sudo apt-get check e não foram encontrados erros.

Aqui está uma saída de linha de comando solicitada:

$ free -m
             total       used       free     shared    buffers     cached
Mem:          3945       3753        191          0        181        475
-/+ buffers/cache:       3096        848
Swap:         3813         60       3753

$ swapon -s
Filename                Type        Size    Used    Priority
/dev/sda6                               partition   3905532 61648   -1

$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 31421
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 31421
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

Esta é a saída de ps --sort -rss -eo rss,pid,command | head depois que o erro começa a aparecer:

$ ps --sort -rss -eo rss,pid,command | head
  RSS   PID COMMAND
1963400 2953 gnome-panel
155496 4029 banshee /usr/lib/banshee/Banshee.exe --redirect-log --play-enqueued
104944 15765 /opt/google/chrome/chrome --type=renderer --lang=en-US --force-fieldtrials=ForceCompositingMode/disable/GlobalSdch/global_enable_sdch/InfiniteCache/No/OmniboxDisallowInlineHQP/Standard/OmniboxHUPCreateShorterMatch/Standard/OmniboxHUPCullRedirects/Standard/OmniboxSearchSuggestTrialStarted2012Q4/2/OneClickSignIn/Standard/Prerender/PrerenderEnabled/SBInterstitial/V2/SpdyCwnd/cwndMin10/SpeculativePrefetching/Disabled/Test0PercentDefault/group_01/UMA-Dynamic-Binary-Uniformity-Trial/default/UMA-Session-Randomized-Uniformity-Trial-5-Percent/default/UMA-Uniformity-Trial-1-Percent/group_09/UMA-Uniformity-Trial-10-Percent/group_08/UMA-Uniformity-Trial-20-Percent/group_03/UMA-Uniformity-Trial-5-Percent/group_06/UMA-Uniformity-Trial-50-Percent/group_01/WarmSocketImpact/last_accessed_socket/ --enable-crash-reporter=ECE9000094D279FD3B14B35A74BF72CC,Ubuntu 12.10 --renderer-print-preview --disable-accelerated-2d-canvas --disable-accelerated-video-decode --channel=15654.5.89177240
78164 15654 /opt/google/chrome/chrome       
74912 19890 /usr/bin/python /usr/share/oneconf/oneconf-service
65476 12419 /usr/bin/perl /usr/bin/shutter
61096 19626 /usr/bin/python3.2 /usr/sbin/aptd
57832 15708 /opt/google/chrome/chrome --type=renderer --lang=en-US --force-fieldtrials=ForceCompositingMode/disable/GlobalSdch/global_enable_sdch/InfiniteCache/No/OmniboxDisallowInlineHQP/Standard/OmniboxHUPCreateShorterMatch/Standard/OmniboxHUPCullRedirects/Standard/OmniboxSearchSuggestTrialStarted2012Q4/2/OneClickSignIn/Standard/Prerender/PrerenderEnabled/SBInterstitial/V2/SpdyCwnd/cwndMin10/SpeculativePrefetching/Disabled/Test0PercentDefault/group_01/UMA-Dynamic-Binary-Uniformity-Trial/default/UMA-Session-Randomized-Uniformity-Trial-5-Percent/default/UMA-Uniformity-Trial-1-Percent/group_09/UMA-Uniformity-Trial-10-Percent/group_08/UMA-Uniformity-Trial-20-Percent/group_03/UMA-Uniformity-Trial-5-Percent/group_06/UMA-Uniformity-Trial-50-Percent/group_01/WarmSocketImpact/last_accessed_socket/ --enable-crash-reporter=ECE9000094D279FD3B14B35A74BF72CC,Ubuntu 12.10 --extension-process --renderer-print-preview --disable-accelerated-2d-canvas --disable-accelerated-video-decode --channel=15654.2.1555888673
42108  3030 /var/lib/dropbox/.dropbox-dist/dropbox

Com base nas sugestões nos comentários e respostas, parece possível que o problema esteja no Painel do Gnome ou em seus applets. Aqui estão os applets que eu tenho em execução:

Os applets são Indicator Applet 12.10.1 , System Monitor 3.5.92 e uma "Área de notificação". e "data e hora", nenhum dos quais eu posso acessar o número da versão para.

Aqui está mais alguma saída de linha de comando solicitada:

$ df -h
Filesystem                             Size  Used Avail Use% Mounted on
/dev/sda5                               19G   12G  6.4G  64% /
udev                                   2.0G  4.0K  2.0G   1% /dev
tmpfs                                  790M  1.1M  789M   1% /run
none                                   5.0M     0  5.0M   0% /run/lock
none                                   2.0G   84K  2.0G   1% /run/shm
none                                   100M     0  100M   0% /run/user
/dev/sda7                              384G  306G   59G  84% /home
mythbuntu@192.168.0.4:/home/mythbuntu  437G  360G   55G  87% /home/dave/Mythbuntu
$ sudo du -csh /var/log
15M /var/log
15M total
    
por Questioner 10.02.2013 / 16:29

4 respostas

3

Depois de experimentar a ativação e a desativação nos últimos dois dias, estou confiante em dizer que o problema era um vazamento de memória na parte do indicador de clima do applet de data e hora. Quando o tempo está sendo exibido, o uso de memória aumenta com o tempo. Quando o tempo não está exibindo, a memória não aumenta.

Eu acho que este é um bug com o indicador de clima que deve ser reportado, mas reportar bugs no Launchpad é um processo muito complicado para eu realizar.

    
por Questioner 20.02.2013 / 11:43
30

Algum processo está vazando memória. Para ter uma ideia de qual processo isso pode ser, execute

ps --sort -rss -eo rss,pid,command | head
    
por jdthood 13.02.2013 / 08:41
19

Sugiro que você inicie o processo de solução de problemas testando a RAM com o utilitário interno fornecido no menu de inicialização do GRUB e eliminando a "RAM ruim" como fonte do problema.

Teste de memória

Memtest86 +

Em seguida, verifique seu sistema quanto a dependências quebradas de um terminal com sudo apt-get check e, se forem encontrados erros, execute novamente o comando como sudo apt-get check -f

Se desejar, tente estas etapas e informe-as aqui com quaisquer resultados.

Leland

Oi Dave,

Ok, então descartamos o hardware como fonte do problema.

Em seguida, vamos examinar as configurações de uso e processo de memória em seu computador; execute estes comandos a partir de um prompt de terminal:

Exibir quantidade de memória livre e usada

free -m

Exibir resumo de uso de swap

swapon -s

Exibir limites de recursos do processo do usuário

ulimit -a

A imagem abaixo é de uma instalação limpa de 10.04LTS. Os detalhes a serem observados a partir dos itens primeiro e segundo círculos amarelos estão na coluna "usado", que exibe memória e espaço de troca disponíveis para o sistema operacional usar, ou seja, eles não estão todos esgotados.

O item inferior amarelo circulado não exibe limites no número de processos do usuário, por exemplo, gFTP ou outro aplicativo, que o sistema operacional permitirá que o usuário execute.

Se desejar, tente estas etapas e informe-as aqui com quaisquer resultados.

Leland

Oi Dave,

Os resultados retornados de ps --sort -rss -eo rss, pid, command | cabeça que você postou mostra o processo do gnome-panel usando aproximadamente 1.8GB de memória que parece um pouco incomum - que parece ser uma grande quantidade de memória para o Desktop Environment estar usando.

Você pode obter um detalhamento da memória que o processo gnome-panel está usando, executando os comandos circulados na imagem abaixo e ver aonde tudo está indo - isso pode revelar algo que se destaca.

Para comparação, o processo gnome-panel na minha máquina virtual está usando 48MB de RAM - embora, a máquina 10.04 nessas capturas de tela é uma máquina virtual que estou usando apenas para testes e não meu próprio desktop.

Dado que, o próximo passo é isolar o problema para "algo" no ambiente de desktop do Gnome.

Para testar isso, tente instalar o espaço de trabalho de plasma do KDE, que você encontrará no Ubuntu Software Center.

Uma vez instalado, reinicie seu computador e faça o login com uma sessão do KDE em vez do Gnome, execute seus aplicativos da melhor maneira possível (a área de trabalho é completamente diferente) para ver se o erro "Não é possível alocar memória" se repete aqui.

Para deixar claro, você poderá executar os mesmos "testes" de CLI em um ambiente do KDE, como fizemos no ambiente do Gnome, e poder comparar os resultados ao examinar o comportamento do computador entre os dois.

No KDE, o aplicativo de console que você está procurando é o xterm , que pode ser encontrado na caixa de diálogo Pesquisar no menu principal.

Vou colocar um pouco de confiança aqui e dizer que acho que estamos coletivamente no caminho certo para isolar o problema.

Leland

    
por Leland Kristie 10.02.2013 / 17:29
1

Se você está tendo esse problema usando Ruby on Rails com Digital Ocean , é provável que você tenha pouca memória RAM. Tente aumentar a memória RAM de 512MB para 1GB , que consertou isso para mim.

    
por Glenn Dayton 07.08.2015 / 01:16