Warum erhalte ich häufig den Fehler "Speicher kann nicht zugeordnet werden"?

29

Ich benutze Ubuntu 12.10 mit Gnome-Classic. Ich erhalte diesen Fehler häufig und mit fast allen Programmen, groß und klein. Wenn ich versuche, sie zu öffnen, werden sie nicht gestartet. Stattdessen erhalte ich eine Fehlermeldung mit der Aufschrift Could not launch 'Program' - Failed to fork child process (Cannot allocate memory). Dies war bis in die letzten Wochen kein Problem.

Kann keinen Speicher zuweisen

Ich kann keine Gemeinsamkeiten zwischen den Programmen erkennen, die diesen Fehler verursachen. Es scheint eher eine Frage der Zeit zu sein. Nachdem mein Computer eine Weile gelaufen ist, von einem Tag bis zu einigen Tagen, kann ich scheinbar keine neuen Programme starten.

Die einzige Möglichkeit, diesen Fehler zu verhindern, besteht darin, den Computer neu zu starten.

Warum erhalte ich diesen Fehler und wie kann ich verhindern, dass er auftritt?


Ich habe den im GRUB-Menü verfügbaren memtest ausgeführt und er meldet keine Fehler. Ich denke also nicht, dass dies ein Hardwarefehler ist.

Ich lief auch sudo apt-get check, und es wurden keine Fehler gefunden.

Hier ist eine angeforderte Befehlszeilenausgabe:

$ 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

Dies ist die Ausgabe von, ps --sort -rss -eo rss,pid,command | headnachdem der Fehler aufgetreten ist:

$ 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

Aufgrund der Vorschläge in den Kommentaren und Antworten scheint es möglich, dass das Problem beim Gnome-Bedienfeld oder dessen Applets liegt. Hier sind die Applets, die ich ausgeführt habe:

Panel-Applets

Die Applets sind Indicator Applet 12.10.1, System Monitor 3.5.92und ein "Benachrichtigungsbereich". und "Datum und Uhrzeit", für die ich auf die Versionsnummer nicht zugreifen kann.

Hier ist eine weitere angeforderte Befehlszeilenausgabe:

$ 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
Fragesteller
quelle
Ok, ich habe meine Antwort unten mit einigen "nächsten Schritten" angehängt.
Leland Kristie
Wie lange bist du gelaufen memtest? Fehler treten oft nur in späteren Tests auf.
guntbert
@guntbert: Ich habe memtestlaufen lassen , bis am unteren Bildschirmrand eine Meldung angezeigt wurde, dass alle Tests abgeschlossen waren.
Fragesteller
Ok, ich habe meine Antwort unten noch einmal mit einigen "nächsten Schritten" angehängt.
Leland Kristie
1
@AlistairBuxton: Hmmm ... nach sieben Stunden mit dem Zeit- / Datums-Applet auf dem Panel scheint es keine Speichererweiterung zu geben. Eine andere Sache ist jedoch, dass es keine Wetteranzeige gibt. Im Zeit / Datum-Applet gibt es eine Option zum Anzeigen des Wetters, aber obwohl ich es ausgewählt habe, wird kein Wettersymbol angezeigt. Was seltsam erscheint und möglicherweise bestätigt, dass das Problem speziell mit den Wetterfunktionen in der Zeit / Datum / Wetter-App zusammenhängt.
Fragesteller

Antworten:

33

Bei einem Prozess geht Speicher verloren. Um eine Vorstellung davon zu bekommen, welcher Prozess dies sein könnte, führen Sie Folgendes aus

ps --sort -rss -eo rss,pid,command | head
jdthood
quelle
Ich habe die Ausgabe des Befehls zu meiner Frage hinzugefügt. Ich habe diese Ausgabe erfasst, nachdem ich den Fehler erhalten habe.
Fragesteller
Höchstwahrscheinlich liegt das Problem bei einem der weniger häufig verwendeten Indikatoren, die Sie verwenden, z. B. entweder der Indikator links, der wie ein Kreissägeblatt aussieht, oder der Wetteranzeige. Entfernen Sie diese nacheinander, um festzustellen, ob das Problem dadurch behoben wird.
Jdthood
Es stellte sich heraus, dass es der Wetterindikator war. Siehe die Antwort des OP.
jdthood
19

