Tengo dos MacBooks, una con una instalación nueva de OS X y otra con una instalación anterior. El anterior tiene un kernel_task que ocupa 1,52 GB de RAM. El más nuevo: 416 MB. Estas no son máquinas idénticas ni nada, pero tengo curiosidad acerca de la magnitud de la discrepancia y lo que contribuye a ella. ¿Hay alguna forma de inspeccionar lo que comprende la huella kernel_task, idealmente sin necesidad de desinstalar experimentalmente varias aplicaciones/servicios a la vez?
Lo intenté:
$ kextstat
Index Refs Address Size Wired Name (Version) <Linked Against>
1 77 0xffffff7f80757000 0x686c 0x686c com.apple.kpi.bsd (12.6.0)
2 6 0xffffff7f80742000 0x46c 0x46c com.apple.kpi.dsep (12.6.0)
3 101 0xffffff7f80761000 0x1b7ec 0x1b7ec com.apple.kpi.iokit (12.6.0)
4 107 0xffffff7f8074d000 0x99f8 0x99f8 com.apple.kpi.libkern (12.6.0)
5 94 0xffffff7f80743000 0x88c 0x88c com.apple.kpi.mach (12.6.0)
6 41 0xffffff7f80744000 0x502c 0x502c com.apple.kpi.private (12.6.0)
7 64 0xffffff7f8074a000 0x23cc 0x23cc com.apple.kpi.unsupported (12.6.0)
8 0 0xffffff7f814b2000 0x41000 0x41000 com.apple.kec.corecrypto (1.0) <7 6 5 4 3 1>
9 22 0xffffff7f807f3000 0x9000 0x9000 com.apple.iokit.IOACPIFamily (1.4) <7 6 4 3>
10 31 0xffffff7f808b2000 0x29000 0x29000 com.apple.iokit.IOPCIFamily (2.8) <7 6 5 4 3>
11 2 0xffffff7f81e79000 0x5a000 0x5a000 com.apple.driver.AppleACPIPlatform (1.8) <10 9 7 6 5 4 3 1>
12 1 0xffffff7f80acf000 0xe000 0xe000 com.apple.driver.AppleKeyStore (28.21) <7 6 5 4 3 1>
13 5 0xffffff7f8077d000 0x25000 0x25000 com.apple.iokit.IOStorageFamily (1.8) <7 6 5 4 3 1>
14 0 0xffffff7f80e1b000 0x19000 0x19000 com.apple.driver.DiskImages (345) <13 7 6 5 4 3 1>
15 0 0xffffff7f81b60000 0x2e000 0x2e000 com.apple.driver.AppleIntelCPUPowerManagement (214.0.0) <7 6 5 4 3 1>
16 0 0xffffff7f8075e000 0x3000 0x3000 com.apple.security.TMSafetyNet (7) <7 6 5 4 2 1>
17 2 0xffffff7f80854000 0x4000 0x4000 com.apple.kext.AppleMatch (1.0.0d1) <4 1>
18 1 0xffffff7f80858000 0x11000 0x11000 com.apple.security.sandbox (220.4) <17 7 6 5 4 3 2 1>
19 0 0xffffff7f80869000 0x6000 0x6000 com.apple.security.quarantine (2.1) <18 17 7 6 5 4 2 1>
20 0 0xffffff7f81eea000 0x8000 0x8000 com.apple.nke.applicationfirewall (4.0.39) <7 6 5 4 3 1>
21 0 0xffffff7f81e4d000 0x3000 0x3000 com.apple.driver.AppleAPIC (1.7) <4 3>
22 3 0xffffff7f80d05000 0x4000 0x4000 com.apple.iokit.IOSMBusFamily (1.1) <5 4 3>
23 0 0xffffff7f81ed9000 0x7000 0x7000 com.apple.driver.AppleACPIEC (1.8) <22 11 9 5 4 3>
24 0 0xffffff7f81925000 0x4000 0x4000 com.apple.driver.AppleSMBIOS (1.9) <7 4 3>
25 0 0xffffff7f81bb0000 0x3000 0x3000 com.apple.driver.AppleHPET (1.8) <9 7 5 4 3>
26 6 0xffffff7f80add000 0x6d000 0x6d000 com.apple.iokit.IOHIDFamily (1.8.1) <12 7 6 5 4 3 2 1>
27 0 0xffffff7f81ee3000 0x4000 0x4000 com.apple.driver.AppleACPIButtons (1.8) <26 11 9 7 6 5 4 3 1>
28 0 0xffffff7f81951000 0x8000 0x8000 com.apple.driver.AppleRTC (1.5) <9 5 4 3 1>
29 1 0xffffff7f81e20000 0x5000 0x5000 com.apple.driver.AppleEFIRuntime (2.0) <7 6 5 4 3>
30 0 0xffffff7f8192b000 0x8000 0x8000 com.apple.driver.AppleSmartBatteryManager (161.0.0) <22 9 5 4 3 1>
31 0 0xffffff7f81e25000 0xa000 0xa000 com.apple.driver.AppleEFINVRAM (2.0) <29 7 6 5 4 3>
32 0 0xffffff7f81b5b000 0x3000 0x3000 com.apple.driver.AppleIntelCPUPowerManagementClient (214.0.0) <7 6 5 4 3 1>
33 15 0xffffff7f80a4e000 0x5e000 0x5e000 com.apple.iokit.IOUSBFamily (635.4.0) <10 7 5 4 3 1>
34 0 0xffffff7f80be7000 0x18000 0x18000 com.apple.driver.AppleUSBEHCI (621.4.6) <33 10 7 5 4 3 1>
35 0 0xffffff7f80b6d000 0x1d000 0x1d000 com.apple.driver.AppleUSBXHCI (635.4.0) <33 10 7 5 4 3 1>
36 2 0xffffff7f81024000 0x16000 0x16000 com.apple.iokit.IOAHCIFamily (2.5.1) <5 4 3 1>
37 0 0xffffff7f81e52000 0x1a000 0x1a000 com.apple.driver.AppleAHCIPort (2.6.6) <36 10 5 4 3 1>
38 0 0xffffff7f81938000 0x12000 0x12000 com.apple.driver.AppleSDXC (1.4.3) <13 10 5 4 3 1>
39 3 0xffffff7f80a0f000 0x2b000 0x2b000 com.apple.iokit.IONetworkingFamily (3.0) <7 6 5 4 3 1>
40 1 0xffffff7f8106e000 0x68000 0x68000 com.apple.iokit.IO80211Family (530.5) <39 7 6 5 4 3 1>
41 0 0xffffff7f810dd000 0x1f9000 0x1f9000 com.apple.driver.AirPort.Brcm4331 (615.20.17) <40 39 10 7 5 4 3 1>
42 1 0xffffff7f80acc000 0x3000 0x3000 com.apple.iokit.IOUSBUserClient (630.4.4) <33 7 5 4 3 1>
43 0 0xffffff7f80bcb000 0x15000 0x15000 com.apple.driver.AppleUSBHub (635.4.0) <33 5 4 3 1>
44 4 0xffffff7f80c1c000 0xbb000 0xbb000 com.apple.iokit.IOThunderboltFamily (2.7.7) <5 4 3 1>
45 0 0xffffff7f81863000 0x16000 0x16000 com.apple.driver.AppleThunderboltNHI (1.9.2) <44 10 9 5 4 3 1>
46 0 0xffffff7f8104a000 0x17000 0x17000 com.apple.iokit.IOAHCIBlockStorage (2.3.5) <36 13 6 5 4 3 1>
47 0 0xffffff7f817a6000 0x3000 0x3000 com.apple.driver.XsanFilter (404) <13 5 4 3 1>
48 0 0xffffff7f81502000 0x9000 0x9000 com.apple.BootCache (34) <7 6 5 4 3 1>
49 0 0xffffff7f81e11000 0x4000 0x4000 com.apple.AppleFSCompression.AppleFSCompressionTypeZlib (1.0.0d1) <6 4 3 2 1>
50 0 0xffffff7f81e17000 0x3000 0x3000 com.apple.AppleFSCompression.AppleFSCompressionTypeDataless (1.0.0d1) <7 6 4 3 2 1>
52 1 0xffffff7f80b66000 0x7000 0x7000 com.apple.driver.AppleUSBComposite (621.4.0) <33 4 3 1>
53 0 0xffffff7f813cf000 0xc4000 0xc4000 com.apple.driver.CoreStorage (296.18.2) <13 7 6 5 4 3 1>
54 0 0xffffff7f80bc4000 0x7000 0x7000 com.apple.driver.AppleUSBMergeNub (621.4.6) <52 33 4 3 1>
56 3 0xffffff7f80b5d000 0x9000 0x9000 com.apple.iokit.IOUSBHIDDriver (623.4.0) <33 26 5 4 3 1>
57 0 0xffffff7f817da000 0x4000 0x4000 com.apple.driver.AppleUSBTCKeyboard (237.1) <56 33 26 7 6 5 4 3 1>
59 0 0xffffff7f817e5000 0x13000 0x13000 com.apple.driver.AppleUSBMultitouch (237.3) <56 33 26 6 5 4 3 1>
60 0 0xffffff7f81855000 0x5000 0x5000 com.apple.driver.AppleThunderboltPCIDownAdapter (1.3.2) <44 10 5 4 3>
61 1 0xffffff7f8187d000 0x9000 0x9000 com.apple.driver.AppleThunderboltDPAdapterFamily (2.5.0) <44 10 9 5 4 3>
62 0 0xffffff7f81886000 0x6000 0x6000 com.apple.driver.AppleThunderboltDPInAdapter (2.5.0) <61 44 10 9 5 4 3>
63 0 0xffffff7f817e0000 0x3000 0x3000 com.apple.driver.AppleUSBTCButtons (237.1) <56 33 26 7 6 5 4 3 1>
64 15 0xffffff7f80dc4000 0x38000 0x38000 com.apple.iokit.IOGraphicsFamily (2.3.7) <10 7 5 4 3>
65 2 0xffffff7f81914000 0xe000 0xe000 com.apple.driver.AppleSMBusController (1.0.11d1) <22 10 9 5 4 3>
66 0 0xffffff7f819bb000 0xd000 0xd000 com.apple.driver.AppleMCCSControl (1.1.11) <65 64 10 9 7 5 4 3 1>
67 8 0xffffff7f80e07000 0x12000 0x12000 com.apple.iokit.IONDRVSupport (2.3.7) <64 10 7 5 4 3>
68 1 0xffffff7f81df1000 0x5000 0x5000 com.apple.driver.AppleBacklightExpert (1.0.4) <67 64 10 5 4 3>
69 0 0xffffff7f81e45000 0x5000 0x5000 com.apple.driver.AppleBacklight (170.3.5) <68 67 64 10 5 4 3>
70 2 0xffffff7f81be1000 0xc000 0xc000 com.apple.iokit.IOHDAFamily (2.4.7fc4) <5 4 3 1>
71 1 0xffffff7f81c18000 0x19000 0x19000 com.apple.driver.AppleHDAController (2.4.7fc4) <70 64 10 7 6 5 4 3 1>
72 0 0xffffff7f81ae6000 0x61000 0x61000 com.apple.driver.AppleIntelFramebufferCapri (8.1.6) <64 10 9 7 6 5 4 3 1>
73 5 0xffffff7f80d74000 0xa000 0xa000 com.apple.driver.IOPlatformPluginFamily (5.4.1d13) <9 7 6 5 4 3>
74 5 0xffffff7f807fc000 0xf000 0xf000 com.apple.driver.AppleSMC (3.1.5d4) <9 7 5 4 3>
75 1 0xffffff7f80d7e000 0xe000 0xe000 com.apple.driver.X86PlatformPlugin (1.0.0) <74 73 33 9 7 6 5 4 3 1>
78 1 0xffffff7f81ddd000 0x3000 0x3000 com.apple.driver.AppleGraphicsControl (3.4.5) <67 64 10 9 7 5 4 3 1>
79 0 0xffffff7f81de0000 0xc000 0xc000 com.apple.driver.ApplePolicyControl (3.4.5) <78 67 64 10 9 7 5 4 3 1>
80 0 0xffffff7f813c9000 0x5000 0x5000 com.apple.Dont_Steal_Mac_OS_X (7.0.0) <74 7 4 3 1>
81 2 0xffffff7f80efb000 0x9a000 0x9a000 com.apple.iokit.IOBluetoothFamily (4.1.7f5) <33 7 5 4 3 1>
82 0 0xffffff7f80cf1000 0x12000 0x12000 com.apple.iokit.IOSurface (86.0.4) <7 5 4 3 1>
83 1 0xffffff7f81a27000 0x4b000 0x4b000 com.apple.iokit.IOAcceleratorFamily (74.18) <67 64 10 7 5 4 3 1>
84 0 0xffffff7f81a7d000 0x49000 0x49000 com.apple.driver.AppleIntelHD4000Graphics (8.1.6) <83 67 64 10 7 5 4 3 1>
85 0 0xffffff7f80d94000 0x3000 0x3000 com.apple.driver.AppleSMCPDRC (1.0.0) <73 10 6 4 3>
87 0 0xffffff7f80a41000 0x7000 0x7000 com.apple.iokit.IOUserEthernet (1.0.0d1) <39 6 5 4 3 1>
88 2 0xffffff7f80eb6000 0xe000 0xe000 com.apple.kext.OSvKernDSPLib (1.12) <5 4>
89 5 0xffffff7f80ec4000 0x2f000 0x2f000 com.apple.iokit.IOAudioFamily (1.9.2fc7) <88 5 4 3 1>
90 1 0xffffff7f81c31000 0xba000 0xba000 com.apple.driver.DspFuncLib (2.4.7fc4) <89 88 6 5 4 3 1>
91 0 0xffffff7f81cf4000 0x8b000 0x8b000 com.apple.driver.AppleHDA (2.4.7fc4) <90 89 71 70 67 64 6 5 4 3 1>
94 0 0xffffff7f8080d000 0x7000 0x7000 com.apple.driver.SMCMotionSensor (3.0.3d1) <74 5 4 3>
95 0 0xffffff7f81911000 0x2000 0x2000 com.apple.driver.AppleSMBusPCI (1.0.11d1) <10 5 4 3>
96 0 0xffffff7f819f2000 0x3000 0x3000 com.apple.driver.AppleLPC (1.6.3) <73 10 5 4 3>
97 0 0xffffff7f81bf0000 0x16000 0x16000 com.apple.driver.AppleMikeyDriver (2.4.7fc4) <65 9 5 4 3 1>
98 1 0xffffff7f80fca000 0x1b000 0x1b000 com.apple.iokit.IOBluetoothHostControllerUSBTransport (4.1.7f5) <33 10 9 7 5 4 3 1>
99 0 0xffffff7f80fe5000 0x8000 0x8000 com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport (4.1.7f5) <98 33 10 9 7 5 4 3>
102 0 0xffffff7f817fb000 0x5000 0x5000 com.apple.driver.AppleUpstreamUserClient (3.5.12) <64 10 9 7 5 4 3 1>
103 0 0xffffff7f81909000 0x5000 0x5000 com.apple.driver.AppleSMCLMU (2.0.3d0) <74 64 5 4 3>
104 0 0xffffff7f819b0000 0x3000 0x3000 com.apple.driver.AppleMikeyHIDDriver (124) <26 7 4 3 1>
105 1 0xffffff7f80d0e000 0xe000 0xe000 com.apple.iokit.IOSerialFamily (10.0.6) <7 6 5 4 3 1>
106 0 0xffffff7f80ea6000 0xa000 0xa000 com.apple.iokit.IOBluetoothSerialManager (4.1.7f5) <105 7 5 4 3 1>
107 0 0xffffff7f80fb5000 0x9000 0x9000 com.apple.driver.IOBluetoothA2DPAudioDriver (4.1.7f5) <89 81 5 4 3 1>
108 0 0xffffff7f80fa4000 0xa000 0xa000 com.apple.driver.IOBluetoothSCOAudioDriver (4.1.7f5) <89 81 5 4 3>
109 0 0xffffff7f81518000 0x5000 0x5000 com.apple.driver.AudioAUUC (1.60) <89 64 10 9 7 5 4 3 1>
110 0 0xffffff7f80d8c000 0x6000 0x6000 com.apple.driver.X86PlatformShim (1.0.0) <75 74 73 7 4 3>
111 0 0xffffff7f81dc3000 0x12000 0x12000 com.apple.driver.AGPM (100.13.14) <73 67 64 10 5 4 3>
112 0 0xffffff7f819a9000 0x4000 0x4000 com.apple.driver.ApplePlatformEnabler (2.0.7d2) <7 5 4 3>
113 0 0xffffff7f80870000 0x2b000 0x2b000 com.apple.iokit.IOSCSIArchitectureModelFamily (3.5.6) <5 4 3 1>
114 0 0xffffff7f81f07000 0x12000 0x12000 com.intel.kext.intelhaxm (1.1.1) <7 5 4 3 1>
115 2 0xffffff7f80817000 0x5000 0x5000 com.apple.kext.triggers (1.0) <7 6 5 4 3 1>
116 0 0xffffff7f8150d000 0x9000 0x9000 com.apple.filesystems.autofs (3.0) <115 7 6 5 4 3 1>
117 3 0xffffff7f81f19000 0x58000 0x58000 org.virtualbox.kext.VBoxDrv (4.3.22) <7 5 4 3 1>
118 0 0xffffff7f81f71000 0x8000 0x8000 org.virtualbox.kext.VBoxUSB (4.3.22) <117 42 33 7 5 4 3 1>
119 0 0xffffff7f81f79000 0x5000 0x5000 org.virtualbox.kext.VBoxNetFlt (4.3.22) <117 7 5 4 3 1>
120 0 0xffffff7f81f7e000 0x6000 0x6000 org.virtualbox.kext.VBoxNetAdp (4.3.22) <117 5 4 1>
124 0 0xffffff7f81f8d000 0xd000 0xd000 com.apple.nke.asp_tcp (7.1.0) <7 6 5 4 3 1>
125 1 0xffffff7f81f9a000 0x11000 0x11000 com.apple.security.SecureRemotePassword (1.0) <4 1>
126 0 0xffffff7f81fab000 0x4f000 0x4f000 com.apple.filesystems.afpfs (10.0) <125 7 6 5 4 3 1>
127 0 0xffffff7f81ffa000 0x33000 0x33000 com.apple.filesystems.smbfs (1.8.4) <115 7 6 5 4 3 1>
$ kextstat | grep -v com.apple
Index Refs Address Size Wired Name (Version) <Linked Against>
114 0 0xffffff7f81f07000 0x12000 0x12000 com.intel.kext.intelhaxm (1.1.1) <7 5 4 3 1>
117 3 0xffffff7f81f19000 0x58000 0x58000 org.virtualbox.kext.VBoxDrv (4.3.22) <7 5 4 3 1>
118 0 0xffffff7f81f71000 0x8000 0x8000 org.virtualbox.kext.VBoxUSB (4.3.22) <117 42 33 7 5 4 3 1>
119 0 0xffffff7f81f79000 0x5000 0x5000 org.virtualbox.kext.VBoxNetFlt (4.3.22) <117 7 5 4 3 1>
120 0 0xffffff7f81f7e000 0x6000 0x6000 org.virtualbox.kext.VBoxNetAdp (4.3.22) <117 5 4 1>
La entrada más grande es la entrada del aeropuerto con un tamaño de 2068480 bytes (estos son bytes según man kextstat
), es decir, no es grande.
Ejecutaría el sysdiagnose
comando para generar instantáneas en ambos sistemas. Va a registrar muchos más datos de los que necesita, pero mostrará mapas de memoria de por qué exactamente la asignación de memoria ha llegado al lugar donde está.
Luego, si configura dos cuentas de prueba en cada Mac sin nada en ellas, configure ambas para que sean el usuario de inicio de sesión automático y reinicie ambas.
Tome un tercero y un cuarto sysdiagnose
de los sistemas reiniciados limpiamente. Debería encontrar una asignación de memoria de kernel estable y reproducible cuando recién se inicia y no se inician aplicaciones. No es que ambos sistemas tengan las mismas asignaciones iniciales de kernel, solo que deberían ser estables en los reinicios.
Dentro de los archivos tar.gz que genera sysdiagnose, comience comparando los archivos de huella-todos.txt y vea qué procesos están causando las mayores asignaciones de memoria del kernel. Las últimas líneas de ese archivo también son útiles para ver el equilibrio entre las asignaciones del núcleo y las asignaciones/clases de memoria del usuario.
Probablemente podría usar la footprint
herramienta, pero soy perezoso y dejo que sysdiagnose me obtenga todos los registros y luego seleccione/elija las piezas que necesito para una tarea específica. También uso heap
y vmmap
a menudo en demonios y procesos de usuario, pero usarlo en kernel_task podría no ser tan útil.
Utilice zprint -t
(Lion) o sudo zprint -t
(Mountain Lion y posterior) ( man zprint ) para mostrar información sobre las zonas del kernel
Ejemplo (me salté alrededor de 160 líneas):
zprint -t
elem cur max cur max cur alloc alloc
zone name size size size #elts #elts inuse size count Total Allocs
-----------------------------------------------------------------------------------------------------------
zones 544 93K 102K 176 192 167 8K 15 88K
vm.objects 224 62134K 66430K 284043 303680 283180 16K 73 C 2702161K
vm.object.hash.en$ 40 9941K 13122K 254490 335923 238354 4K 102 C 130659K
maps 232 43K 40K 192 176 180 8K 35 27576K
....
....
VM.map.entries 80 6100K 7776K 78080 99532 76888 20K 256 C 1141452K
kernel_stacks 16384 2448K 3200K 153 200 139 16K 1 C 52144K
page_tables 4096 138280K 4293389860K 34570 654217 34570 4K 1 C 595852K
kalloc.large 72308 31705K 32310K 449 457 449 70K 1 13005729K
TOTAL SIZE = 920734440
TOTAL USED = 895302860
TOTAL ALLOCS = 310758214530
Yang