Использование процессора Pulseaudio выше нормы при отсутствии воспроизведения аудио/видео

Вопрос или проблема

Я заметил на своей базовой установке 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.

Для этого выполните следующие шаги:

  1. Убейте текущий демон PulseAudio:

    pulseaudio -k
    
  2. Перезапустите 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 может стать оптимальным вариантом, обеспечившим более стабильную работу звуковой подсистемы в вашей системе.

Оцените материал
Добавить комментарий

Капча загружается...