Ich schlage vor, Sie starten den Fehlerbehebungsprozess, indem Sie den Arbeitsspeicher mit dem im GRUB-Startmenü enthaltenen integrierten Dienstprogramm testen und "fehlerhaften Arbeitsspeicher" als Ursache des Problems beseitigen.

Gedächtnistest Gedächtnistest

Memtest86 + Memtest86 +

Überprüfen Sie als Nächstes Ihr System mit sudo apt-get check auf defekte Abhängigkeiten von einem Terminal und führen Sie den Befehl erneut als sudo apt-get check -f aus , um sie zu korrigieren.

Wenn Sie möchten, versuchen Sie diese Schritte und melden Sie sich hier mit irgendwelchen Ergebnissen.

Leland


Hallo Dave,

Ok dann - wir haben die Hardware als Ursache des Problems ausgeschlossen.

Als Nächstes untersuchen wir die Speichernutzung und die Prozesseinstellungen auf Ihrem Computer. Führen Sie diese Befehle an einer Terminal-Eingabeaufforderung aus:

Zeigt die Menge des freien und verwendeten Speichers an

frei -m

Zusammenfassung der Auslagerungsnutzung anzeigen

Swapon -s

Ressourcenlimits für Benutzerprozesse anzeigen

ulimit -a

Der Screenshot unten stammt aus einer Neuinstallation von 10.04LTS. In der Spalte "used" (Verwendet) sind die Angaben aus dem ersten und dem zweiten gelb eingekreisten Element aufgeführt, die den für das Betriebssystem verfügbaren Speicher und Auslagerungsspeicher anzeigen, dh, sie sind nicht alle belegt.

Das untere gelb eingekreiste Element zeigt keine Begrenzung der Anzahl von Benutzerprozessen an, z. B. gFTP oder eine andere Anwendung, die das Betriebssystem dem Benutzer ermöglicht, ausgeführt zu werden.

Wenn Sie möchten, versuchen Sie diese Schritte und melden Sie sich hier mit irgendwelchen Ergebnissen.

Leland

Speicherauslastung und Prozessressourcenbeschränkungen


Hallo Dave,

Die Ergebnisse wurden von ps --sort -rss -eo rss, pid, command | zurückgegeben head, den du gepostet hast, zeigt den Gnome-Panel-Prozess mit ungefähr 1,8 GB Speicher, was ein wenig ungewöhnlich erscheint - das scheint, als würde die Desktop-Umgebung viel Speicher verbrauchen.

Sie können eine Aufschlüsselung des Arbeitsspeichers erhalten, den der Gnome-Panel- Prozess verwendet, indem Sie die eingekreisten Befehle in der Abbildung unten ausführen und sehen, wo alles hingeht.

Zum Vergleich: Der Gnome-Panel- Prozess auf meiner virtuellen Maschine verwendet 48 MB RAM - obwohl die 10.04-Maschine in diesen Screenshots eine virtuelle Maschine ist, die ich nur für Tests verwende und nicht für meinen eigenen Desktop.

pmap aus dem Gnome-Panel-Prozess

In Anbetracht dessen werde ich als nächsten Schritt vorschlagen, das Problem auf "etwas" in der Gnome-Desktop-Umgebung zu beschränken.

Um dies zu testen, installieren Sie den KDE-Plasma-Arbeitsbereich, den Sie im Ubuntu Software Center finden.

KDE-Plasma Desktop-Umgebung

Starten Sie nach der Installation Ihren Computer neu und melden Sie sich mit einer KDE-Sitzung anstelle von Gnome an. Führen Sie Ihre Anwendungen so gut wie möglich aus (der Desktop ist völlig anders), um festzustellen, ob sich der Fehler "Speicher kann nicht zugewiesen werden" hier wiederholt.

