Mac OS X Mavericks friert ein und reagiert nicht mehr, wenn nicht genügend Speicher vorhanden ist

9

Es passiert jeden zweiten Tag und die Symptome sind gelinde gesagt seltsam. Der Computer reagiert immer noch in gewissem Sinne. Ich kann die Maus bewegen, die Lautstärketasten an meinen Kopfhörern funktionieren. Die Tastatur macht jedoch nichts und das Klicken auch nicht. Es werden keine Schwebezustände angezeigt. Es ist, als ob der Mauszeiger nicht wirklich bewegt wird.

Ich kann den Computer verwenden, wenn ich mich mit SSH oder einer Fernbedienung von meinem Telefon aus von einem anderen Computer aus anmelde (ich verwende Rowmote). Es ist zwar sehr langsam - aber es reagiert.

In diesem Zustand kann ich nur sehr wenige Dinge tun. Das Starten neuer Anwendungen ist ein Roulette. Ich könnte beispielsweise Activity Monitor starten (nichts Seltsames zu sehen), aber das Starten von Console danach war nicht möglich. Das Schließen von Apps führte zu merkwürdigen Ergebnissen, bis es schließlich auch nicht mehr auf die Fernbedienung reagierte. Interessanterweise glaubte die Remote-Anwendung nicht, dass sie die Verbindung verloren hatte, und empfing und bestätigte die Remote-Befehle dennoch.

Hier ist die relevante /var/log/system.logAusgabe von dem Moment an, als es passiert ist:

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 ---

Ich wundere mich hier nicht wirklich, wenn Sie Tipps haben, denke ich, wäre das gut. Es scheint eine schlechte Technik von Apple zu sein.

lericson
quelle

Antworten:

4

Wenn das Betriebssystem nicht genügend Speicherplatz auf der Festplatte hat, passieren von Natur aus schlimme Dinge, um zu versuchen, die kritischen Teile des Systems lange genug online zu halten, damit ein kontrollierter Absturz auftritt und möglicherweise Apps mit Änderungen zum Speichern bis zur Bereinigungsaktivität überleben beginnt.

Es ist viel weniger wahrscheinlich, dass Mavericks / var / db / sleepimage die gesamte RAM-Größe zuweist, sodass Personen, die daran gewöhnt sind, diesen Speicherplatz vorab zuzuweisen, auf Überraschungen stoßen können, wenn das Betriebssystem ein wenig Platz benötigt, um das Schlafimage zu vergrößern, wenn die Betriebsbedingungen dies erfordern.

Der Haupttipp wäre, mehrere Gigabyte freien Speicherplatz auf dem bootfähigen Volume beizubehalten, wenn Sie eine Workload haben, die das virtuelle Speichersystem belastet und mit rotem Speicherdruck ausgeführt wird.

Hier sind meine Empfehlungen:

  • Welchen Maßstab oder welches Maß hält der "Gedächtnisdruck" von Mavericks und Yosemite ein? hat einige gute Informationen zum Überwachen und Verursachen von Speicherdruck auf Befehl
  • Starten Sie Ihr System, melden Sie sich bei einem Benutzer an und beenden Sie alle Anwendungen
  • Öffnen Sie den Aktivitätsmonitor und beobachten / zeichnen Sie den Speicherbildschirm auf
  • Schalten Sie die Maschine ein und wecken Sie sie 30 Sekunden später
  • Führen Sie aus sudo du -sm /var/vm/*und notieren Sie, wie groß Ihre Sleep-Image-Datei ist und ob Swap-Dateien auf der Festplatte erstellt wurden.

Sie möchten im Idealfall genügend Speicherplatz auf der Festplatte haben, um Ihrem gesamten Speicherbedarf zu entsprechen, wenn Sie Programme ausführen möchten, die das virtuelle Speichersystem für Speicherdruck in den gelben Bereich bringen. Sie werden wahrscheinlich nicht den gesamten Speicherplatz nur für das Betriebssystem benötigen, aber insbesondere, wenn Sie Mach-Speicherfehler erhalten, wie Sie sie auflisten, benötigt die von Ihnen ausgeführte Workload etwas mehr freien Speicherplatz, um zu wachsen, als Sie zulassen.

Wenn Sie der Meinung sind, dass die Systemoptimierung falsch ist, können Sie leicht einen Fehlerbericht einreichen, indem Sie sysdiagnosenach einem sauberen Neustart wie oben beschrieben erneut sydiagnoseausführen , wenn das System die beabsichtigte Arbeitslast ordnungsgemäß ausführt, und einen letzten Lauf ausführen, sobald Sie den Speicher verursacht haben Zuweisungen, um das System zu beschädigen. Es ist möglich, dass es bessere Entscheidungen gibt, die Apple hätte treffen können, aber es könnte auch sein, dass Ihre Software fehlerhaft ist / Speicher verliert und das System kaputt geht, wie es beabsichtigt war, wenn die begrenzten Ressourcen erschöpft sind. Ohne weitere Details ist es schwer zu sagen, was der Fall ist.

bmike
quelle
2

"shmem" ist gemeinsam genutzter Speicher, und OS X kann keinen gemeinsam genutzten Speicher zuweisen. Es scheint daher, dass dem Computer der Arbeitsspeicher und der Festplattenspeicher ausgegangen sind. Ist das der Fall? Zum Zeitpunkt des Einfrierens schien noch etwa 1 GB Speicherplatz vorhanden zu sein.

  • Geben Sie Speicherplatz frei, indem Sie Dateien löschen
  • Geben Sie Speicher frei, indem Sie Anwendungen schließen

In diesem speziellen Fall zeigten die Protokolle später an, dass Spotlight versucht hatte, ein bereitgestelltes Sparsebundle-Volume zu indizieren, was dazu führte, dass der Sicherungsdiskette nicht mehr genügend Speicherplatz zur Verfügung stand.

lericson
quelle