Чому запуску продовжують процеси вбивства


2

Я помітив, що мій system.log переповнюється такими повідомленнями:

May  5 12:56:08 macpro com.apple.launchd[1] (com.apple.qtkittrustedmoviesservice[8568]): Exited: Killed: 9
May  5 12:56:08 macpro kernel[0]: memorystatus_thread: idle exiting pid 8568 [qtkittrustedmovi]
May  5 12:56:11 macpro com.apple.launchd[1] (com.apple.audio.ComponentHelper[8564]): Exited: Killed: 9
May  5 12:56:11 macpro kernel[0]: memorystatus_thread: idle exiting pid 8564 [com.apple.audio.]
May  5 12:56:12 macpro com.apple.launchd[1] (com.apple.sleepservicesd[8572]): Exited: Killed: 9
May  5 12:56:12 macpro kernel[0]: memorystatus_thread: idle exiting pid 8572 [SleepServicesD]
May  5 12:56:12 macpro com.apple.launchd[1] (com.apple.audio.SandboxHelper[8563]): Exited: Killed: 9
May  5 12:56:12 macpro kernel[0]: memorystatus_thread: idle exiting pid 8563 [com.apple.audio.]

Я розумію, що запуск може вбити процеси, коли оперативна пам'ять заповнена, але я думаю, що у мене є достатня кількість оперативної пам'яті (32 ГБ). У мене зазвичай є дуже невеликий обсяг вільної пам'яті, але завжди є понад 15 ГБ "неактивної" пам'яті, коли я перевіряю Монітор активності. Це насправді не спричиняє жодних проблем, але я хотів би зняти файл журналу, щоб я легше бачив реальні проблеми.


Це виглядає як звіт про стан виходу (що процес був убитий), не обов'язково те, що запущений сам вбив його.
Кевін Рейд

Не впевнений, що я згоден ... але якщо це так, чи знаєте ви, як бачити, що вбиває процеси?
Елліотт Б

Відповіді:


3
com.apple.launchd[1] (com.apple.audio.ComponentHelper[8564]): Exited: Killed: 9

Це launchdповідомлення про те, що процес, який він розпочав (номер 8564, названий "com.apple.audio.ComponentHelper") несподівано завершився, оскільки йому було надіслано сигнал 9 (SIGKILL).

Причину насправді вказує наступний (а не попередній) рядок у вашому фрагменті журналу.

kernel[0]: memorystatus_thread: idle exiting pid 8564 [com.apple.audio.]

(Здається, що щойно syslog обробив та / або вимив рядки з ладу.) Вбивцею є саме ядро. Відповідно до цього (див. Другий абзац у заголовку "MemoryStatus and Jetsam"), в OS X потік ядра пам'яті ядра реагує на вільну пам'ять, що падає нижче певного порогу, вбиваючи процеси, "позначені для виходу з режиму очікування".

Таким чином, ядро ​​вбивало процеси в останній зусилля канави, щоб уникнути втрати вільної оперативної пам’яті. Я також скептично поставився б до такої великої кількості оперативної пам’яті, але саме так виглядають ці записи в журналі. Зауважте, що "неактивна" пам'ять не вільна або "більше не потрібна". Неактивна пам’ять - це просто найменший доступ до поточної пам’яті, яка зараз надається. Він не доступний для повторного використання, доки його вміст не буде замінено на диск. (Я вважаю це пояснення дуже корисним.) Чи був ваш файл обміну повним? Крім того, мені цікаво, чи може це статися, якщо пейджер просто не зміг би записати на диск досить швидко, щоб не відстати від раптового сплеску розподілу (і фактичного запису).


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