Czy zintegrowana pamięć VRAM jest uwzględniona w RAM `kernel_task` w monitorze aktywności?

11

Byłem oszołomiony odkryciem, że jądro Mac OS X może zużywać 750 MB pamięci RAM. Kilka powiązanych pytań:

nieco wyjaśnił problem, ale pozostaje jedno pytanie: twierdzenie, że pamięć wideo dla zintegrowanej grafiki na pokładzie jest oznaczona jako używana przez jądro .

Czy to naprawdę prawda? Czy pamięć VRAM jest uwzględniona w liczbie pokazanej przez Monitor aktywności kernel_task?

sds
źródło
Dla przypomnienia, moim zrzutem ekranu pokazującym 750 MB pamięci RAM dla jądra był MacBook Pro, Retina, 13-calowy, początek 2013 r. Z „Intel HD Graphics 4000 1024 MB” jako jedyną kartą graficzną, a procesor to Intel Core i5 2,6 GHz . Spróbuję uciec sysdiagnosei sprawdzić, czy uda mi się rozbić twoje podstawowe pytanie.
bmike
@bike: Ponieważ masz 1 GB pamięci VRAM i kernel_taskużywasz „tylko” 750 MB, właśnie ustaliliśmy, że wszystkie 750 MB pochodzi ze zwykłej pamięci RAM, a nie z pamięci VRAM. Dobrze?
sds
Mam 1,8 GB pamięci przez jądro, czy to źle?
Renderuj

Odpowiedzi:

3

Z jakiej wersji Mac OS X korzystasz?

W kernel_taskMac OS X 10.9 Mavericks zajmuje 1,07 GB pamięci RAM na moim MacBooku Pro 2012 (bez Retina) ze zintegrowaną kartą graficzną Intel HD4000 i 16 GB systemowej pamięci RAM. Tak, jest to absolutnie konieczne. Jeśli masz więcej fizycznej pamięci RAM, Mac OS X zużyje dużo kernel_task, aby system działał optymalnie.

Z każdą nową wersją Mac OS X na przestrzeni lat system Mac OS X kernel_taskwymagał coraz więcej pamięci.

Z mojego doświadczenia wynika, że ​​jeśli korzystasz z systemu Mac OS X 10.8 Mountain Lion, Twój komputer Mac musi mieć więcej niż 4 GB systemowej pamięci RAM, aby działać optymalnie (bez konieczności ciągłego używania pliku wymiany na dysku twardym przez system operacyjny, co obniża wydajność). Teraz wydaje się, że Twój komputer Mac potrzebuje więcej niż 6 GB pamięci RAM, aby skutecznie uruchomić system Mac OS X 10.9 Mavericks.

Ilość pamięci RAM potrzebnej do systemu Microsoft Windows 8.0 i 8.1 jest porównywalna. Jest to po prostu wymagane w przypadku najnowszych systemów operacyjnych komputerów osobistych w 2013 roku.

Pamiętaj, że działa wiele funkcji systemu kernel_task, a lista tego, co działa na komputerze Mac, zmienia się w zależności od tego, do czego używasz komputera Mac.

Znalazłem dla ciebie dobre wytłumaczenie w „ Kernel_task zajmującym pamięć RAM w OS X ” z CNet w 2011 roku. Cytat:

... zobaczysz inny proces o nazwie „kernel_task”, który również regularnie zużywa kilkaset megabajtów prawdziwej pamięci RAM i wydaje się zwiększać zużycie pamięci RAM przy użyciu systemu.

Jądro w OS X to architektura oprogramowania odpowiedzialna za obsługę zasobów potrzebnych procesom i programom. Obejmują one zarządzanie harmonogramem wielozadaniowości, pamięcią wirtualną, wejściem i wyjściem systemu oraz różnymi procedurami komunikacji między procesami. Ponadto jądro można zmodyfikować i uzyskać ulepszoną funkcjonalność, ładując rozszerzenia jądra (kexts), aby zapewnić zarządzanie na poziomie systemu funkcjami takimi jak Bluetooth i Wi-Fi, procesory graficzne, sprzęt innych firm, dostęp do urządzeń peryferyjnych i specjalny system plików wsparcie. Zasadniczo jądro jest odpowiedzialne za uruchamianie sprzętu i udostępnianie zasobów sprzętowych aplikacjom i usługom systemowym.

... proces „kernel_task” może zajmować dużą ilość pamięci systemowej. Podczas uruchamiania systemu, mimo że mogą być załadowane rozszerzenia jądra, nie wszystkie usługi są aktywne. System może być gotowy do użycia, ale nie załaduje ich całkowicie, dopóki nie będzie potrzebny. Dlatego, jeśli początkowo uruchamiasz system i sprawdzasz Monitor aktywności, możesz zobaczyć proces kernel_task zajmujący stosunkowo niewielką ilość pamięci RAM. Kiedy zaczniesz korzystać z systemu i aktywować funkcje, takie jak kamera iSight, usługi Wi-Fi, przełączanie procesorów graficznych i korzystanie z urządzeń zewnętrznych, to zadanie jądra wykorzysta zasoby dla tych urządzeń i powiększy się.


źródło
2
w jaki sposób odpowiada to pytanie, które zadałem na temat VRAM?
sds
Uważam, że pierwotne sformułowanie twojego pytania brzmiało: „Co obejmuje pakiet kernel_task?” i na to próbowałem odpowiedzieć. Od tego czasu przeredagowałeś tytuł pytania.
2
Przykro mi, że moje pytanie było mylące. Wiem, co to jest i robi jądro, moje pytanie dotyczyło raportowania zużycia pamięci.
sds
2

Myślę, że to jest uwzględnione. Mam MBP 13 "2015 z Iris, i kernel_task, który zajmuje również dużo pamięci, badałem sytuację i odkryłem cudowne zprintpolecenie. Drukuje użycie stref pamięci jądra, widzę 2 wpisy zajmujące większość pamięć dla mnie:

  • com.apple.iokit.IOAcceleratorFamily2 - 758044K
  • vm.pages.array - 221204 K.

Niestety nie udało mi się znaleźć wiarygodnych informacji na temat IOAcceleratorFamily2 (i nie znalazłem żadnych informacji na vm.pages.array), ale nazwa sugeruje, że ma coś wspólnego z I / O i przyspieszeniem. Sądzę, że na podstawie tych informacji jest to część pamięci, która odpowiada za przyspieszenie wideo i jest przeznaczona na potrzeby przetwarzania obrazu przez tęczówkę.

Zrobiłem mały test, rozpoczynając jednocześnie nagrywanie ekranu i dwa filmy 4K na youtube: com.apple.iokit.IOAcceleratorFamily2 wzrosło do 1,1 G w ciągu kilku sekund, a po zatrzymaniu nagrywania i filmów spadło do 630M . Dlatego myślę, że jest bardzo prawdopodobne, że jest odpowiedzialny za VRAM.

Artem Shitov
źródło
Więc nie ma sposobu na zmniejszenie tego prawie gigabajta pamięci RAM? Czy chipset wideo nie powinien mieć dedykowanej pamięci? Pobranie minimum 800 MB z pamięci RAM jest przestępstwem :(
Kamafeather