Я решил эту проблему.
Благодаря этому посту http://www.rdoxenham.com/?p=259
«Исправление» kernel_task Проблемы с процессором в MacOS 10.7/10.8 Опубликовано 5 июня 2012 г. Обновление (начало 2013 г.): когда я писал это руководство, оно было ориентировано на Lion 10.7, многие люди, конечно, обновились до 10.8 и сообщили об успешном использовании одни и те же принципы. Тем не менее, списки не были добавлены для более новых моделей, например, для нового MacBook Air или MacBook Pro (+retina). Поэтому, если вы будете точно следовать этому руководству, у вас могут возникнуть такие проблемы, как отсутствие идентификатора модели.
После диагностики этого с другими по электронной почте может показаться, что система использует другой список в каталоге, поэтому удаление всех списков сработало. Я не могу комментировать дальше или доказать, что это так, поскольку у меня нет доступного оборудования. Дайте мне знать, работает ли это для вас ...
Дома я использую самые разные операционные системы, все услуги предоставляются Linux, например, брандмауэр, маршрутизация, хранение файлов и носители DLNA. Однако я тоже люблю использовать Mac, у меня есть MacBook Air, выпущенный в конце 2009 года, который я использую во время путешествий. Несмотря на все недостатки Lion, мне очень нравится использовать его - полноэкранные приложения, жесты и новый Mail.app действительно впечатляют. В спецификации этой машины нет ничего особенного, отсутствие расширения действительно оставляет желать лучшего, но для того, что я делаю, - много. Я обязательно обновлюсь до нового MacBook Air Ivy Bridge, когда он выйдет, возможно, тогда у меня будет более 2 ГБ памяти и я тоже смогу работать с виртуальными машинами (!).
Самая большая проблема, с которой я столкнулся на этой машине на Lion (на Snow Leopard не было), связана с kernel_task. Вместо того, чтобы разбивать все базовые операции ядра на их собственные отдельные процессы (и связанные потоки), все они потребляются одной «задачей» (скорее, представлением основ архитектуры микроядра), которая появляется в списке процессов. Что я заметил, так это то, что эта «задача» иногда выходит из-под контроля, потребляет ресурсы процессора с наивысшим приоритетом. В течение долгого времени я не был уверен в том, что он делал, он, казалось, включался, когда я делал что-то относительно интенсивное (для Mac в любом случае), например, YouTube.
Многие люди предположили, что причиной могут быть «жулики» (драйверы /модули ядра), возможно, OS X запускает несовместимый модуль, который был установлен во время работы системы Snow Leopard. Казалось, это имеет смысл, так как загрузка в безопасном режиме не вызовет проблем. Достаточно сказать, что я создал Lion Install-USB и переустановил его с нуля; угадайте, что ... та же проблема в течение нескольких часов!
После того, как мы немного покопались и исследовали «процесс» kernel_task, стало ясно, что он постоянно что-то перебирает. После дальнейших исследований я обнаружил, что ядро будет продолжать выполнять некоторые очень простые задачи, например, получать дату, поэтому «потребляя» (с наивысшим приоритетом) большую часть процессора в попытке охладить систему.
Таким образом, все это связано с контролем температуры: вы «удаляете» большую часть общего ресурса ЦП из других приложений и непрерывно выполняете задачи с минимальными издержками, пока температура ЦП не упадет. Это звучит как отличное решение для охлаждения, но это очень навязчиво. Это агрессивный характер приводит к зависанию системы во многих отношениях, несмотря на то, что процессор в моем MacBook Air редко превышает 70 градусов (по Цельсию). Учитывая, что TJ Max моего маленького процессора Core2Duo с частотой 2,13 ГГц составляет 85 градусов, я бы предпочел, чтобы kernel_task не выполнял это агрессивное действие.
К счастью, эта «функция» встроена в kext, в котором каждый идентификатор модели определяет, как управлять температурой процессора с помощью этого инвазивного действия. Простое решение заключается в удалении записи для идентификатора вашей модели из этого 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 указана с соответствующими инструкциями, которые ядро использует для определения того, как и когда вызывать элемент управления. (Убедитесь, что вы переключаетесь на root сейчас)
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 различных профилей. Нам просто нужно переместить файл «plist» для идентификатора модели, который мы обнаружили ранее, из этого каталога, поэтому в моем случае мне нужно переместить файл «MacBookAir2_1.plist» из этого каталога (в безопасное место), но заменить мою модель идентификатор с вашим конкретным.
sh-3.2# mv MacBookAir2_1.plist /Users/<your username>/
Вы можете просто перезагрузиться сейчас, чтобы изменения вступили в силу. Мы могли бы удалить весь kext, но гораздо безопаснее удалить файл plist для конкретной модели, поскольку (если честно) я не знаю, что делает остальная часть этого модуля ядра. Я использовал это «исправление» в течение нескольких дней и не заметил никаких проблем - в целом, это намного быстрее, и мне не нужно беспокоиться о том, что он иссякнет. Я бы порекомендовал, чтобы вы были немного более осторожны с размещением своего Mac, вы не хотите закрывать выхлоп. Mac должен защитить себя , если она достигнет максимальной температуры , но я бы просто быть немного осторожнее.
Примечание. Вполне вероятно, что этот kext будет обновляться в будущем Apple в своих пакетах обновлений и в результате заменит файл, который вы удалили / переместили, поэтому вам, возможно, придется повторить этот процесс в будущем :-)