Pourquoi est-ce que je reçois fréquemment cette erreur "Impossible d'allouer de la mémoire"?

29

J'utilise Ubuntu 12.10 avec Gnome-Classic. Je reçois cette erreur fréquemment et avec presque tous les programmes, grands et petits. Lorsque j'essaie de les ouvrir, ils ne démarrent pas et à la place, un message d'erreur indique Could not launch 'Program' - Failed to fork child process (Cannot allocate memory) . Ce n'était un problème que dans les dernières semaines.

Je ne peux pas discerner de points communs entre les programmes à l'origine de cette erreur. Cela semble être plus une question de temps. Après que mon ordinateur a fonctionné pendant un certain temps, n'importe où de jour à quelques jours, alors je ne peux pas sembler lancer de nouveaux programmes.

La seule manière de prévenir cette erreur est de redémarrer l'ordinateur.

Pourquoi est-ce que je reçois cette erreur et que dois-je faire pour l'empêcher?

J'ai exécuté le test memtest disponible dans le menu GRUB et il ne signale aucune erreur. Je ne pense donc pas qu'il s'agisse d'une panne matérielle.

J'ai également exécuté sudo apt-get check et aucune erreur n'a été détectée.

Voici une sortie de ligne de commande demandée:

$ 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

Ceci est la sortie de ps --sort -rss -eo rss,pid,command | head après que l'erreur commence à apparaître:

$ 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

Selon les suggestions contenues dans les commentaires et les réponses, il semble possible que le problème soit lié au panneau Gnome ou à ses applets. Voici les applets que j'ai en cours d'exécution:

Les applets sont Indicator Applet 12.10.1 , System Monitor 3.5.92 et une "zone de notification". et "date et heure", dont je ne peux pas accéder au numéro de version.

Voici une sortie de ligne de commande plus demandée:

$ 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
[email protected]:/home/mythbuntu  437G  360G   55G  87% /home/dave/Mythbuntu
$ sudo du -csh /var/log
15M /var/log
15M total
    
posée Questioner 10.02.2013 - 16:29
la source

4 réponses

3

Après avoir expérimenté son activation et sa désactivation au cours des derniers jours, je suis convaincu que le problème était une fuite de mémoire dans la partie de l'indicateur météo de l'applet heure et date. Lorsque le temps est affiché, l’utilisation de la mémoire augmente avec le temps. Lorsque le temps n’affiche pas, la mémoire n’augmente pas.

Je suppose que c’est un bogue avec l’indicateur météorologique à signaler, mais rapporter des bogues sur Launchpad est un processus beaucoup trop compliqué pour moi.

    
réponse donnée Questioner 20.02.2013 - 11:43
la source
32

Certains processus perdent de la mémoire. Pour avoir une idée de ce processus, lancez

ps --sort -rss -eo rss,pid,command | head
    
réponse donnée jdthood 13.02.2013 - 08:41
la source
19

Je vous suggère de commencer le processus de dépannage en testant la RAM avec l'utilitaire intégré fourni dans le menu de démarrage GRUB et d'éliminer la "mauvaise RAM" comme source du problème.

Test de mémoire

Memtest86 +

Ensuite, recherchez dans votre système les dépendances brisées d’un terminal avec sudo apt-get check et, si des erreurs sont détectées, relancez la commande en tant que sudo apt-get check -f essayer de les corriger.

S'il vous plaît, essayez ces étapes et rapportez ici avec des résultats.

Leland

Salut Dave,

Ok, alors - nous avons exclu le matériel comme source du problème.

Ensuite, examinons l’utilisation de la mémoire et les paramètres de processus sur votre ordinateur; exécutez ces commandes à partir d'une invite de terminal:

Affiche la quantité de mémoire libre et utilisée

free -m

Afficher le résumé de l’utilisation du swap

swapon -s

Afficher les limites des ressources du processus utilisateur

ulimit -a

La capture d'écran ci-dessous provient d'une installation propre de 10.04LTS. Les détails à noter des premier et deuxième éléments entourés de jaune se trouvent dans la colonne "used", qui affiche la mémoire et l’espace de swap disponible pour le système d’exploitation, c’est-à-dire qu’ils ne sont pas tous utilisés.

L’élément entouré d’un cercle jaune en bas n’affiche aucune limite sur le nombre de processus utilisateur, c’est-à-dire gFTP ou autre application par exemple, que le système d’exploitation permettra à l’utilisateur d’exécuter.

S'il vous plaît, essayez ces étapes et rapportez ici avec des résultats.

Leland

Salut Dave,

Les résultats sont renvoyés par ps --sort -rss -eo rss, pid, command | head que vous avez publié montre le processus de gnome-panel en utilisant environ 1,8 Go de mémoire, ce qui semble un peu inhabituel - cela semble être beaucoup de mémoire pour l'environnement de bureau.

Vous pouvez obtenir une ventilation de la mémoire utilisée par le processus gnome-panel en exécutant les commandes encerclées dans la capture d'écran ci-dessous et voir où tout se passe - ce qui peut révéler quelque chose de remarquable.

A titre de comparaison, le processus gnome-panel sur ma machine virtuelle utilise 48 Mo de RAM - bien que la machine 10.04 de ces captures d'écran soit une machine virtuelle que j'utilise pour des tests uniquement et non mon propre bureau.

Compte tenu de cela, je propose que l’étape suivante consiste à isoler le problème de «quelque chose» dans l’environnement de bureau Gnome.

Pour tester cela, essayez d’installer l’espace de travail plasma de KDE que vous trouverez dans le Centre logiciel Ubuntu.

Une fois installé, redémarrez votre ordinateur et connectez-vous avec une session KDE au lieu de Gnome, exécutez vos applications du mieux possible (le bureau est complètement différent) pour voir si l'erreur "Impossible d'allouer de la mémoire" se répète ici.

Simplement pour être clair, vous pourrez exécuter les mêmes "tests" CLI dans un environnement KDE que dans l'environnement Gnome et pouvoir comparer les résultats en examinant le comportement de l'ordinateur entre les deux.

Dans KDE, l’application de console que vous recherchez est xterm que vous pouvez trouver dans la boîte de dialogue Rechercher du menu principal.

Je vais jeter un peu de confiance ici et dire que je pense que nous sommes collectivement sur la bonne voie pour isoler le problème.

Leland

    
réponse donnée Leland Kristie 10.02.2013 - 17:29
la source
1

Si vous rencontrez ce problème avec Ruby on Rails avec Digital Ocean , c'est probablement parce que vous avez trop peu de RAM. Essayez d’augmenter la mémoire vive de 512 Mo à 1 Go , cela a été corrigé pour moi.

    
réponse donnée Glenn Dayton 07.08.2015 - 01:16
la source

Lire d'autres questions sur les étiquettes