gnome-shell постоянно использует 5-6% процессора

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

Мой Ubuntu недавно начал использовать 5-6% процессора в режиме простоя (я бы этого и не заметил, если бы не шум вентилятора :/ ). Заглянул в Монитор системы — это gnome-shell. Я пробовал отключать все расширения (и, конечно же, перезагружал) но это не помогло.

Поэтому я попробовал journalctl /usr/bin/gnome-shell — и журнал полон следующей строки, повторяющейся тысячи раз в секунду: gnome-shell[2820]: (../clutter/clutter/clutter-frame-clock.c:1143):clutter_frame_clock_dispatch: code should not be reached. Похоже, что это потребляет 5-6% процессора только для ведения этого лога.

На данный момент я в тупике, так как в Интернете есть только одна ссылка на эту ошибку.
Насколько я понимаю, код, о котором идет речь, находится здесь: https://github.com/GNOME/mutter/blob/main/clutter/clutter/clutter-frame-clock.c, но я не в состоянии его отлаживать.

Я не спрашиваю, сталкивался ли кто-то с этим (но, конечно, был бы признателен за решение 🙂 ) — но как с этим бороться в общем плане? Подать ошибку? Куда? В Mutter или Gnome? Или Ubuntu? :/

Мои версии библиотек Mutter:

$ sudo apt list | grep mutter

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

gir1.2-mutter-14/noble-updates,now 46.2-1ubuntu0.24.04.4 amd64 [installed,automatic]
libmutter-14-0/noble-updates,now 46.2-1ubuntu0.24.04.4 amd64 [installed,automatic]
libmutter-14-dev/noble-updates 46.2-1ubuntu0.24.04.4 amd64
libmutter-test-14/noble-updates 46.2-1ubuntu0.24.04.4 amd64
mutter-14-tests/noble-updates 46.2-1ubuntu0.24.04.4 amd64
mutter-common-bin/noble-updates,now 46.2-1ubuntu0.24.04.4 amd64 [installed,automatic]
mutter-common/noble-updates,noble-updates,now 46.2-1ubuntu0.24.04.4 all [installed,automatic]
mutter/noble-updates 46.2-1ubuntu0.24.04.4 amd64

Моя система:

$ screenfetch
                          ./+o+-       flash@flash-NUC12WSHi5
                  yyyyy- -yyyyyy+      OS: Ubuntu 24.04 noble
               ://+//////-yyyyyyo      Kernel: x86_64 Linux 6.8.0-51-generic
           .++ .:/++++++/-.+sss/`      Uptime: 1h 25m
         .:++o:  /++++++++/:--:/-      Packages: 2260
        o:+o+:++.`..```.-/oo+++++/     Shell: bash 5.2.21
       .:+o:+o/.          `+sssoo+/    Resolution: 1920x1080
  .++/+:+oo+o:`             /sssooo.   DE: GNOME 46.4
 /+++//+:`oo+o               /::--:.   WM: Mutter
 \+/+o+++`o++o               ++////.   WM Theme: Adwaita
  .++.o+++oo+:`             /dddhhh.   GTK Theme: Yaru-dark [GTK2/3]
       .+.o+oo:.          `oddhhhh+    Icon Theme: Yaru
        \+.++o+o``-````.:ohdhhhhh+     Font: Ubuntu Sans 11
         `:o+++ `ohhhhhhhhyo++os:      Disk: 1.3T / 3.2T (40%)
           .o:`.syhhhhhhh/.oo++o`      CPU: 12th Gen Intel Core i5-1240P @ 16x 4.4GHz [80.0°C]
               /osyyyyyyo++ooo+++/     GPU: Iris Xe Graphics
                   ````` +oo+++o\:     RAM: 5654MiB / 31606MiB
                          `oo++.

Ответ или решение

Теория

GNOME Shell — это графическая оболочка и диспетчер окон для рабочего окружения GNOME, которое используется в различных дистрибутивах Linux, таких как Ubuntu. Как любой сложный программный компонент, GNOME Shell взаимодействует с множеством других системных частей, среди которых менеджер окон Mutter и библиотеки Clutter для работы с графикой. Проблема, с которой вы столкнулись, связана с потреблением ресурсов процессора GNOME Shell, даже когда система находится в состоянии простоя. Такое поведение часто вызывает беспокойство у пользователей, особенно когда оно сопровождается постоянным вращением кулера, что свидетельствует о повышенной нагрузке на систему.

Пример

В вашем случае, GNOME Shell демонстрирует потребление CPU на уровне 5-6% в состоянии простоя, что является причиной изменения поведения кулера. Исследование лога через journalctl /usr/bin/gnome-shell показывает частые сообщения об ошибке в Clutter, конкретно: (../clutter/clutter/clutter-frame-clock.c:1143):clutter_frame_clock_dispatch: code should not be reached. Эти сообщения повторяются тысячами раз в секунду, вероятно, создавая значительную нагрузку на CPU из-за обилия логирования. Очевидно, проблема лежит в работе Clutter, компонента, ответственного за вывод графики в GNOME Shell.

Применение

  1. Отслеживание проблемы: Раз вы видите повторяющиеся сообщения, очевидно, что проблема лежит в взаимодействии Clutter и GNOME Shell. Удалось выяснить, что эта ошибка связана с Clutter Frame Clock, который управляет рендерингом анимаций и обновлением экрана.

  2. Диагностика и временные решения:

    • Поиск обновлений: Проверьте, есть ли доступные обновления для пакетов GNOME и Mutter через менеджер пакетов APT. Обновления могут включать исправления ошибок.
    • Использование альтернативных конфигураций: Попробуйте временно переключиться на другой диспетчер окон, например, Openbox или Xfwm, чтобы проверить, сохраняется ли проблема.
  3. Документирование и подача баг-репорта:

    • Подача отчета об ошибке: Поскольку GNOME и Mutter — это проекты с открытым исходным кодом, вы можете обратиться с баг-репортом. Стоит описать вашу конкретную проблему и приложить логи, которые демонстрируют ошибку. В большинстве случаев, баг-репорты подаются на GitLab в репозиториях проектов GNOME или конкретного дистрибутива. Для вашего случая, возможно, лучше всего обратиться как в репозитории GNOME, так и в Ubuntu.
    • Сообщество: Помните, что сообщества GNOME и Linux в целом активно поддерживаются разработчиками и пользователями. Поделитесь вашей проблемой на форумах Ubuntu или в соответствующих разделах Stack Exchange. Возможно, кто-то уже сталкивался с подобной проблемой и подскажет решение.
  4. Обратная связь и обратный процесс:

    • Отслеживание статуса проблемы: После подачи баг-репорта регулярно проверяйте его статус. Разработчики могут попросить дополнительные данные или тестирование, чтобы лучше понять и решить проблему.
    • Сопряженные решения: Если проблема критичная, можно рассмотреть временный переход на другую версию GNOME Shell или даже другой дистрибутив Linux, который может не содержать эту ошибку.

Заключение

Ситуация, в которой вы оказались, не является редкостью в мире операционных систем с открытым исходным кодом. Возможность обнаруживать и сообщать об ошибках является важной частью экосистемы Linux. Это позволяет пользователям не только получать скорейшую обратную связь и помощь, но и способствовать улучшению программного обеспечения. Диспетчер окон GNOME и его зависимости, такие как Mutter и Clutter, постоянно развиваются, и ваше участие в этом процессе через баг-репорты и участие в сообществе может сыграть ключевую роль в их совершенствовании.

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

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