kernel_task грузит проц на 100% на MacOS BigSur
При запуске любых длительных и «тяжелых» задач в Мониторинге системы можно увидеть неопознанный процесс kernel_task, который нагружает систему также как и сама задача. Мириться с этим не хочется, так как задача из-за этого быстрее не выполнится.
Будем разбираться и снижать нагрузку.
Почему это происходит?
Как пишет сама Apple, процесс kernel_task нужен для торможения запущенных программ с высокой интенсивностью. Но реалии таковы, что на BigSur процесс kernel_task нагружает процессор больше, чем «высокоинтенсивная» программа.
Просто так отключить на MacOS версии 11.3 и выше не получится. Нужно доставать бубен.
На последних MacOS присутствует система SSV, которая помогает предотвратить модификацию и удаление ПО от Apple. Она для этого использует моментальные снимки файловой системы APFS. Это клево, если во время обновления что-то пойдет не так, то произойдет автоматический откат на старую версию.
Фактически MacOS Big Sur больше не загружается с системного тома, а загружается из моментального снимка (копия системного тома). Системный том монтируется только для чтения. Если его смонтировать с правами записи, то любая модификация или удаление файлов будет оставаться только до перезагрузки. После повторного включения, система восстановит все изменения из снимка.
Решение есть — сделать новый снимок.
План действий:
- отключаем защиту SIP;
- монтируем системный том;
- удаляем IOPlatformPluginFamily.kext;
- создаем новый снимок;
- Включаем загрузку с него.
После всех манипуляций, загрузка ОС будет дольше обычной на 2 минуты.
Удаляем kernel_task на MacOS BigSur
Отключаем защиту SIP
Если у Вас оригинальный компьютер Mac, то необходимо загрузить его в режиме восстановления с помощью CMD+R при старте компьютера.
Если у Вас компьютер не Mac, но операционная система MacOS, то в меню запуска Clover или OpenCore нужно выбрать Recovery Mode.
В обоих случаях Вы загрузитесь в режиме восстановления. Открываем Утилиты -> Терминал и исполняем
команды:
csrutil disable
reboot
После этого заходим снова в режим восстановления. Выполняем команды:
csrutil authenticated-root disable
reboot
Монтируем системный том для записи
Смотрим название системного раздела:
sudo diskutil list
...
/dev/disk3 (synthesized):
#: TYPE NAME SIZE IDENTIFIER
0: APFS Container Scheme - +255.9 GB disk3
Physical Store disk0s2
1: APFS Volume MySSD — данные 47.6 GB disk3s1
2: APFS Volume Preboot 293.4 MB disk3s2
3: APFS Volume Recovery 613.7 MB disk3s3
4: APFS Volume VM 1.1 MB disk3s4
5: APFS Volume MySSD 15.0 GB disk3s5
6: APFS Snapshot SnapshotName 15.0 GB disk3s5s1
...
В нашем примере это диск номер 3 и раздел номер 5 (помечен полужирным) – disk3s5. Также запоминаем его название – MySSD.
Монтируем раздел:
sudo diskutil mount disk1s5
Volume MySSD on disk3s5 mounted
Добавляем права на изменение:
sudo mount -uw /Volumes/MySSD\ 1
Где \ 1
– важная дописка. Она нужна так как с таким именем уже есть символьная ссылка, а мы монтируем настоящий и MacOS добавляет в название символ «1». Слеш – показывает, что используется пробел.
Удаляем IOPlatformPluginFamily.kext
Удалять мы его полностью не будем, а для резерва перенесем в корень системного раздела.
Переносим файл IOPlatformPluginFamily.kext:
sudo mv /Volumes/MySSD\ 1/System/Library/Extensions/IOPlatformPluginFamily.kext /Volumes/MySSD\ 1/
Создаем новый снимок и делаем его «по умолчанию»
Создаем снимок:
sudo /System/Library/Filesystems/apfs.fs/Contents/Resources/apfs_systemsnapshot -s "SnapshotName" -v /Volumes/MySSD\ 1
Ставим на него метку «по умолчанию»:
sudo /System/Library/Filesystems/apfs.fs/Contents/Resources/apfs_systemsnapshot -r "SnapshotName" -v /Volumes/MySSD\ 1
Не забываем сделать перезагрузку:
reboot
После всего этого процесс останется в загруженных, но уже не будет нагружать систему как раньше.
Скачать оригинальный файл IOPlatformPluginFamily.kext
Если что-то пошло не так и Вы удалили IOPlatformPluginFamily.kext, то вот оригинальный kext от MacOS BigSur — IOPlatformPluginFamily.kext.zip
Теги: Настройка MacOS
Спасибо большое, помогло, но на 50%. MacBook Air 11 2013 года начал работать от батареи лучше, но все-равно подлагивает, от кабеля зарядки работает идеально. Можно ли как-то удалить MacBook6_1.plist в том кексте, чтобы окончательно решить проблему? Если полностью удалить тот файл, то система зависнет в терминале и больше не стартанет – спасает только полная переустановка системы.
Или может есть ещё вариант как решить проблему с лагами при работе от батареи?