我正在尝试在 Linux 上玩游戏,但最大的瓶颈是我的硬盘和 8GB 的 RAM。我使用 zram 通过压缩将更多数据存储在我的 RAM 中(使用 lz4 算法,优先级为 100,选项为“丢弃”,块大小设置为与我的 RAM 大小相等)。但是,我的系统滞后且一直卡顿,有时在玩游戏时会冻结,即使交换空间只有 5.7/7.7G 已满(但 RAM 已满 7.5/7.7G)。刚才我试图玩 COD:WW2(wine),但它一直滞后并随机冻结。其他大型游戏也会发生这种情况。
我读了不同的文章,发现一些 sysctl 设置可以提高性能,但是这些文章中的建议是通用的,并不具体,例如,既不针对硬盘也不针对游戏。这些是我所说的可调整设置:
vm.swappiness
vm.vfs_cache_pressure
vm.page-cluster
vm.dirty_ratio
vm.dirty_background_ratio
在Reddit,我发现了这些调整:
vm.swappiness = 200
vm.vfs_cache_pressure = 200
vm.page-cluster = 0
vm.dirty_ratio = 2
vm.dirty_background_ratio = 1
等等海登·詹姆斯 (Hayden James) 博客,我发现了这些:
vm.vfs_cache_pressure = 500
vm.swappiness = 100
vm.dirty_background_ratio = 1
vm.dirty_ratio = 50
最后,根据公式Arch Linux 维基这些设置可以很好地工作(对于一般用途):
vm.swappiness = 133
vm.vfs_cache_pressure = 50
vm.dirty_ratio = 6
vm.dirty_background_ratio = 3
但是,正如我所说,这些设置是用于一般用途,而不是游戏,例如在浏览时保持系统稳定。正如您所见,它们有很大不同。另外,我不太确定更改这些设置的利弊是什么。
我想知道是否有人可以帮我解决这个问题?在使用 HDD 和 8GB RAM 玩游戏时,这些设置与 zram 配合使用的最佳值是什么,以使系统更稳定?我正在尝试保持较低的磁盘 I/O 和更多的 RAM 空间。快速注意,即使禁用 HDD 上的交换分区,问题仍然存在,并且只保留 zram 交换,因此它不是因此而发生的。