Странное сообщение в консоли о ключе _DirtyJetsamMemoryLimit


36

Это сообщение всегда отображается в журнале консоли через равные промежутки времени.

com.apple.xpc.launched: (comm.apple.imFoundation.IMRemoteURLConnectionAgent) the _DirtyJetsamMemoryLimit key is not available in this platform

Может кто-нибудь объяснить, почему он отображается и влияет ли он на производительность системы, а также как от него избавиться?


1
У меня одно и то же сообщение на двух машинах Yosemite (одно обновление от Mavericks, другое чистая установка). Многочасовой поиск в Интернете оставил меня с пустыми руками ... все результаты были связаны с программированием под iOS (так что, может быть, это проблема общей базы кода?). Возможно, это просто требует обновления 10.10.1 от Apple.
— Дастин Уилер

Та же проблема здесь. Журнал консоли ниже. Никаких реальных ошибок я не вижу, но загрузка заняла почти целую минуту. 17.04.15 10: 31: 11.583 AM com.apple.xpc.launchd [1]: (com.apple.imfoundation.IMRemoteURLConnectionAgent) Ключ _DirtyJetsamMemoryLimit недоступен на этой платформе. 17.04.15 10: 31: 52.000 AM ядро ​​[0]: AppleCamIn :: power_on_hardware 17.04.15 15: 31: 53.292 AM AppleCameraAssistant [373]: StartHardwareStream: создание получателя фрейма: 1280 x 720 (420v) [12.00 , 29.97] fps

Та же проблема здесь. Я на macOS 10.13.4 High Sierra.
— neoneye

Ответы:


40

Jetsam - это система, которая отслеживает использование памяти в OSX и iOS. Он хранит список процессов на устройстве, чтобы отслеживать ситуации, когда на устройстве не хватает свободной оперативной памяти, и искать вещи, которые нужно убить, чтобы освободить оперативную память. Он также отслеживает процессы, которые используют слишком много оперативной памяти; преодоление уровня "высокой отметки".

Это сообщение об ошибке вызвано тем, что код используется совместно OSX и iOS, но ключ _DirtyJetsamMemoryLimit доступен только в iOS.

Вы можете прочитать больше о Jetsam по следующей ссылке.

http://newosxbook.com/articles/MemoryPressure.html

И если вы действительно заинтересованы, вы можете прочитать часть кода Jetsam в следующих двух файлах.

http://www.opensource.apple.com/source/xnu/xnu-1456.1.26/bsd/kern/kern_memorystatus.c http://www.opensource.apple.com/source/xnu/xnu-1456.1.26 /bsd/sys/kern_memorystatus.h

Короче говоря, я не думаю, что это сообщение об ошибке обязательно указывает на проблему с производительностью. Система памяти в iOS намного более строгая, потому что в iOS нет таких вещей, как файлы подкачки (или виртуальная память), которые позволяют системе превышать физический объем оперативной памяти. В OSX гораздо больше возможностей для игры.

Любой может проверить, что это не влияет на производительность, используя Activity Monitor и показывая все процессы в представлении CPU. Посмотрите на syslogdстроку и убедитесь, что процессорное время является разумным по сравнению с другими задачами, которые вы хотите выполнять с вашим Mac.


1
Хорошо. Таким образом, нет никакой связи между этим _DirtyJetsamMemoryLimit и повторяющимися сбоями на Yosemite?

@Domnuldid Нет связи. У меня стабильные компьютеры Mac, которые постоянно регистрируют это сообщение об ошибке, поэтому нет четких указаний на то, что они не случайны.
— Bmike

@bmike Мы уверены, что sysmondэто как-то связано с Jetsam? У меня сложилось впечатление, что Jetsam полностью содержится в ядре и sysmondпредназначен только для таких вещей, как Activity Monitor и top.
— Алистер Макмиллан

@AlistairMcMillan Простите мою ошибку - syslogdэто связанный демон, который будет показывать чрезмерный ввод-вывод из-за обработки файла журнала и маршрутизации сообщений журнала. Вы правильно оsysmond
— bmike

4
если код разделен между iOS и OS X, то Apple des должна фильтровать выходные сообщения журнала ... не отображая сообщения, связанные с iOS на компьютере OS X ... системный журнал становится таким же длинным, как Библия ...
— erwin
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.