Mac OS X Mavericks зависає, перестає відповідати при вичерпанні пам'яті


9

Це відбувається через день, а симптоми - найменш дивні. Комп'ютер все ще відповідає в певному сенсі; Я можу пересунути мишу, кнопки гучності на моїх навушниках працюють. Вони працюють з клавіатурою нічого хоч і не натискання. Не подано жодних станів. Це так, ніби вказівник миші насправді не переміщується.

Я можу використовувати комп'ютер, якщо я ввійду з іншого комп'ютера за допомогою SSH або за допомогою віддаленого від телефону (я використовую Rowmote). дуже повільний, хоча - але він відповідає.

У цьому стані я можу зробити дуже мало речей. Запуск нових додатків - це рулетка, наприклад, я можу запустити Activity Monitor (нічого дивного не можна побачити), але після цього консоль неможлива. Закриття додатків дало незвичайні результати, поки, нарешті, вона не перестала відповідати віддаленому. Цікаво, що віддалена програма не думала, що вона втратила зв'язок, так що вона як-небудь отримала і підтвердила віддалені команди.

Ось відповідне /var/log/system.log вихід з моменту його виникнення:

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

Я не дуже цікаво тут, якщо у вас є поради я думаю, це було б добре. Здається, це погана інженерія з боку Apple.

Відповіді:


4

Коли операційна система вичерпана на місці на диску, погані речі відбуваються за допомогою дизайну, щоб спробувати зберегти критичні частини системи в Інтернеті достатньо довго, щоб дозволити контрольованій аварії, і потенційно дозволити додаткам зі змінами зберегти доти, доки не відбудеться очищення починається.

Маверікс набагато рідше розподіляє повний обсяг оперативної пам'яті в / var / db / sleepimage, так що люди звикли до того, що простір попередньо виділений може зіткнутися з сюрпризами, коли операційній системі потрібен невеликий простір для вирощування зображення сну, якщо операційні умови диктують.

Головним підказкам буде збереження декількох гігабайт вільного місця на завантажувальному томі, якщо у вас є навантаження, яке підкреслює систему віртуальної пам'яті, і працює з тиском пам'яті в червоному.

Ось мої рекомендації:

  • Якому масштабу або мірі дотримується «тиск пам'яті» Маверикса і Йосеміті? має деяку хорошу інформацію про моніторинг і викликає тиск пам'яті на команду
  • завантажте систему, увійдіть до одного користувача, закрийте всі програми
  • відкрити моніторинг активності та спостерігати / записувати екран пам'яті
  • поставте машину в режим сну і розбудіть її через 30 секунд
  • бігти sudo du -sm /var/vm/* і зауважте, наскільки великим є ваш файл зображення, а також чи були створені файли підкачки на диску.

Якщо ви маєте намір запускати програми, які виводять систему віртуальної пам'яті в жовту територію для тиску пам'яті, ви хочете мати ідеально достатньо місця на диску, щоб відповідати вашій загальній площі пам'яті. Ви, напевно, не потребуватимете всього цього простору для ОС, але особливо, якщо ви отримуєте помилки пам'яті, подібні до лістингу, робоче навантаження, яке ви працюєте, потребує трохи більше вільного місця, ніж ви дозволяєте.

Крім того, якщо ви вважаєте, що налаштування системи неправильні, ви можете легко подати звіт про помилку за допомогою запуску sysdiagnose після чистого завантаження, як описано вище, ще раз, коли система належним чином виконує передбачуване робоче навантаження і один останній sydiagnose запустіть, як тільки ви викликаєте виділення пам'яті, щоб почати розбивати систему. Це можливо, є кращий вибір Apple може зробити, але він також може бути просто вашим програмним забезпеченням глючить / витік пам'яті, і система порушується, як це було призначено, коли кінцеві ресурси у неї стали вичерпані. Без деталей важко сказати, що це так.


2

"shmem" - це спільна пам'ять, і OS X не може виділити спільну пам'ять. Тому, здається, у комп'ютера закінчилася пам'ять, як оперативна пам'ять, так і пам'ять жорсткого диска. Це так? Під час замерзання залишилося близько 1 Гб вільного простору.

  • Звільніть місце на диску, видаливши файли
  • Звільніть пам'ять, закривши програми

У цьому конкретному випадку журнали пізніше показали, що Spotlight намагався індексувати об'єм змонтованого розрідженого шматка, в результаті чого резервний диск закінчився.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.