В Gnome 3.36.2 произошла утечка памяти и ЦП в 20.04

В последнее время я заметил, что производительность пользовательского интерфейса в Gnome 3.36.2, по-видимому, снижается с временем безотказной работы.

Наиболее очевидное проявление заключается в том, что со временем оконные анимации имеют задержку и кажутся «липкими». , Сами приложения кажутся незатронутыми. Когда я говорю gnome переключать рабочие пространства, перед анимацией происходит задержка от полсекунды до полной секунды. Это также относится к таким вещам, как нажатие мета-клавиши для отображения всех моих окон или нажатие alt-tab. Кажется, что каждый из них имеет одинаковую задержку.

Я запускаю довольно непримечательную настольную установку с использованием vanilla gnome в Ubuntu 20.04.

Мои исследования по этой проблеме, похоже, указывают на то, что было утечка памяти проблемы в версиях 18.xx ОС, но те, которые якобы были исправлены. Единственное, что я могу сделать на этом этапе, это то, что возникла новая проблема, произошла регрессия, или оригинальное исправление не сработало.

Задержка анимации снижает производительность до такой степени, что мне в конечном итоге приходится перезагружать свою система. Процесс gnome-shell определенно протекает со временем, так как он начинается около ~ 300 МБ, а если оставить его на день, будет ~ 600 МБ или более.


Что касается моего общего оборудования и номинального состояния моей системы, я Я испытываю эту проблему, даже когда я создаю этот вопрос. Я использую стандартный рабочий стол / vanilla gnome, а не настроенный Ubuntu.

Моя система имеет 32 ГБ ОЗУ, только 6 ГБ из которых используются в настоящее время. Загрузка моего процессора колеблется в пределах 12 vcore до 20% макс. У меня есть RTX 2060 для моего GPU.

По крайней мере, насколько я могу судить, я не вижу проблем с количеством ресурсов, которые сейчас получает gnome-shell. 129


Ссылки


По запросу heynnema :

top - 08:52:58 up 16:18,  1 user,  load average: 0.75, 0.85, 0.77
Tasks: 494 total,   1 running, 491 sleeping,   0 stopped,   2 zombie
%Cpu(s):  2.9 us,  1.1 sy,  0.0 ni, 95.7 id,  0.0 wa,  0.0 hi,  0.3 si,  0.0 st
MiB Mem :  32029.7 total,  20316.2 free,   5763.1 used,   5950.4 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.  25355.6 avail Mem
ls -al ~/.local/share/gnome-shell/extensions
drwxrwxr-x 3 atrauzzi atrauzzi 4096 Apr 20 09:07 .
drwx------ 3 atrauzzi atrauzzi 4096 Jun  9 08:46 ..
ls -al /usr/share/gnome-shell/extensions
drwxr-xr-x 5 root root 4096 Apr  2 10:36 .
drwxr-xr-x 7 root root 4096 Jun  1 15:39 ..
drwxr-xr-x 2 root root 4096 Apr 19 20:24 desktop-icons@csoriano
drwxr-xr-x 3 root root 4096 Apr  2 10:36 ubuntu-appindicators@ubuntu.com
drwxr-xr-x 3 root root 4096 May 30 10:18 ubuntu-dock@ubuntu.com

(ни одно из вышеперечисленных расширений не включено, так как я использую рабочий стол vanilla gnome, не Ubuntu)

sysctl vm.swappiness
vm.swappiness = 60
              total        used        free      shared  buff/cache   available
Mem:           31Gi       5.8Gi        19Gi       570Mi       6.3Gi        24Gi
Swap:         2.0Gi          0B       2.0Gi

  *-firmware                
       description: BIOS
       vendor: LENOVO
       physical id: 0
       version: BVCN11WW(V1.07)
       date: 07/04/2019
       size: 128KiB
       capacity: 10MiB
       capabilities: pci upgrade shadowing cdboot bootselect edd int13floppynec int13floppytoshiba int13floppy360 int13floppy1200 int13floppy720 int13floppy2880 int9keyboard int10video acpi usb biosbootspecification uefi
  *-cache:0
       description: L1 cache
       physical id: 5
       slot: L1 Cache
       size: 384KiB
       capacity: 384KiB
       capabilities: synchronous internal write-back unified
       configuration: level=1
  *-cache:1
       description: L2 cache
       physical id: 6
       slot: L2 Cache
       size: 1536KiB
       capacity: 1536KiB
       capabilities: synchronous internal write-back unified
       configuration: level=2
  *-cache:2
       description: L3 cache
       physical id: 7
       slot: L3 Cache
       size: 12MiB
       capacity: 12MiB
       capabilities: synchronous internal write-back unified
       configuration: level=3
  *-memory
       description: System Memory
       physical id: 25
       slot: System board or motherboard
       size: 32GiB
     *-bank:0
          description: SODIMM DDR4 Synchronous 2667 MHz (0.4 ns)
          product: KHX2666C15S4/16G
          vendor: Kingston
          physical id: 0
          serial: C2A812C5
          slot: ChannelA-DIMM0
          size: 16GiB
          width: 64 bits
          clock: 2667MHz (0.4ns)
     *-bank:1
          description: SODIMM DDR4 Synchronous 2667 MHz (0.4 ns)
          product: KHX2666C15S4/16G
          vendor: Kingston
          physical id: 1
          serial: C1A82704
          slot: ChannelB-DIMM0
          size: 16GiB
          width: 64 bits
          clock: 2667MHz (0.4ns)
  *-memory UNCLAIMED
       description: RAM memory
       product: Cannon Lake PCH Shared SRAM
       vendor: Intel Corporation
       physical id: 14.2
       bus info: pci@0000:00:14.2
       version: 10
       width: 64 bits
       clock: 33MHz (30.3ns)
       capabilities: pm bus_master cap_list
       configuration: latency=0
       resources: iomemory:400-3ff iomemory:400-3ff memory:4022210000-4022211fff memory:4022217000-4022217fff
