Mac OS X Mavericks si blocca, smette di rispondere quando si esaurisce la memoria


9

Succede a giorni alterni e i sintomi sono a dir poco strani. Il computer risponde ancora in un certo senso; Posso spostare il mouse, i pulsanti del volume sulle mie cuffie funzionano. La tastiera però non fa nulla , né fa clic. Non vengono presentati stati al passaggio del mouse. È come se il puntatore del mouse non fosse realmente spostato.

Posso usare il computer se accedo da un altro computer tramite SSH o usando un telecomando dal mio telefono (uso Rowmote.) È molto lento, però, ma risponde.

In questo stato, posso fare pochissime cose. L'avvio di nuove applicazioni è una roulette, ad esempio potrei avviare Activity Monitor (nulla di strano da vedere) ma non è stato possibile avviare Console dopo. La chiusura delle app ha dato risultati strani fino a quando finalmente ha smesso di rispondere anche al telecomando. È interessante notare che l'applicazione remota non pensava di aver perso la connessione, quindi in qualche modo ha ancora ricevuto e riconosciuto i comandi remoti.

Ecco l' /var/log/system.logoutput rilevante dal momento in cui è accaduto:

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

Non mi chiedo davvero nulla qui, se hai suggerimenti credo che sarebbe buono. Sembra essere una cattiva ingegneria da parte di Apple.

Risposte:


4

Quando il sistema operativo è affamato di spazio su disco, nella progettazione si verificano cose brutte nel tentativo di mantenere le parti critiche del sistema online abbastanza a lungo da consentire un arresto controllato e potenzialmente consentire alle app con modifiche di salvare di sopravvivere fino all'attività di pulizia inizia.

È molto meno probabile che Mavericks assegni l'intera quantità di RAM a / var / db / sleepimage, quindi le persone abituate a disporre dello spazio preallocato possono incorrere in sorprese quando il sistema operativo ha bisogno di un piccolo spazio per far crescere l'immagine del sonno se le condizioni operative lo richiedono.

Il consiglio principale sarebbe quello di preservare diversi gigabyte di spazio libero sul volume di avvio quando si dispone di un carico di lavoro che sollecita il sistema di memoria virtuale e gira con la pressione della memoria in rosso.

Ecco i miei consigli:

  • A quale scala o misura aderiscono la "pressione della memoria" di Mavericks e Yosemite? contiene alcune informazioni utili sul monitoraggio e sulla pressione della memoria a comando
  • avviare il sistema, accedere da un utente, chiudere tutte le applicazioni
  • aprire il monitor attività e osservare / registrare la schermata di memoria
  • mettere in pausa la macchina e riattivarla dopo 30 secondi
  • esegui sudo du -sm /var/vm/*e nota quanto è grande il tuo file di immagine di sospensione, nonché se eventuali file di scambio sono stati creati sul disco.

Se si desidera eseguire programmi che portano il sistema di memoria virtuale in territorio giallo per la pressione della memoria, è necessario disporre di spazio idealmente sufficiente su disco libero per abbinare il footprint di memoria totale. Probabilmente non avrai bisogno di tutto quello spazio solo per il sistema operativo, ma soprattutto se stai riscontrando errori di memoria mach come quelli che stai elencando, il carico di lavoro che stai eseguendo ha bisogno di un po 'più spazio libero per crescere rispetto a quello che stai permettendo.

Inoltre, se ritieni che l'ottimizzazione del sistema sia errata, puoi facilmente presentare una segnalazione di bug eseguendo sysdiagnosedopo un avvio pulito come descritto sopra, ancora una volta quando il sistema esegue correttamente il carico di lavoro previsto e un'ultima sydiagnoseesecuzione dopo aver causato la memoria allocazioni per iniziare a rompere il sistema. È possibile che ci siano scelte migliori che Apple avrebbe potuto fare, ma potrebbe anche essere che il tuo software sia difettoso / che perde memoria e il sistema si sta rompendo come previsto quando le risorse limitate si sono esaurite. Senza ulteriori dettagli è difficile dire quale sia il caso.


2

"shmem" è memoria condivisa e OS X non riesce ad allocare memoria condivisa. Sembra quindi che il computer abbia esaurito la memoria, sia la memoria RAM che quella del disco rigido. È questo il caso? Al momento del congelamento, sembrava che rimanesse circa 1 GB di spazio.

  • Liberare spazio su disco eliminando i file
  • Liberare memoria chiudendo le applicazioni

In questo caso particolare, i log in seguito indicavano che Spotlight stava tentando di indicizzare un volume sparsebundle montato, causando lo spazio disponibile sul disco di backup.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.