Dziwna wiadomość w konsoli na temat klucza _DirtyJetsamMemoryLimit

36

Ten komunikat jest zawsze wyświetlany w dzienniku konsoli w regularnych odstępach czasu.

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

Czy ktoś może wyjaśnić, dlaczego jest wyświetlany i czy ma jakikolwiek wpływ na wydajność systemu, a także jak się go pozbyć?

erwin
źródło
1
Mam ten sam komunikat na dwóch komputerach Yosemite (jedna aktualizacja z Mavericks, druga czysta instalacja). Godziny przeszukiwania Internetu pozostawiły mnie z pustymi rękami… wszystkie wyniki odnosiły się do programowania na iOS (więc może to jest problem ze wspólną bazą kodów?). Być może wymaga to tylko aktualizacji 10.10.1 od Apple.
Dustin Wheeler
Ten sam problem tutaj. Dziennik konsoli poniżej. Brak prawdziwych błędów, które widzę, ale załadowanie zajęło prawie pełną minutę. 17.04.15 10: 31: 11.583 AM com.apple.xpc.launchd [1]: (com.apple.imfoundation.IMRemoteURLConnectionAgent) Klucz _DirtyJetsamMemoryLimit nie jest dostępny na tej platformie. 17.04.2015: 31: 52.000 jądra [0]: AppleCamIn :: power_on_hardware 4/17/15 10: 31: 53.292 AM AppleCameraAssistant [373]: StartHardwareStream: tworzenie odbiornika ramki: 1280 x 720 (420v) [12.00 , 29,97] fps
Ten sam problem tutaj. Jestem na macOS 10.13.4 High Sierra.
neoneye

Odpowiedzi:

40

Jetsam to system monitorujący wykorzystanie pamięci w OSX i iOS. Przechowuje listę procesów na urządzeniu, aby monitorować sytuacje, w których kończy się wolna pamięć RAM urządzenia i szukać rzeczy, które należy zabić, aby zwolnić pamięć RAM. Obserwuje również procesy, które zużywają zbyt dużo pamięci RAM; przekroczenie poziomu „wysokiego znaku wodnego”.

Ten komunikat o błędzie jest spowodowany tym, że kod jest współdzielony przez OSX i iOS, ale klucz _DirtyJetsamMemoryLimit jest dostępny tylko na iOS.

Możesz przeczytać więcej o Jetsam pod poniższym linkiem.

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

A jeśli jesteś naprawdę zainteresowany, możesz przeczytać część kodu Jetsam w dwóch następujących plikach.

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

Krótko mówiąc, nie sądzę, aby ten komunikat o błędzie koniecznie wskazywał na problem z wydajnością. System pamięci w systemie iOS jest o wiele bardziej rygorystyczny, ponieważ system iOS nie ma plików wymiany (inaczej pamięci wirtualnej), które pozwalają systemowi przekroczyć fizyczną ilość pamięci RAM. OSX ma o wiele więcej miejsca do gry.

Każdy może sprawdzić, czy nie ma to wpływu na wydajność, używając Monitora aktywności i pokazując wszystkie procesy w widoku CPU. Spójrz na syslogdlinię i upewnij się, że czas procesora jest rozsądny w porównaniu do innych zadań, które chcesz wykonać na komputerze Mac.

Alistair McMillan
źródło
1
Dobrze. Więc nie ma związku między tym _DirtyJetsamMemoryLimit a powtarzającymi się awariami na Yosemite?
@Domnuldid Brak połączenia. Mam stabilne komputery Mac rejestrujące ten komunikat o błędzie przez cały czas, więc nic nie wskazuje na to, że są one przypadkowe.
bmike
@bike Czy jesteśmy pewni, że sysmondma to coś wspólnego z Jetsam? Miałem wrażenie, że Jetsam jest w całości zawarty w jądrze i sysmondsłuży tylko do karmienia takich rzeczy, jak Monitor aktywności i top.
Alistair McMillan
@AlistairMcMillan Wybacz mój błąd - syslogdto powiązany demon, który wykazywałby nadmierną liczbę operacji we / wy z powodu przetwarzania plików dziennika i kierowania komunikatów dziennika. Masz rację co dosysmond
bmike
4
jeśli kod jest współdzielony między iOS i OS X, to Apple des powinien odfiltrować komunikaty dziennika wyjściowego ... nie wyświetla wiadomości związanych z iOS na komputerze z systemem OS X ... dziennik systemowy staje się tak długi, jak Biblia ...
erwin