sudo dmidecode -s bios-version
BVCN11WW(V1.07)

Я не верю, что моя система недостаточно работает или каким-либо образом неправильно настроена, так что эта утечка является результатом моей собственной работы.

4
задан 9 June 2020 в 20:49

3 ответа

Я не ожидаю что это исправит утечку памяти в GNOME, но в любом случае это важная информация.

Lenovo Legion Y740-15IRHg (81UH0000US)

У вас есть BIOS BVCN11WW (V1.07).

Доступен более новый BIOS, BVCN12WW ( V1.08), датированный 2 января 2020 года, и можно загрузить здесь

Примечание : Убедитесь, что у меня есть правильная веб-страница для вашей модели #.

Примечание : Есть хорошие резервные копии перед обновлением BIOS.

0
ответ дан 19 June 2020 в 21:28

Я могу подтвердить, что я также испытываю ту же утечку памяти с gnome-shell с машина Ryzen 7 и Radion R9. Приблизительно через 2 дня время безотказной работы я могу заметить, с какой задержкой сталкивается ОП. Кроме того, если я сравню память процесса с самого начала, я заметю, что он значительно возрос и продолжает расти.

Временное решение - ALT + F2 + r, но на самом деле они должны это исправить. Особенно если вы работаете на сервере, который постоянно работает.

Редактировать: Похоже, что утечка памяти вызвана анимациями и взаимодействиями gnome-shell . Так что, если вы делаете что-то вроде постоянного свертывания и разворачивания окна, или продолжаете вызывать и отклонять представление действий, Вы можете видеть, что память gnome-shell начинает увеличиваться. Может показаться, что он некоторое время колеблется, но в итоге максимальный объем используемой памяти будет медленно увеличиваться и никогда не уменьшаться.

1
ответ дан 19 June 2020 в 21:28

У меня такая же проблема; gnome-shell использует все больше и больше памяти. Замедление анимации и использование памяти впустую.

Поскольку, вероятно, ошибку все равно никто не исправит, я сделал для себя следующее «исправление»:

Разрешить этому скрипту запускаться каждые 15 минут. Когда использование памяти процессом gnome-shell для текущего пользователя превышает процент использования (предел) в 2%, он автоматически перезапустит процесс gnome-shell (без потери какой-либо работы или приложений, это то же самое, что и запуск Alt +F2, а затем R).

#!/bin/sh
    
logfile=/home/$(whoami)/bin/gnome-auto-restart.log
    
# memory limit of the gnome-shell-process as a percentage
limit="2.0"
    
restartShell() {
    export DISPLAY=:1
    busctl --user call org.gnome.Shell /org/gnome/Shell org.gnome.Shell Eval s 'Meta.restart("Restarting...")' > /dev/null 2>&1
}
    
mem=$(ps -o pid,user,%mem,command ax|grep -i /usr/bin/gnome-shell |grep -i $(whoami)|sort -b -k3 -r|head -n1|tr -s " "|cut -d" " -f3)
    
echo "$(date) checking memory usage percentage of gnome-shell ($mem) against $limit" >> $logfile
    
if awk 'BEGIN {exit !('$mem' >= '$limit')}'; then
    echo "$(date) --> limit reached, restarting gnome-shell" >> $logfile
    restartShell
else
    echo "$(date) --> limit not reached" >> $logfile
fi

Я также перезапускаю gnome-shell каждую ночь, так как моя рабочая станция работает круглосуточно и без выходных. А я думаю перезапустить его в полдень во время обеда...

1
ответ дан 27 December 2020 в 14:35

Другие вопросы по тегам:

Похожие вопросы: