系统经常性鼠标拖动变慢,内存不自动释放等问题求助

主力机,配置如下

OS: openSUSE Tumbleweed x86_64 
Host: HP Pro SFF ZHAN 66 G9 Desktop PC 
Kernel: 6.8.2-1-default 
Uptime: 7 hours, 17 mins 
Packages: 1 (dpkg), 3729 (rpm), 1 (appimaged) 
Shell: zsh 5.9 
Resolution: 2560x1440 
DE: Plasma 6.0.3 
WM: kwin 
Theme: [Plasma], Breeze [GTK2/3] 
Icons: [Plasma], breeze [GTK2/3] 
Terminal: konsole 
Terminal Font: Hack 14 
CPU: 12th Gen Intel i3-12100 (8) @ 4.300GHz 
GPU: AMD ATI Radeon HD 8570 / R5 430 / R7 240/340 / Radeon 520 OEM 
GPU: Intel Alder Lake-S GT1 [UHD Graphics 730] 
Memory: 13466MiB / 31784MiB 

主板上 hdmi 接口接 2560x1440 显示器,另外插入一个 AMD Radeon R5 240 亮机卡 DP 口接 2560x1440 显示器。目前系统经常性出现以下三个问题,请教各位是否知道解决方法,或者定位问题的方式

  1. 系统内存经常爆满,不自动释放。交换内存 32G,使用为 0 或者只用了一点点。
    对于以上问题,有时候更新的内核会有些改善,但大多数时候问题还是会复现。没办法,就只能手动执行如下命令来释放内存
#!/bin/bash
free -m
grep file /proc/meminfo
echo "release memory..."
echo "password" | su -c "sync; echo 1 > /proc/sys/vm/drop_caches" root
echo -e "\n"
free -m
grep file /proc/meminfo
echo -e "\n"
grep -A2 Slab /proc/meminfo
echo "release memory..."
echo "password" | su -c "sync; echo 2 > /proc/sys/vm/drop_caches" root
echo -e "\n"
grep -A2 Slab /proc/meminfo
free -m

对于这个问题,大家是否有更好的解决方法?

2.【** 已经解决,无线接收器信号干扰问题 **】系统桌面(X11 或 wayland),经常会出现鼠标拖动丢帧,或者变慢的现象。具体是在拖动窗口,选中文字或者简单的移动鼠标时,就会出现选中失败,拖动缓慢等现象。下图中,鼠标明明已经选中了下方的终端,在拖动后,就发现,其实没选中窗口,或者是选中了,又重新选中了底层页面上的内容(这个和鼠标无关)。
output
目前我怀疑是和显卡有关,只是不知道如何定位这个问题。此问题经常出现在 Radeon 显卡驱动的显示器范围内,另一个 intel 集成显卡驱动的屏幕偶尔会出现。图中也给出了使用 radeontop 监控的数值。网上找到的其它的工具,不是无法打开,就是识别不到 Radeon 显卡,只有 radeontop 可以使用。
驱动安装情况如下:
S | Name | Summary
—±------------------------±-------------------------------------------------------------
i+ | kernel-firmware-radeon | Kernel firmware files for Radeon graphics driver
i+ | libdrm_radeon1 | Userspace interface for Kernel DRM services for AMD Radeon chips
i+ | libdrm_radeon1-32bit | Userspace interface for Kernel DRM services for AMD Radeon chips
i+ | libvdpau_radeonsi | VDPAU state tracker for radeonsi
| libvdpau_radeonsi-32bit | VDPAU state tracker for radeonsi
i+ | libvulkan_radeon | Mesa vulkan driver for AMD GPU
i+ | libvulkan_radeon-32bit | Mesa vulkan driver for AMD GPU
i+ | radeontop | Tool to view Radeon GPU utilization
i+ | radeontop-lang | Translations for package radeontop

  1. 锁屏后重新登录,部分窗口丢失。比如 WPS,edge 等。如果锁屏后关闭显示器,则大概率不会出现这种情况。

以上三个问题,第二个最严重。已经严重影响到工作了,请教各位有没有什么解决方法或者避开的方式。如果是显卡本身的问题,更换一个新点的型号,是否有用(机箱太小,不知道有啥选择)

这不就是系统响应慢的原因么……

内存装在那里不用当摆设么?放心,很安全、爆不了的。
Linux 内核把你闲置的内存都用来放 I/O 缓存了,以加快系统效率。你偏偏时不时把它好不容易攒的缓存给清掉……除了硬盘 I/O 相关的性能测试,不会用到那个 drop_caches 接口的。

哈哈,感谢回复。

道理是这样没错。不过当可用内存越来越少时,系统就会出现另一种卡顿,比如 matlab 和 vscode 就会很慢,即便把程序关掉,在短时间内,内存也不会降低。(之前有几版内核时,使用kquitapp5 plasmashell 关闭 plasma 桌面会有一定的帮助,内存没那么容易爆,但随着 matlab, edge 和 vscode 运行久了,依旧会出现爆内存,这几个软件变得超级卡。但是窗口拖动什么的,不会同步出现的)

我上面说的第二个问题和第一个问题不是耦合的。第一个问题的 “解决方案” 我也不是经常使用,而是在 matlab 和 vscode 卡顿的时候才会使用。但第二个问题,则是一直存在的,即便我刚开机,可用内存有很多,我也没执行过那段命令情况下,也是经常行出现鼠标拖动慢的。

我觉得你对 buffer cache 的解释不能只提加快系统效率这方面,
现在个人 pc 十几 g 甚至几十 g 的内存规模完全超出硬盘瞬间的读写能力,
如果此刻真正的 free 不足需要回收 buffer cache,此时过高的磁盘 io 肯定会导致系统卡顿的

