Странное сообщение в консоли о ключе _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