Поделиться:

Сразу предупрежу: дальше будем через Terminal удалять системный файл, в который прямо сейчас идёт запись. Так что случиться может всякое. Сделайте бэкап Mac перед началом.

Пробую все классические методы - без толку

Сначала попробовал убить процесс dasd через Activity Monitor. Ноль эффекта. Перезагрузился - тоже ничего, dasd как ни в чём не бывало продолжал жрать 100% CPU даже после рестарта. Странно! Дальше загрузился в Safe Mode - и там та же картина, dasd продолжал нагружать процессор. Перезагрузился ещё раз, покопался в диагностике, погонял туда-сюда Console, sample и tail, потом скормил всё это ChatGPT для разбора - и в итоге пришёл к такому решению.

Находим базу данных, связанную с зависшим dasd

Та самая база, с которой dasd, судя по всему, взаимодействует в каком-то ошибочном зацикленном режиме, лежит по такому системному пути:

/private/var/db/powerlog/Library/PerfPowerTelemetry/BackgroundProcessing/CurrentBackgroundProcessingDB.BGSQL

Я сделал бэкап этой базы, удалил её, перезагрузил Mac - и проблема наконец ушла, dasd вернулся к ожидаемым 0% CPU.

Бэкапим Mac и сам файл базы

Если у вас есть Time Machine и вы им пользуетесь, этого скорее всего хватит, и перед продолжением точно стоит сделать бэкап через Time Machine. Отдельно, если вы такой же параноик, как я, и хотите ещё и прямой бэкап файла на тот же диск (на всякий случай!), вот как это сделать.

В Terminal скопируйте или введите такую команду - она создаст на рабочем столе папку "PowerLog-Backup" с копией базы PowerLog и выставит права на текущего пользователя:
sudo mkdir -p ~/Desktop/PowerLog-Backup | sudo cp -p /private/var/db/powerlog/Library/PerfPowerTelemetry/BackgroundProcessing/CurrentBackgroundProcessingDB.BGSQL* ~/Desktop/PowerLog-Backup/ | sudo chown -R "$(id -un)" ~/Desktop/PowerLog-Backup

Если удобнее разбить на три отдельные команды, можно так:

sudo mkdir -p ~/Desktop/PowerLog-Backup

sudo cp -p /private/var/db/powerlog/Library/PerfPowerTelemetry/BackgroundProcessing/CurrentBackgroundProcessingDB.BGSQL* ~/Desktop/PowerLog-Backup/

sudo chown -R "$(id -un)" ~/Desktop/PowerLog-Backup

Аккуратно удаляем базу PowerLog

Теперь сбрасываем базу PowerLog. Это удаление системного файла, так что если вам такое не по душе или полного бэкапа данных нет - не вводите эту команду. Вводить нужно точно, иначе случайно снесёте не тот системный файл и получите проблему покрупнее:

sudo rm \
/private/var/db/powerlog/Library/PerfPowerTelemetry/BackgroundProcessing/CurrentBackgroundProcessingDB.BGSQL \
/private/var/db/powerlog/Library/PerfPowerTelemetry/BackgroundProcessing/CurrentBackgroundProcessingDB.BGSQL-wal \
/private/var/db/powerlog/Library/PerfPowerTelemetry/BackgroundProcessing/CurrentBackgroundProcessingDB.BGSQL-shm

Выполняйте с правами root.

Сразу перезагружаем Mac, ждём пару минут и снова смотрим CPU

Дальше сразу перезагружаем Mac - через меню  Apple или из Terminal:

sudo reboot

После перезагрузки гляньте на загрузку CPU, когда система устаканится, и ещё раз минут через 10. Если открыть Activity Monitor или вернуться в командную строку с:

ps -axo pid,%cpu,etime,command | grep '[d]asd'

то увидите, что CPU у dasd снова 0% или какая-то минимальная ерунда.

-

Вот эти шаги мне и помогли победить постоянную высокую загрузку CPU от dasd на Mac с MacOS 27.0.1 - после того как процесс несколько дней подряд держал 90-100% CPU.

Случай не массовый, но проблемы с dasd и лишней нагрузкой на CPU и память бывают

Насколько это распространено - непонятно. Может, страдает больше народу, просто люди не ищут процесс dasd в Activity Monitor или вообще не знают, что туда надо смотреть, хотя батарея садится быстрее обычного и Mac ощутимо тёплый на ощупь. Причина тоже неизвестна.

Если погуглить эту тему, можно найти жалобы других пользователей Mac на проблемы с dasd в MacOS 27 - так что, возможно, это баг, который починят в одном из будущих обновлений MacOS.

Обсуждали это на Reddit, форумах MacRumors (2) и на форумах Apple. Там же найдёте решения, которые мне не помогли: кто-то постоянно убивает процесс, кто-то выгружает его через launchctl, App Store или Apple Arcade - но в моём случае ничего из этого с бешеным dasd связано не было.

Есть и другие варианты этой проблемы: у некоторых dasd не жрёт 100% CPU, а пожирает неприлично много RAM или плодит огромные лог-файлы.

Что именно вызывает сбой в dasd, до конца не ясно. Метод тыка и отладка привели меня к базе телеметрии PowerLog, но это вполне может быть лишь следствием чего-то другого. Если столкнётесь с этой проблемой (или похожей) и найдёте другое решение - или воспользуетесь этим и оно сработает - расскажите в комментариях.