ฉันแก้ไขปัญหานี้แล้ว
ขอบคุณโพสต์นี้http://www.rdoxenham.com/?p=259
“ การแก้ไข” kernel_task ปัญหาซีพียูใน MacOS 10.7 / 10.8 โพสต์เมื่อวันที่ 5 มิถุนายน 2012 Update (ต้นปี 2013): เมื่อฉันเขียนคู่มือนี้มันมุ่งเน้นไปที่ Lion 10.7 หลายคนมีแน่นอนอัพเกรดเป็น 10.8 และได้รายงานความสำเร็จโดยใช้ หลักการเดียวกัน อย่างไรก็ตามรายการ plist ไม่ได้ถูกเพิ่มสำหรับรุ่นใหม่เช่น MacBook Air ใหม่หรือ MacBook Pro (+ เรตินา) ดังนั้นหากคุณทำตามคำแนะนำคุณอาจพบปัญหาเช่นตัวระบุรุ่นของคุณไม่สามารถมองเห็นได้ หลังจากวิเคราะห์สิ่งนี้กับผู้อื่นทางอีเมลก็จะปรากฏว่าระบบใช้ Plist อื่นในไดเรกทอรีดังนั้นการลบทั้งหมดของ plists ก็ใช้ได้ ฉันไม่สามารถแสดงความคิดเห็นเพิ่มเติมหรือพิสูจน์ได้ว่าเป็นกรณีนี้เนื่องจากฉันไม่มีฮาร์ดแวร์ที่พร้อมใช้งาน แจ้งให้เราทราบว่าสิ่งนี้เหมาะกับคุณหรือไม่… ..
ฉันใช้ระบบปฏิบัติการที่หลากหลายที่บ้านบริการทั้งหมดจัดทำโดย Linux เช่นไฟร์วอลล์การกำหนดเส้นทางการจัดเก็บไฟล์และสื่อ DLNA อย่างไรก็ตามฉันชอบใช้ Mac ด้วยฉันมี MacBook Air ปลายปี 2009 ที่ฉันใช้ในขณะเดินทาง แม้จะมีข้อบกพร่องทั้งหมดของ Lion ฉันชอบใช้แอพแบบเต็มหน้าจอท่าทางและ Mail.app ใหม่น่าประทับใจจริงๆ สเปคของเครื่องนี้ไม่ได้มีอะไรพิเศษจริง ๆ การขาดการขยายตัวออกไปมากเป็นที่ต้องการ แต่สำหรับสิ่งที่ฉันทำ - มันมีมากมาย แน่นอนฉันจะอัพเกรดเป็น Ivy Bridge MacBook Air ใหม่เมื่อมันออกมาบางทีฉันจะมีหน่วยความจำมากกว่า 2GB และสามารถเรียกใช้ VM ได้เช่นกัน (!)
ปัญหาที่ใหญ่ที่สุดที่ฉันเคยมีกับเครื่องนี้ใน Lion (ไม่มีใน Snow Leopard) คือการใช้ kernel_task แทนที่จะแยกการดำเนินการเคอร์เนลทั้งหมดลงในแต่ละกระบวนการของตนเอง (และเธรดที่เกี่ยวข้อง) พวกเขาทั้งหมดถูกใช้โดย 'งาน' เดียว (แทนการแสดงส่วนล่างของสถาปัตยกรรมไมโครเคอร์เนล) ที่ปรากฏในรายการกระบวนการ สิ่งที่ฉันสังเกตเห็นคือบางครั้ง 'งาน' นี้ออกไปจากการควบคุมใช้ทรัพยากร CPU ที่มีความสำคัญสูงสุด เป็นเวลานานที่ฉันไม่แน่ใจว่ามันกำลังทำอะไรอยู่ดูเหมือนว่าจะเตะเมื่อฉันทำอะไรที่ค่อนข้างเข้มข้น (สำหรับ Mac อยู่ดี) เช่น YouTube
ผู้คนจำนวนมากแนะนำว่า 'rogue kexts' (ไดรเวอร์ / เคอร์เนลโมดูล) อาจทำให้เกิดปัญหาอาจเป็นโมดูลที่เข้ากันไม่ได้เริ่มโดย OS X ที่ติดตั้งเมื่อระบบทำงาน Snow Leopard สิ่งนี้ดูสมเหตุสมผลเมื่อการบู๊ตในเซฟโหมดจะทำให้ไม่มีปัญหา พอพูดได้ฉันสร้าง Lion Install-USB และติดตั้งใหม่ตั้งแต่ต้น คาดเดาว่า…ปัญหาอะไรที่เหมือนกันภายในไม่กี่ชั่วโมง! หลังจากขุดไปรอบ ๆ และตรวจสอบ kernel_task 'กระบวนการ' มันชัดเจนว่าเห็นว่ามันวนซ้ำบางสิ่งบางอย่างอย่างต่อเนื่อง หลังจากการวิจัยเพิ่มเติมฉันค้นพบว่าเคอร์เนลจะคอยวนงานง่าย ๆ เช่นรับวันดังนั้น 'กิน' (มีความสำคัญสูงสุด) ส่วนใหญ่ของ CPU ในการเสนอราคาเพื่อทำให้ระบบเย็นลง
ดังนั้นทุกอย่างจะทำอย่างไรกับการควบคุมอุณหภูมิ - คุณ 'ลบ' ส่วนใหญ่ของ CPU ที่ใช้ร่วมกันจากแอปพลิเคชันอื่นและดำเนินงานที่มีค่าใช้จ่ายต่ำอย่างต่อเนื่องจนกว่าอุณหภูมิของ CPU จะลดลง ฟังดูเป็นวิธีแก้ปัญหาที่ยอดเยี่ยมสำหรับการระบายความร้อน แต่มันล่วงล้ำมาก มันเป็นธรรมชาติที่ทำให้ระบบหยุดชะงักในหลาย ๆ ด้านแม้ว่าความจริงที่ว่าซีพียูใน MacBook Air ของฉันนั้นแทบจะไม่เกิน 70 องศา (องศาเซลเซียส) เมื่อพิจารณาจาก TJ Max ของ Core2Duo ขนาด 2.13GHz ตัวน้อยของฉันคือ 85 องศาฉันก็อยากจะใช้ kernel_task อย่าทำแบบนี้
โชคดีที่“ ฟีเจอร์” นี้สร้างขึ้นใน kext ซึ่งตัวระบุรุ่นแต่ละตัวระบุวิธีควบคุมอุณหภูมิของ CPU ผ่านการกระทำที่รุกรานนี้ การแก้ไขอย่างง่ายคือการลบรายการสำหรับตัวระบุโมเดลของคุณออกจาก kext นี้หากว่า“ ไม่รู้” จะทำอย่างไรกับโมเดลของคุณโดยเฉพาะมันจะไม่ดำเนินการใด ๆ ตอนนี้ที่นี่ข้อจำกัดความรับผิดชอบ ... โดยการดำเนินการเช่นเดียวกับที่ฉันจะร่างด้านล่างฉันจะไม่รับผิดชอบต่อความเสียหายหรือการสูญเสียใด ๆ ที่เกิดขึ้นกับคุณหรือทรัพย์สินของคุณคุณทำตามความประสงค์ของคุณเองฟรี คุณมีฟังก์ชั่นการใช้งานมากเกินไปที่ออกแบบมาเพื่อยืดอายุการใช้งานของอุปกรณ์ของคุณแม้ว่าจะมีการบุกรุกและน่ารำคาญมากก็ตาม อย่างไรก็ตามเพื่อความสนุก ...
ประการแรกคุณจะต้องใช้ตัวระบุรุ่นของ Mac ที่น่ารำคาญ:
> $ system_profiler -detailLevel mini | grep "Model Identifier:"
Model Identifier: MacBookAir2,1 The kext we need to modify is IOPlatformPluginFamily.kext, you can verify it is running by-
sh-3.2# kextstat | grep IOPlatformPluginFamily
67 3 0xffffff7f81229000 0x7000 0x7000
com.apple.driver.IOPlatformPluginFamily (5.1.0d17) <8 7 6 5 4 3>
ภายใน kext นี้จะเป็นอีกหนึ่ง kext- ACPI_SMC_PlatformPlugin.kext ซึ่งแต่ละรุ่น Macintosh ล่าสุดจะแสดงรายการพร้อมคำแนะนำที่เกี่ยวข้องที่เคอร์เนลใช้เพื่อกำหนดวิธีและเวลาที่จะเรียกใช้การควบคุม (ตรวจสอบให้แน่ใจว่าคุณเปลี่ยนเป็นรูทแล้ว)
sh-3.2# cd /System/Library/Extensions/IOPlatformPluginFamily.kext/
sh-3.2# cd Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/
sh-3.2# cd Contents/Resources/ sh-3.2# ls | wc -l 49
ดังนั้นจึงมี 49 โปรไฟล์ที่แตกต่างกันที่ระบุไว้ใน kext นี้ ณ วันที่เขียนนี้ เราเพียงแค่ต้องย้ายไฟล์ 'plist' สำหรับตัวระบุรุ่นที่เราค้นพบก่อนหน้านี้จากไดเรกทอรีนั้นดังนั้นในกรณีของฉันฉันต้องย้ายไฟล์ 'MacBookAir2_1.plist' ออกจากไดเรกทอรีนี้ (ไปยังที่ปลอดภัย) แต่แทนที่โมเดลของฉัน ตัวระบุที่มีเฉพาะของคุณ
sh-3.2# mv MacBookAir2_1.plist /Users/<your username>/
คุณสามารถรีบูตตอนนี้เพื่อให้การเปลี่ยนแปลงมีผล เราสามารถลบ kext ทั้งหมดออกไป แต่มันปลอดภัยกว่ามากที่จะลบไฟล์ plist สำหรับรุ่นที่ระบุว่า (บอกตามตรง) ฉันไม่รู้ว่าที่เหลือของเคอร์เนลโมดูลทำอะไร ฉันใช้ 'แก้ไข' นี้สองสามวันแล้วและไม่พบปัญหาใด ๆ เลยโดยรวมแล้วมันเร็วกว่ามากและฉันไม่ต้องกังวลว่ามันจะหมดไป สิ่งที่ฉันอยากจะแนะนำก็คือคุณจะต้องระมัดระวังให้มากขึ้นเกี่ยวกับตำแหน่งของ Mac ของคุณคุณไม่ต้องการปิดบังไอเสีย เครื่อง Mac ควรป้องกันตัวเองถ้ามันไม่ถึงอุณหภูมิสูงสุด แต่ฉันก็จะเป็นเพียงเล็กน้อยระมัดระวังมากขึ้น
หมายเหตุ: อาจเป็นไปได้ว่า kext นี้จะได้รับการอัปเดตในอนาคตโดย Apple ในแพ็คอัปเดตและดังนั้นจะแทนที่ไฟล์ที่คุณลบ / ย้ายดังนั้นคุณอาจต้องทำซ้ำขั้นตอนนี้ในอนาคต :-)