除开部分应用内存泄漏的问题,
lz 可能要关注的是 Linux 内存回收水位线 这个概念

matlab 啊……你注意一下 free -h 的 available 数值。
你是不是 nvidia 显卡?

我没看明白内存的容量和硬盘的读写能力有什么关联。

如果是回收 cache,完全不会有任何磁盘 I/O 啊。如果是 swap 的话倒是会,但那种时候除了升级硬件或者放弃任务之外做什么都不好使。

我这里想说的是内存增长规模比磁盘读写速度增长规模要大
原来 4g 内存的时候回收内存可以接受,现在 32g 内存回收内存可能就会造成系统卡顿

我使用的是集成显卡:heavy_plus_sign:一个 AMD Radeon R5 240 亮机卡(非常古老的卡)。出现的第二个问题在 AMD 显卡插上的显示器上出现的更频繁,集成显卡插上的显示器偶尔会出现。

一楼图片中上方就是使用 radeontop 实时显示的 GPU 情况,其中有一项 Memory Clock 显示总共是 0.00G,实际使用差不多 0.5G,如下图

展示这个图是想询问以下是否这个问题与 GPU 有关,比如这个小异常。也比如使用 gpustat 之类的小工具查不到这个 GPU 等等。

关于内存问题,使用 free -m,结果如下图:

我对内存的使用不是很了解,目前系统反应的状况是系统对内存的调度好像除了问题,只会分配,不会回收。比如我开机以后,仅仅开启 vscode ,那么过一会后,可用内存降低(这应该是正常的),但当我打开新的软件,比如 edge 浏览器,或者 matlab,那么就会出现内存不够,软件会变得特别卡。尤其是 matlab,执行一个小的命令,都会卡半天。如果我选择先关闭 vscode,此时内存会回收一点点,有一点帮助,但是也不大。** 如果执行了我一楼发的那个脚本,强制回收内存。那么再打开软件,就会很流畅。**

此外,还有一个疑惑点是 swap 空间仅仅使用 5M,也可以说因为物理内存还没使用完,但事实上是当我物理内存只能个位数,软件都卡的不行了的时候,swap 依然是只使用了 5M 或者干脆是一点都没使用(以前我都部分配 swap 的,这个 swap 也是中间感觉内存有问题才分配的,因为觉得系统可能需要更多的 buffer 空间,然并卵)。

是怎么判断内存不够的?

很奇怪。对比一下前后的 free -h 输出呢?也看一下 cat /proc/buddyinfo。

看看 htop。通过设置把 PSI some XXX 项目也显示出来一起看。

关于问题二,鼠标拖动慢,破案了。是 usb 发射器的信号被干扰了。从网上搜上一些帖子

【已解决】台式机电脑中无线蓝牙鼠标卡顿
解决 Arch Linux 下蓝牙鼠标滞后感严重的问题
说一些蓝牙鼠标容易变慢卡顿,现象跟我现在是一样。我又插了有线鼠标试了下,非常丝滑。

安装了 evhz 查看 polling rate,罗技的无线鼠标(通过无线接收器连接)在 10~125Hz 之间波动,有线鼠标几乎都是 125Hz。按照上面帖子,把无线接收器插在离鼠标比较近的扩展坞上,polling rate 就几乎稳定在 110+Hz 了。应该是办公室设备比较多,互相之间干扰较大。

关于第一个内存问题,你提到的 buddyinfo 如下

Node 0, zone      DMA      0      0      0      0      0      0      0      0      1      1      2 
Node 0, zone    DMA32   3539   2290   2059   1292    847    523    274    107     46     65    205 
Node 0, zone   Normal  18991  23151 151482  53079  10888   2636    808    220     86    855    892

另外 PSI 需要在启动项里面开启,开启后各项显示是

(base) ➜  ~ cat /proc/pressure/cpu   
some avg10=0.99 avg60=0.62 avg300=0.64 total=509252799
full avg10=0.00 avg60=0.00 avg300=0.00 total=0
(base) ➜  ~ cat /proc/pressure/memory
some avg10=0.00 avg60=0.00 avg300=0.00 total=683780
full avg10=0.00 avg60=0.00 avg300=0.00 total=663103
(base) ➜  ~ cat /proc/pressure/io    
some avg10=0.29 avg60=0.13 avg300=1.23 total=1237023104
full avg10=0.29 avg60=0.13 avg300=1.07 total=1166821026

不是很明白各项的含义。

这个是感觉程序很卡,比如 edge 浏览器切换选项卡,或者打开网页慢,或者 matlab 运行很慢。使用free -m 查看显示可用内存较少。如果我使用命令清理以下,或者直接把 plasma 桌面 kill 掉,可用内存就会回来。这时候软件就不卡了。如此,就猜测是不是内存不够用了。

原来鼠标拖动慢就是真的是只是鼠标拖动慢啊……好像前段时间在其他地方也听说过一例,你要是一开始说是无线鼠标说不定我能想起来。

不应该啊。清缓存不会增加可用内存。

这个需要出问题的时候看。数据采集的时候,你的 CPU 有点不够用,硬盘也稍微有一点但是正在缓解,内存很充足。

我以前用蓝牙听歌再用蓝牙鼠标有时也会卡顿 :sweat_smile:

那可不。我用蓝牙听歌的时候蓝牙温度计还经常连不上呢。

问题 3 各位有遇到过吗?在 wayland 下几乎 100% 出现。现在只要离开超过十分钟时间,就得关闭显示器才行了。