我最近决定双启动 Ubuntu 以尝试将其作为我的主要平台,因为我喜欢它的外观和感觉,而且我真的很想摆脱 Windows。但无论出于什么原因,无论我玩什么游戏都会冻结/降低 fps 一段时间,然后才恢复正常。我知道这不是硬件问题,因为完全相同的游戏在 Windows 上运行得很好。我已经用古墓丽影(在 proton 上,而不是糟糕的 linux 端口)、最终幻想 XIV、古墓丽影的崛起和 Slime Rancher 测试过它。查看 mangohud 似乎我的 gpu 使用率到处都是。具体来说,在古墓丽影的崛起基准测试中,有时我的 GPU 使用率为 100% 并产生预期的 FPS 量,但在另一个区域它下降到大约 59%,这反过来导致我的 FPS 从 ~144 下降到 50-70FPS。在运行它时,我的 fps 偶尔会降到 30 多,然后又升回 70,因为基准测试告诉我这是最低值。我尝试将 CPU 设置为性能、按需、schedutil,但它们似乎都没有太大区别。在使用 mangohud 时,我的 CPU 最高会升至 64%,正如我所说,我在 Windows 上没有问题,所以这不是 CPU 瓶颈。我不知道问题是什么,如果我能解决这个问题,我可以看到自己使用该平台作为我的主要平台,因为我的所有游戏似乎都可以在 proton 上运行得很好(除了卡顿)。
我的规格是:ASRock AB350M 16GB 内存 ZOTAC Gaming RTX2060 Super(驱动程序 460.91.03,也尝试过 470.57.02,但没有用)AMD Ryzen 5 1600x 一台华硕显示器(60hz),一台带 GSync(144hz)的戴尔 如果我忘记了什么,这里有一个 lshw 的 pastebin:https://pastebin.com/7qdVFE72
What I've tried:
将 CPU 调速器更改为性能 禁用 Wayland 安装 Pop!_OS,重新安装 Ubuntu(多次) 降级驱动程序 在 nvidia x 服务器设置中将 GPU 更改为性能 在 BIOS 中禁用安静和冷却 强制完整组合管道 安装到不同的 SSD(我有 3 个) 保存到 X 配置文件 禁用/启用同步到 VBlank
再次强调,Windows 上一切都运行正常,因此我认为这根本不是硬件问题。即使查看 mangohud 上的温度,一切正常。此时,我感觉研究了很久,但没有任何帮助,因此任何帮助都将不胜感激。编辑:Pastebin 包含 free -h、sysctl vm.swappiness 和 swapon -s 的结果https://pastebin.com/JfBa1pAh
答案1
BIOS
华擎AB350M
您有一个非常旧的 BIOS 版本 P3.10,日期为 2017 年 8 月 30 日。转到这里并下载并安装较新的 BIOS。
笔记:仔细阅读网站上的各种版本警告。
笔记:更新 BIOS 之前请做好备份。
超频
如果您的 CPU 或 RAM 超频,请将其恢复默认值,然后重新测试。
记忆
锐龙 5 1600x(Summit Ridge)
金士顿 KHX2666C16/8G
Ryzen 处理器对内存兼容性非常挑剔。您的金士顿内存未出现在 ASRock 内存兼容性列表中。
去https://www.memtest86.com/并免费下载/运行它们memtest
来测试你的记忆力。至少完成一次所有 4/4 测试以确认记忆力良好。这可能需要几个小时才能完成。
交换/vm.swappiness
你的 /swapfile 太小了,只有 2G,而且你的 vm.swappiness 是错误的。
笔记:错误使用rm
和dd
命令可能会导致数据丢失。建议复制/粘贴。
在里面terminal
...
sudo swapoff -a # turn off swap
sudo rm -i /swapfile # remove old /swapfile
sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
sudo chmod 600 /swapfile # set proper file protections
sudo mkswap /swapfile # init /swapfile
sudo swapon /swapfile # turn on swap
free -h # confirm 16G RAM and 4G swap
sudo -H gedit /etc/fstab
使用或编辑 /etc/fstab sudo pico /etc/fstab
。
确认 /etc/fstab 中的此 /swapfile 行...并确认没有其他“交换”行...在此行中使用空格...确认没有制表符...
/swapfile none swap sw 0 0
reboot # reboot and verify operation
编辑 /etc/sysctl.conf 并设置 vm.swappiness=10,然后执行sudo sysctl -p
。这仍然会最小化交换,我相信这是你的初衷。
Ubuntu
如果以上所有方法都无法解决问题,请准备一张 Ubuntu Live 21.04 DVD/USB 并启动它。安装最新的 Nvidia 视频驱动程序(如果可能)。重新测试。
更新#1:
BIOS 已更新。但这对解决问题没有帮助。
更新 #2:
memtest
已通过。vm.swappiness 设置为 10。/swapfile 大小调整为 4G,超频设置为“自动”。Ubuntu Live 21.04 USB 有同样的问题(但当然它的 /swapfile 更小)。