Um es klar auszudrücken, können Sie in einer KDE-Umgebung dieselben CLI- "Tests" ausführen wie in der Gnome-Umgebung und die Ergebnisse bei der Untersuchung des Computerverhaltens zwischen beiden vergleichen.

In KDE suchen Sie nach der Konsolenanwendung xterm, die Sie im Dialogfeld "Suchen" im Hauptmenü finden.

xterm pid und pmap für plasma-desktop

Ich werde hier ein wenig Selbstvertrauen einbringen und sagen, dass wir zusammen auf dem richtigen Weg sind, um das Problem einzugrenzen.

Leland

Leland Kristie
quelle
Danke für das Antworten. Ich habe sowohl den memtest als auch die von apt-getIhnen vorgeschlagenen Befehle ausgeführt und beide haben keine Fehler gemeldet. Ich habe meine Frage entsprechend aktualisiert.
Fragesteller
Ich habe an meine Frage die Ausgabe der von Ihnen angeforderten Befehle angehängt. Das einzige, was ich bemerke, ist, dass darunter max user processesnicht steht, unlimitedwie bei Ihnen. Meins hat die Nummer 31421.
Fragesteller
1
Hallo Dave, Eine kurze Nachricht, um dir mitzuteilen, dass ich bis zum Wochenende wieder mit dir in Kontakt treten kann. Mein Tagesjob beschäftigt mich abends und so dachte ich, ich schreibe dir einfach eine Nachricht, um dich wissen zu lassen, dass ich nicht verschwunden bin. Leland
Leland Kristie
Übrigens, ich habe versucht, die Einstellung für die maximalen Benutzerprozesse bis auf 1024 zu ändern, und konnte den Fehler nicht auf diese Weise reproduzieren.
Leland Kristie
Ich habe den KDE-Desktop installiert, warte aber derzeit, bis der Fehler erneut angezeigt wird. Anschließend führe ich den pmapBefehl aus und poste die Ausgabe hier. Ich habe auch ein wenig nach Informationen gesucht und festgestellt, dass es einige Erwähnungen von Speicherlecks im Gnome-Panel gibt. Das scheint also ein wahrscheinlicher Verdacht zu sein.
Fragesteller
3

Nachdem ich in den letzten Tagen mit dem Ein- und Ausschalten experimentiert habe, bin ich zuversichtlich, dass das Problem ein Speicherverlust im Wetteranzeigeteil des Zeit- und Datums-Applets war. Wenn das Wetter angezeigt wird, nimmt die Speichernutzung mit der Zeit zu. Wenn das Wetter nicht angezeigt wird, nimmt der Speicher nicht zu.

Ich denke, dies ist ein Fehler mit der Wetteranzeige, der gemeldet werden sollte, aber das Melden von Fehlern auf dem Launchpad ist für mich ein viel zu umständlicher Prozess.

Fragesteller
quelle
Öffnen Sie ein Terminal auf Ihrem Computer und führen Sie "apport-bug" aus, um Informationen abzurufen und den Fehlerbericht für Sie einzureichen.
Jdthood
2
@jdthood: Das ist die Theorie, wie einfach es sein sollte. Die Realität ist, dass der erste Bildschirm mit Optionen mein Problem nicht beschreibt, und die "andere" Option sagt mir nur, dass ich einen Paketnamen benötige und beendet mich dann. Ähnlich dazu .
Fragesteller
Öffnen Sie bugs.launchpad.net/ubuntu/+source/indicator-weather in einem Browser, klicken Sie auf "Fehler melden " und folgen Sie den Anweisungen. Wenn Sie die dem Bericht zugewiesene Nummer kennen, führen Sie "apport-collect <Fehlernummer>" aus, um relevante Informationen über den betroffenen Computer hochzuladen.
Jdthood
1

Wenn Sie dieses Problem bei der Verwendung von Ruby on Rails mit Digital Ocean haben, liegt dies wahrscheinlich daran, dass Sie über zu wenig RAM verfügen. Versuchen Sie, den RAM-Speicher von 512 MB auf 1 GB zu erhöhen. Das hat es für mich behoben.

Glenn Dayton
quelle