Gnome 3.36.2 在 20.04 中泄漏内存和 CPU

Ale*_*zzi 8 gnome ram memory-leak gnome-shell

我最近注意到 Gnome 3.36.2 中 UI 的性能似乎随着正常运行时间而下降。

最明显的表现就是随着时间的推移,窗口动画有延迟,感觉很“粘”。应用程序本身似乎不受影响。当我告诉 gnome 切换工作区时,在动画发生之前大约有半秒到整秒的延迟。这也适用于按元键显示我的所有窗口或按 alt-tab 之类的事情。每个人似乎都有相同的延迟。

我正在 Ubuntu 20.04 上使用 vanilla gnome 运行一个相当不起眼的桌面设置。

我对这个问题的研究似乎表明,在18.xx版本的操作系统的内存泄漏问题,但那些被所谓固定。在这一点上,我唯一可以得出的结论是,出现了新问题、出现​​了回归,或者原始修复程序不起作用。

动画延迟正在削弱生产力,以至于我最终不得不重新启动系统。gnome-shell随着时间的推移,这个过程肯定会泄漏,因为它开始大约 300 mb,如果离开一天,它将停留在 600 mb 或更多。


关于我的整体硬件和系统的标称状态,即使我在创建这个问题,我也遇到了这个问题。我正在运行 Stock/vanilla gnome 桌面,而不是 ubuntu 定制的桌面。

我的系统有 32gb 的 RAM,目前只有 6gb 正在使用。我的 CPU 使用率在 12 个 vcores 之间波动,最高可达 20%。我的 GPU 有一个 RTX 2060。

至少据我所知,我认为 gnome-shell 现在获得的资源量没有问题。


链接


根据 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
Run Code Online (Sandbox Code Playgroud)
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 ..
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)

(由于我运行的是 vanilla gnome 桌面,而不是 Ubuntu 桌面,因此上述扩展均未启用)

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

Run Code Online (Sandbox Code Playgroud)
  *-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
Run Code Online (Sandbox Code Playgroud)
sudo dmidecode -s bios-version
BVCN11WW(V1.07)
Run Code Online (Sandbox Code Playgroud)

我不相信我的系统动力不足或以任何方式配置错误,以至于这种泄漏是我自己做的结果。

sup*_*m32 5

我可以确认我在gnome-shell使用 Ryzen 7 机器和 Radion R9 时也遇到了同样的内存泄漏。在正常运行时间接近大约 2 天后,我可以明显地注意到 OP 遇到的延迟。此外,如果我从一开始就比较进程的内存,我会注意到它已经大幅攀升,并且仍在攀升。

一个临时的解决方法是 ALT+F2+r,但实际上他们应该解决这个问题。特别是如果您在一直运行的服务器上工作。

编辑:似乎内存泄漏是由gnome-shell动画和交互引起的。因此,如果您执行诸如不断最小化和最大化窗口之类的操作,或者不断调用和关闭活动视图,您会看到gnome-shell内存开始增加。它可能会出现一段时间的波动,但最终它使用的最大内存量将缓慢上升并且永不下降。


hey*_*ema 0

我不指望这会修复你的 GNOME 内存泄漏问题,但无论如何它都是重要的信息。

联想拯救者 Y740-15IRHg (81UH0000US)

您有 BIOS BVCN11WW (V1.07)。

有更新的 BIOS 可用,BVCN12WW (V1.08),日期为 2020 年 1 月 2 日,可以在此处下载

注意:确保我有适合您的型号的正确网页。

注意:更新 BIOS 之前请做好备份。