Вопрос или проблема
Я заметил на своей базовой установке Ubuntu 21.04 с ядром 5.11 на Dell XPS 9510, что Pulseaudio использует небольшое количество CPU постоянно, около 6-7% (проверено командой top в CLI), и я вообще не использовал звук.
Время работы системы составляет 3 дня, а время использования процессора (общее использование CPU по данным Системного монитора) Pulseaudio составляет 50 часов, затем идут Firefox, Xorg и Gnome-shell, у всех из которых по 20 часов общего времени использования CPU.
Это кажется мне слишком много, особенно учитывая, что я не использовал ничего, что воспроизводит звук, ни видео, ни YouTube с последнего перезагрузки, 3 дня назад.
Существует ли способ тонкой настройки Pulseaudio для использования меньшего количества CPU, возможно, дело в времени выборки?
Я бы предложил установить “pipewire” – преемника pulseaudio на вашу систему.
Сначала вам следует проверить, установлен ли pipewire уже на вашей системе:
systemctl --user status pipewire pipewire-session-manager
Он должен работать, но не используется для аудиовывода.
Теперь вам следует установить плагины для PulseAudio:
sudo apt install pipewire-audio-client-libraries libspa-0.2-bluetooth libspa-0.2-jack
Далее рекомендуется заменить pipewire-media-session на wireplumber:
sudo apt install wireplumber pipewire-media-session-
Alsa, которая находится на уровне ниже pulseaudio, не должна перенастраиваться:
sudo cp /usr/share/doc/pipewire/examples/alsa.conf.d/99-pipewire-default.conf /etc/alsa/conf.d/
Удалите “старые” bluetooth-сервисы: (вы установили новый выше)
sudo apt remove pulseaudio-module-bluetooth
Включите сервис wireplumber:
systemctl --user --now enable wireplumber.service
Перезагрузите вашу систему.
Я следовал инструкциям с этой страницы – но на Ubuntu 22.04. Сайт также описывает, как вернуть изменения назад.
Еще одна инструкция (которую я не тестировал) доступна здесь
Я столкнулся с аналогичной проблемой, когда PulseAudio использовал чрезмерное количество CPU, даже когда звук не воспроизводился. В моем случае проблема была вызвана ошибкой загрузки модуля module-x11-xsmp
, который обрабатывает управление сессией для X11. Перезапуск PulseAudio решил проблему высокого использования CPU.
Для этого выполните следующие шаги:
-
Убейте текущий демон PulseAudio:
pulseaudio -k
-
Перезапустите PulseAudio:
pulseaudio --start
Это должно снизить использование CPU до нормальных уровней. Если проблема повторится, вам стоит проверить логи на наличие ошибок модуля, выполнив:
journalctl --user -xe | grep pulseaudio
Надеюсь, это поможет!
Ответ или решение
Повышенное использование CPU PulseAudio при отсутствии аудио/видео воспроизведения
Вам стало замечено, что PulseAudio на вашей системе Ubuntu 21.04 с ядром 5.11 использует аномально много ресурсов процессора — около 6-7% при отсутствии воспроизведения аудио или видео. Это вызывает беспокойство, поскольку вы наблюдали значительное общее время использования CPU для PulseAudio в 50 часов, тогда как другие процессы, такие как Firefox, Xorg и Gnome-shell, имеют всего по 20 часов.
Возможные причины и решения
1. Ошибка в модулях PulseAudio:
Одной из причин повышенной нагрузки на процессор может быть ошибка в загрузке модуля module-x11-xsmp
, который отвечает за управление сессиями X11. Чтобы проверить эту гипотезу:
- Убейте текущий демон PulseAudio с помощью команды:
pulseaudio -k
- После этого перезапустите PulseAudio:
pulseaudio --start
После выполнения этих действий нагрузка на CPU должна снизиться. Если проблема сохраняется, следует просмотреть логи для выявления возможных ошибок:
journalctl --user -xe | grep pulseaudio
2. Настройка PulseAudio:
Если вы хотите оптимизировать PulseAudio, рассмотрите возможность изменения настроек конфигурации. Попробуйте уменьшить частоту выборки или изменить другие параметры, связанные с обработкой аудио. Это может помочь снизить нагрузку на CPU.
3. Установка PipeWire:
С учётом последних изменений в обработке аудио в Linux-системах, вы можете рассмотреть переход на PipeWire — современную альтернативу PulseAudio. Для этого выполните следующие шаги:
-
Убедитесь, что PipeWire установлен:
systemctl --user status pipewire pipewire-session-manager
-
Установите необходимые библиотеки для совместимости с PulseAudio:
sudo apt install pipewire-audio-client-libraries libspa-0.2-bluetooth libspa-0.2-jack
-
Рекомендуется заменить
pipewire-media-session
наwireplumber
:sudo apt install wireplumber pipewire-media-session-
-
Настройте ALSA:
sudo cp /usr/share/doc/pipewire/examples/alsa.conf.d/99-pipewire-default.conf /etc/alsa/conf.d/
-
Удалите старые пакеты для Bluetooth:
sudo apt remove pulseaudio-module-bluetooth
-
Включите сервис WirePlumber:
systemctl --user --now enable wireplumber.service
-
Перезагрузите систему.
Для более подробного руководства вы можете обратиться к ресурсам, например, к UbuntuHandbook.
Заключение
Проблема повышенной загрузки CPU PulseAudio может быть вызвана рядом факторов, включая ошибки в модулях или неправильные настройки. Следуя предложенным методам, вы сможете диагностировать и устранить проблему. Если решение не даст желаемого результата, переход на PipeWire может стать оптимальным вариантом, обеспечившим более стабильную работу звуковой подсистемы в вашей системе.