Mac OS X Mavericks membeku, berhenti merespons ketika kehabisan memori

9

Ini terjadi setiap hari dan gejalanya aneh untuk sedikitnya. Komputer masih merespons dalam beberapa hal; Saya bisa menggerakkan mouse, tombol volume di headphone saya berfungsi. Keyboard mereka tidak melakukan apa pun, juga tidak mengklik. Tidak ada negara melayang disajikan. Seolah-olah pointer mouse tidak benar-benar dipindahkan.

Saya dapat menggunakan komputer jika saya login dari komputer lain menggunakan SSH atau menggunakan remote dari ponsel saya (saya menggunakan Rowmote.) Hal ini sangat lambat, meskipun - tetapi merespon.

Dalam keadaan ini, saya dapat melakukan sangat sedikit hal. Memulai aplikasi baru adalah roulette, misalnya saya dapat memulai Activity Monitor (tidak ada yang aneh untuk dilihat) tetapi memulai Konsol setelah itu tidak mungkin. Menutup aplikasi memberi hasil aneh hingga akhirnya berhenti merespons ke jarak jauh juga. Menariknya, aplikasi jarak jauh itu tidak berpikir itu telah kehilangan koneksi sehingga entah bagaimana masih menerima dan mengakui perintah jarak jauh.

Berikut ini adalah /var/log/system.logoutput yang relevan dari saat itu terjadi:

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

Saya tidak benar-benar bertanya-tanya apa-apa di sini, jika Anda memiliki tips saya kira itu akan baik. Sepertinya itu rekayasa buruk dari pihak Apple.

lericson
sumber

Jawaban:

4

Ketika OS kekurangan ruang pada disk, hal-hal buruk terjadi dengan desain dalam upaya untuk menjaga bagian penting dari sistem online cukup lama untuk membiarkan crash terkendali terjadi dan berpotensi membiarkan aplikasi dengan perubahan untuk menyelamatkan bertahan sampai aktivitas pembersihan dimulai.

Mavericks jauh lebih kecil kemungkinannya untuk mengalokasikan jumlah penuh RAM ke / var / db / sleepimage sehingga orang yang terbiasa memiliki ruang yang preallocated dapat mengalami kejutan ketika OS membutuhkan sedikit ruang untuk menumbuhkan gambar tidur jika kondisi operasi menentukan.

Ujung utamanya adalah untuk mempertahankan beberapa gigabytes ruang kosong pada volume yang dapat di-boot ketika Anda memiliki beban kerja yang menekankan sistem memori virtual dan berjalan dengan tekanan memori merah.

Berikut rekomendasi saya:

  • Skala atau ukuran apa yang dipatuhi oleh "tekanan memori" Mavericks dan Yosemite? memiliki beberapa informasi yang baik tentang pemantauan dan menyebabkan tekanan memori saat perintah
  • boot sistem Anda, masuk satu pengguna, keluar dari semua aplikasi
  • buka monitor aktivitas dan amati / rekam layar memori
  • matikan mesin dan bangun 30 detik kemudian
  • jalankan sudo du -sm /var/vm/*dan catat seberapa besar file gambar sleep Anda serta apakah file swap telah dibuat pada disk.

Anda akan ingin memiliki ruang yang cukup di disk bebas untuk mencocokkan jejak memori total Anda jika Anda bermaksud untuk menjalankan program yang membawa sistem memori virtual ke dalam wilayah kuning untuk tekanan memori. Anda mungkin tidak membutuhkan semua ruang itu hanya untuk OS, tetapi terutama jika Anda mendapatkan kesalahan memori mach seperti yang Anda daftarkan, beban kerja yang Anda jalankan membutuhkan ruang lebih sedikit lebih bebas untuk tumbuh daripada yang Anda izinkan.

Selain itu, jika Anda merasa penyetelan sistem salah, Anda dapat dengan mudah mengajukan laporan bug dengan menjalankan sysdiagnosesetelah boot bersih seperti dijelaskan di atas, sekali lagi ketika sistem menjalankan beban kerja yang dimaksud dengan benar dan sydiagnosesekali lagi menjalankan terakhir setelah Anda menyebabkan memori alokasi untuk mulai merusak sistem. Mungkin saja ada pilihan yang lebih baik yang bisa dibuat Apple, tetapi bisa juga perangkat lunak Anda buggy / bocor memori dan sistem rusak seperti yang dimaksudkan ketika sumber daya terbatas itu telah menjadi habis. Tanpa perincian lebih lanjut, sulit untuk mengatakan mana masalahnya.

bmike
sumber
2

"shmem" adalah memori bersama, dan OS X gagal mengalokasikan memori bersama. Karena itu sepertinya komputer telah kehabisan memori, baik RAM maupun memori hard drive. Apakah ini masalahnya? Pada saat pembekuan, sepertinya ada sekitar 1GB ruang tersisa.

  • Kosongkan ruang disk dengan menghapus file
  • Kosongkan memori dengan menutup aplikasi

Dalam kasus khusus ini, log kemudian menunjukkan bahwa Spotlight telah mencoba untuk mengindeks volume sparsebundle yang terpasang, sehingga disk pendukung kehabisan ruang.

lericson
sumber