这个问题持续了一段时间,但是我从 18.04 升级到 20.04 后,感觉它变得非常频繁(而不是偶尔发生,几乎每天都会发生)。
每当事情发生时 - 在我看来就像是当 RAM 使用率变高时(我曾看到人们描述了磁盘 I/O 的类似问题,但情况似乎并非如此) - 系统边界冻结。在第一分钟内,系统会剧烈震动,我有很短的机会移动现在抖动的鼠标光标以快速关闭导致问题的浏览器选项卡或应用程序。如果我不这样做,此时系统几乎永久冻结,顶部栏上的系统时钟停止更新,无论发生什么都不会解冻,我需要进行硬重置。
以前,当我打开太多标签时,这种情况经常发生在 Firefox 上,但我安装了一个标签限制器扩展来缓解这种情况。但它一直在发生,当我在 GIMP 中处理更大的图像时,当我浏览一些无限滚动的网站时,它(有时)会发生,比如 DeviantArt 重新设计或一些视频网站。我只是失去了前进半小时上的像素艺术作品,我在GIMP工作。
这使我的系统使用起来非常烦人。我不想这么说,但我在双启动时使用的 Windows 10 更稳定 - 这就是说,因为 W10 是我用过的最差的操作系统。
这是一个 inxi -F 转储:
System:
Host: shino-ProLiant-ML310-G5p Kernel: 5.4.0-66-generic x86_64 bits: 64
Desktop: Gnome 3.36.4 Distro: Ubuntu 20.04.2 LTS (Focal Fossa)
Machine:
Type: Desktop System: HP product: ProLiant ML310 G5p v: N/A
serial: <superuser/root required>
Mobo: N/A model: N/A serial: N/A BIOS: HP v: W08 date: 10/25/2010
CPU:
Topology: Dual Core model: Intel Xeon E3120 bits: 64 type: MCP
L2 cache: 6144 KiB
Speed: 1995 MHz min/max: N/A Core speeds (MHz): 1: 1995 2: 1995
Graphics:
Device-1: AMD ES1000 driver: N/A
Device-2: NVIDIA G86 [Quadro NVS 290] driver: nvidia v: 340.108
Display: x11 server: X.Org 1.20.9 driver: nvidia
unloaded: fbdev,modesetting,nouveau,vesa resolution: 1440x900~75Hz
OpenGL: renderer: Quadro NVS 290/PCIe/SSE2 v: 3.3.0 NVIDIA 340.108
Audio:
Device-1: Generalplus type: USB driver: hid-generic,snd-usb-audio,usbhid
Sound Server: ALSA v: k5.4.0-66-generic
Network:
Device-1: Broadcom and subsidiaries NetXtreme BCM5715 Gigabit Ethernet
driver: tg3
IF: enp3s4f0 state: down mac: 9c:8e:99:35:15:80
Device-2: Broadcom and subsidiaries NetXtreme BCM5715 Gigabit Ethernet
driver: tg3
IF: enp3s4f1 state: up speed: 1000 Mbps duplex: full
mac: 9c:8e:99:35:15:81
Drives:
Local Storage: total: 1.82 TiB used: 594.46 GiB (31.9%)
ID-1: /dev/sda model: LOGICAL VOLUME size: 1.82 TiB
RAID:
Hardware-1: Hewlett-Packard Smart Array G6 controllers driver: hpsa
Partition:
ID-1: / size: 910.88 GiB used: 594.46 GiB (65.3%) fs: ext4 dev: /dev/sda5
Sensors:
System Temperatures: cpu: 40.0 C mobo: N/A gpu: nvidia temp: 68 C
Fan Speeds (RPM): N/A
Info:
Processes: 288 Uptime: 2h 17m Memory: 3.84 GiB used: 2.86 GiB (74.6%)
Shell: bash inxi: 3.0.38
从https://en.wikipedia.org/wiki/Memory_paging#Swappiness它指出:
Swappiness 是一个 Linux 内核参数,用于控制在无法从空闲内存中满足内存分配请求时,换出运行时内存的相对权重,而不是从系统页面缓存中删除页面。Swappiness 可以设置为 0 到 200(含)之间的值。[18] 较低的值会导致内核倾向于从页面缓存中驱逐页面,而较高的值会导致内核倾向于换出“冷”内存页面。默认值为 60;如果需要换回冷页面(例如,当与一个空闲的程序交互时),将它设置得更高可能会导致高延迟,而将它设置得更低(甚至 0)可能会导致当文件被逐出时高延迟缓存需要再次读取,但响应速度更快的程序。交换还会进一步减慢 HDD 的速度,因为它涉及大量随机写入,而 SSD 则不存在此问题。当然,默认值在大多数工作负载中都能很好地工作,但是桌面和交互式系统对于任何预期任务可能希望降低设置,而批处理和交互性较低的系统可能希望增加它。 [19]
由于 Ubuntu 默认vm.swappiness
值为60
,我建议使用较低的值,即10
,以便 RAM 中的非活动页面对交换不那么积极。
运行以下命令以设置值10
(如果 .conf 文件中尚未设置值):
echo "vm.swappiness = 10" | sudo tee -a /etc/sysctl.conf
如果设置已经存在,您可以复制并粘贴以下内容以将值更改为10
:
sudo sed -i "s/$(awk '/vm.swappiness/ {print $0}' /etc/sysctl.conf)/vm.swappiness\ =\ 10/" /etc/sysctl.conf
然后激活更改:
sudo sysctl -p
您还可以尝试不同的值,以查看最适合您的值。
希望这可以帮助!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句