Baru-baru ini saya memperhatikan daya tahan baterai saya mengalami penurunan yang cukup signifikan dan proses "kernel_task" menggunakan cukup banyak CPU (konstan 1-6% pada 2.8GHz dual-core i7, 2010 MBP). Jelas saya pikir penggunaan CPU kernel_task berkontribusi terhadap penurunan baterai dan saya perlu mencari tahu mengapa.
Mencari di Google, tampaknya kernel_task adalah versi Windows X "svchost.exe" dari OS X - proses melakukan segalanya yang terkenal yang tidak dapat Anda debug sepenuhnya, Anda harus secara manual membalik sakelar hingga salah satu di antaranya berfungsi.
Apakah ada cara saya dapat lebih mudah mencapai bagian bawah dari aktivitas kernel_task yang tidak terkendali? Saya belum mencoba reboot karena jika itu "memperbaikinya", itu tidak benar-benar memperbaiki masalah yang mendasarinya.
Activity Monitor menunjukkan penggunaan CPU. Ketika saya menekan Inspect, ini menunjukkan 77 utas, 2 port, jam dan jam waktu CPU, Konteks Beralih naik sekitar 400 per detik, dan Pesan Masuk dan Keluar Mach keduanya naik sekitar 6.000 per detik.
Bagaimana saya bisa memeriksa atau memonitor kernel_task
proses ini dan mencari tahu apa yang sebenarnya menggunakan semua kekuatan ini?
(catatan: tersangka saya saat ini adalah pembaruan 10.6.7 baru-baru ini, pembaruan Firefox dari 4 beta 10 ke RC, atau ScreenResX - ini adalah semua hal yang telah saya lakukan baru-baru ini yang dapat saya pikirkan)
kernel_task
sebagai di luar kendali. Activity Monitor mungkin bukan utilitas terbaik untuk diagnosa di area ini. Di Konsol, tambahkan kueri log sistem untuk membantu Anda mengidentifikasi cara-cara di mana tugas kernel digunakan; kemudian perbaiki pertanyaan pembuka menjadi pertanyaan yang mungkin lebih mudah dijawab.Jawaban:
Saya punya pertanyaan serupa tentang cara mengidentifikasi file dan program yang terhubung ke kernal_task menggunakan perintah terminal berikut:
Ini akan menampilkan berbagai kex dan memori yang terkait dengannya. Sebagai contoh,
6184960 com.apple.driver.AirPort.Brcm4360
adalah babi besar bagi saya, tetapi saya tidak bisa berbuat banyak tentang hal itu jika saya ingin menggunakan wifi.Salah satu saran yang saya terima adalah untuk mencari semua kex non-Apple yang mengambil memori dengan menyalurkan ke atas
grep -v com.apple
. Mungkin saja beberapa program non-Apple menggunakan sumber daya Anda. Anda harus dapat menghapusnya tanpa merusak apa pun.Solusi lama tentu saja adalah me-restart komputer Anda. Terkadang hanya itu yang diperlukan untuk mengatur proses kembali ke tingkat normal penggunaan CPU.
sumber
man kextstat
, lihat itu danawk
perintah ambil$4
, sepertinya ukuran penggunaan memori kext. Masuk akal mempertimbangkan pertanyaan itu.Berikut ini penjelasan yang bagus tentang apa itu kernel_task. Itu bisa driver (kexts), jaringan atau aktivitas disk. Anda tidak bisa hanya menggunakan Instrumen untuk melampirkan ke
kernel_task
proses.Cari tanda-tanda lain, seperti log (Console.app), aktivitas disk (misalnya:), aktivitas
iotop
fs_usage
jaringan (coba putuskan sambungan dari jaringan lokal, matikan perangkat di preferensi jaringan), cobalah untuk menghapus / menghapus darikextunload
driver memori ( ), yang berasal dari pihak ketiga - tablet, modem usb 3g, dll. Periksa aplikasi, yang memasang kunci tombolPastikan juga sistem file Anda tidak rusak, jika Anda baru saja crash - lakukan pemeriksaan.
sumber
kernel_task
kembali ke tingkat kegiatan yang waras.Seperti yang disebutkan oleh @Christopher, panas dapat menyebabkan CPU kernel_task lonjakan. Alasannya tercantum dalam posting ini "Memperbaiki" kernel_task Masalah CPU di MacOS Lion 10.7 . Rupanya ketika CPU memanaskan ACPI_SMC_PlatformPlugin.kext akan mengambil siklus CPU dalam upaya untuk mengurangi beban CPU yang sebenarnya.
Jadi salah satu solusinya adalah mendinginkan Mac Anda (mis. Kipas angin) melalui kipas eksternal atau sesuatu seperti SMCFanControl .
Artikel ini memberikan solusi lain yaitu menghapus sub-kext yang memicu perilaku itu. Meskipun saya harus mengakui bahwa saya pribadi tidak yakin tentang seberapa aman mematikan perilaku itu.
sumber
Biasanya di
kernel_task
luar kendali ketika beberapa proses lain terlalu sering menggunakan panggilan sistem atau sumber daya (memori atau peristiwa I / O disk).Ketika ini terjadi, Anda dapat menggunakan
fs_usage
utilitas pelaporan yang akan menunjukkan kepada Anda panggilan sistem dan kesalahan halaman yang terkait dengan aktivitas sistem file secara real-time.Jadi jalankan perintah ini di Terminal:
kemudian amati proses mana yang sering melakukan beberapa panggilan sistem dan jika Anda tidak menggunakannya, pertimbangkan untuk menutup / membunuh mereka.
Untuk lebih spesifik, silakan periksa kolom TIME INTERVAL yang memberi Anda waktu yang dihabiskan dalam panggilan sistem. Sebuah
W
muncul setelah waktu berlalu menunjukkan proses dijadwalkan keluar aktivitas (dalam hal waktu yang telah berlalu termasuk waktu tunggu).Jadi untuk memfilter proses yang menggunakan interval waktu terbanyak dalam panggilan sistem, jalankan:
yang akan menunjukkan kepada Anda di kolom terakhir proses paling lapar (dalam hal waktu kernel). Anda dapat menyesuaikan jumlah nol untuk presisi (lebih sedikit nol yang ditampilkan, lebih banyak waktu yang dihabiskan).
Untuk lebih banyak ide, periksa juga: Bagaimana cara menyelidiki penggunaan memori tugas kernel tinggi?
Berikut adalah masalah yang paling umum:
VBoxHeadless
: jika Anda menggunakan VM (melalui gelandangan), pertimbangkan menangguhkannya saat tidak digunakan;mtmd
: sepertinya Time Machine mencadangkan data Anda setiap jam bahkan ketika drive cadangan Anda tidak terhubung (disebut snapshots lokal ), jadi coba nonaktifkan itu (sudo tmutil disablelocal
);wine
: jika Anda menjalankan aplikasi Windows, pertimbangkan untuk menutupnya saat tidak digunakan;Chrome
: batasi jumlah tab yang dibuka secara bersamaan (coba OneTab dan / atau TGS ) atau matikan beberapa proses Ekstensi ( JavaScript ) melalui Task Manager , karena setiap tab dapat menghasilkan proses terpisah.Periksa: add-on Chrome untuk menghentikan pesan “Halaman tidak responsif” .
sumber
grep
sendiri:sudo fs_usage | grep -v -e '0.0000' -e 'iTerm2' -e 'grep'
Saya mengalami lonjakan besar dalam penggunaan CPU kernel_task, dan ternyata kipas CPU saya dicabut sebagian. Kernel_task ada hubungannya dengan pelambatan CPU ketika terlalu panas. Dalam kasus Anda, mungkin kipas Anda hanya dilarutkan dengan sampah dan debu dan perlu dibersihkan.
sumber
Saya memiliki masalah yang sama di Yosemite tetapi berkat jiwa yang baik ini berdasarkan orang baik lain saya bisa menyelesaikannya. Saya masih tidak dapat memahami apa yang terjadi, tetapi setelah kehilangan seluruh akhir pekan mencoba menyelesaikannya, saya hanya menyerah dan secara membuta mengikuti instruksinya. Lihatlah keputusasaan saya dalam memantau aktivitas:
Hati-hati, selalu lakukan pencadangan dulu dan baca tautan yang disediakan untuk penjelasan. Saya tidak bertanggung jawab atas kerusakan yang disebabkan. Anda sudah diperingatkan.
sumber
Saya menggunakan OSX Lion dengan macbook pro baru 2011, dan saya baru-baru ini menjalankan kernel_task sekitar 25-30% dari CPU dan kipas saya berputar maksimal selama berjam-jam. Saya mencoba satu hal pada satu waktu dan yang berhasil menyelesaikannya adalah ... menutup 5 atau 6 jendela di aplikasi Finder. Tidak bisa mengatakan saya mengerti mengapa, tapi jelas itu.
sumber
Di Mac saya, penggunaan CPU dari kernel_task sebanding dengan bandwidth internet yang saya gunakan, mulai dari sekitar 0% hingga 50%. Mungkin disebabkan oleh driver untuk modem 3G Huawei saya (HuaweiDataCardDriver.kext).
Anda dapat mencoba menonaktifkan ekstensi kernel. Tidak perlu menggunakan kextunload: aman untuk memindahkan bundel kext dari / System / Library / Extensions / ke beberapa folder lain dan restart. Anda dapat menggunakan Canary Konsultan atau
kextstat | grep -v com.apple
untuk mendaftar ekstensi kernel yang tidak datang dengan OS X.sumber
Untuk memecahkan masalah kernel_task yang tidak terkontrol secara khusus, berikut adalah beberapa perintah yang berguna:
Profil seluruh sistem, dengan fokus pada proses kernel (PID: 0), jalankan:
Untuk proses tertentu (seperti
launchd
), gunakansample
, misalnyasudo sample launchd
atau dengan PID.Untuk mengumpulkan konsumsi memori berdasarkan tugas kernel, gunakan (diurutkan berdasarkan kotor secara default):
Catatan: Gunakan
-a
untuk menargetkan semua proses.Untuk mengumpulkan seluruh sistem informasi diagnostik dari beberapa util, jalankan:
sudo sysdiagnose
.Ini juga bisa dipicu dengan menekan Shift- Control- ⌥- ⌘-. (periode).
Anda akan melihat layar berkedip ketika dimulai, lalu tunggu beberapa menit hingga file terungkap di Finder .
Lihat: Bagaimana Anda mendapatkan file diagnostik sistem dari OS X?
Kemudian uncompress dan memeriksa file seperti
footprint*.txt
,spindump.txt
,taskinfo.txt
,bc_stats.txt
dan lainnya.Periksa
vm.swapusage
dalam kondisi kernel, missysctl -a | grep ^vm.swapusage
.Pada dasarnya, lebih banyak swap yang Anda gunakan (periksa file swap
/private/var/vm
yang dikelola olehdynamic_pager
, lihat :)man dynamic_pager
, semakin banyak kernel yang kesulitan dengan kinerja karena operasi Swapins / Swapouts (lihat dan ). Untuk menguji, jalankan:man vm_stat
man fs_usage
Catatan: Tekan Control- Cuntuk berhenti.
sumber
Bagi saya, saya punya satu proses (Netbeans dalam kasus ini, yang membaca file seperti 20GB) dan itu akan menggunakan seperti cpu 80% untuk netbeans, 20% cpu untuk kernel_task (sangat mencurigakan). Ini menyebabkan seluruh sistem saya berjalan seperti tar.
Juga mencurigakan adalah bahwa "menumeters" akan melaporkan banyak waktu "sys", per cpu. Anda dapat melihat ini di perintah "atas" juga, seperti
CPU usage: 21.40% user, 23.74% sys
Kemudian, itu mungkin netbeans 120% cpu, kernel_task 65%, tetapi bagaimanapun mereka berdua "cpu tinggi pada saat yang sama"
sudo fs_usage
menunjukkan banyak hal ini:Teori saya adalah bahwa netbeans "membaca sangat banyak" sehingga menyebabkan kesalahan halaman untuk menjalankan programnya sendiri (yaitu mengirim untuk menukar programnya sendiri), sehingga mendapatkan antrian di belakang sistem kesalahan halaman. Dan mungkin menukar "program lain" untuk bertukar juga, menyebabkan seluruh sistem menjadi lemah.
Dengan menggunakan
top
, kolom FAULT meningkat sebesar 70 K / detik, juga.sumber
Macbook Pro saya hampir tidak dapat digunakan karena CPU_tinggi kernel_task selama berminggu-minggu. Pada saat yang sama baterai meningkat jadi saya akhirnya memutuskan untuk menggunakan Apple Center di Roma untuk menggantinya ... bahkan jika di luar garansi Apple telah mengganti baterai saya (dan keyboard juga) untuk biaya 0 €. Bahkan lebih baik ... masalah kernel_task tiba-tiba menghilang !!! jadi saya cukup yakin itu karena baterai, langsung atau tidak langsung
sumber