我有一台旧电脑,它有 4GB 的 RAM,我想出于研究目的测试我的世界,但它冻结了。我有一个 mod 来加速游戏,但我不确定它是否使用了更多的 RAM,游戏从流畅的 FPS 变为冻结电脑,可能是由于内存已满。(我试图查看内存使用情况是否已满,但当我查看时似乎从未发生过。)
我的想法是不要花 100 多英镑购买更多内存,而是将交换文件更多地用作内存条。就像数据进入交换区并留在那里直到使用,然后被带到内存中进行处理。而不是直接进入内存并填满它导致速度变慢。
谢谢。
答案1
增加交换空间确实会为系统提供机会暂时交换工作内存,以便其他进程使用。虽然它可以防止您的旧计算机完全锁定和崩溃,但交换可能会使处理速度变得难以忍受,甚至会让您感觉几分钟内都像冻结了一样,除了硬盘超负荷运转的噪音。
虽然一些调整(例如改变 swappiness 或使用 zswap)可能会改善略微超载系统的感知性能,但对于高内存需求,除了实际投资 RAM 之外,没有真正的解决方案。
答案2
要增加交换使用量,您可能需要增加“swappiness”系统参数。要暂时(直到重新启动)更改交换量,请执行sudo sysctl vm.swappiness=<whatever needed>
。交换量可以是 100 到 0 之间的任何数字。更改后,启动系统监视器或 htop 并使用计算机一段时间。尝试执行将来可能占用大量内存的任务,并密切监视内存/交换使用情况。根据需要调整交换量。
达到最佳性能后,就可以将设置永久生效了:
sudo mkdir -p /etc/sysctl.d
sudo <your text editor of choice> /etc/sysctl.d/swappiness.conf
只需粘贴vm.swappiness=<your optimal value>
,不带 sysctl 位。此后,设置将在重启后保留。