Per il tuo elevato carico della CPU, scaviamo nel sistema.
- Che aspetto ha il grafico della pressione della memoria quando la CPU è inattiva meno del 50% (se il tuo idle è superiore al 50%, nessun problema di sistema è probabile - concentrati sull'ottimizzazione app quando questo è il caso)
- Qual è la temperatura ambiente e la temperatura della CPU quando il kernel_task è più del 100% della CPU per un thread?
- Apri Terminale quando hai un elevato carico della CPU ed esegui
vm_stat 60
- raccogli 10 minuti di dati e guarda le colonne sottostanti
- Apri il terminale ed esegui
iostat 60
per circa 10 minuti - Control + C per chiudere entrambi i comandi "stat".
Per caricare il mio Mac, ho scaricato 10 app dal Mac App Store - alcune di grandi dimensioni come iMovie e Garage Band e alcune piccole come iWork e simili.
mac:~ me$ iostat 60
disk0 cpu load average
KB/t tps MB/s us sy id 1m 5m 15m
59.40 6 0.32 17 10 72 6.56 3.63 3.67
21.80 1171 24.92 38 52 10 6.96 4.25 3.89
40.43 879 34.71 35 37 28 7.45 5.18 4.29
15.55 1313 19.94 31 27 42 4.64 4.83 4.22
18.94 1434 26.52 35 29 36 3.98 4.64 4.19
41.36 611 24.67 27 21 52 3.72 4.38 4.12
21.38 913 19.07 27 21 52 2.75 4.00 3.99
20.91 638 13.03 10 12 78 2.78 3.80 3.91
21.68 36 0.77 3 2 95 2.93 3.64 3.84
20.44 29 0.59 5 2 93 1.99 3.28 3.70
22.15 22 0.47 8 2 91 2.08 3.08 3.59
Puoi vedere qui che le medie del carico sono impegnative per la CPU, ma l'IO è andato giù mentre il mio software si aggiornava e tutti hanno smesso di scrivere sul disco.
mac:~ me$ vm_stat 60
Mach Virtual Memory Statistics: (page size of 4096 bytes)
free active specul inactive throttle wired prgable faults copy 0fill reactive purged file-backed anonymous cmprssed cmprssor dcomprs comprs pageins pageout swapins swapouts
595910 279890 45280 279751 0 492724 37678 278656K 2546038 189649K 1824146 1002019 281435 323486 1818476 403174 19561912 35034707 16848168 287811 28125307 40507111
504689 443792 201139 474742 0 436928 70152 2732782 189565 424938 0 2000 676091 443582 278992 35188 24217 0 135660 0 57626 32072
288052 470450 348036 498497 0 431105 76523 2060375 294486 433689 4 0 849080 467903 264481 60629 11211 0 28139 0 115989 48218
502987 516349 70119 515432 0 425924 89544 1099406 51694 219782 6 0 579472 522428 257944 66005 3466 0 44239 0 5781 0
507406 531812 141516 425286 0 424196 94416 591951 17077 130465 6 0 562119 536495 256845 66504 1073 0 89051 0 630 0
291194 490232 280286 553763 0 421515 64940 351719 53197 123817 0 0 832785 491496 238005 59444 3744 0 176346 0 300 0
3514 453966 451770 744198 0 390220 28598 197808 7292 121072 66 45608 1195232 454702 232836 52649 5065 48 181145 511 2681 256
93402 452291 348713 757438 0 391651 27230 341329 5557 48781 11 10 1104234 454208 232446 52981 382 0 87528 1 384 0
68118 472252 352168 759063 0 392179 27230 134456 2001 68625 0 0 1110375 473108 231810 52997 636 0 4232 0 60 0
74742 462223 354622 758990 0 393270 25344 52168 525 39814 0 0 1112806 463029 230636 52859 230 0 198 0 0 0
Allo stesso modo, non tutti i numeri vm_stat sono significativi. Il più importante è errori e questo mostra quanto sia occupato il sistema di memoria. Il prossimo è libero, se è troppo basso (meno di 100) per un intervallo diverso da quello, si sta pagando continuamente dentro e fuori pezzi di dati. Questo mostrerà nelle ultime 4 colonne: ** pageins pageout swapouts swapouts ** Le poche operazioni out nel mio esempio mostrano questo riequilibrio, ma un flusso costante di esse indica che è possibile ottimizzare il sistema o software per una migliore velocità.