我的 Dell XPS 15 上装有 8GB RAM 的 Ubuntu 12.04 x64,运行速度非常慢。
经过一番搜索,我偶然发现了有关 swappiness 的帖子。我注意到,我的系统上的 swappiness 报告为 0,这意味着交换应该只在内存全部使用时才开始,但实际上它的行为与 swappiness 为 60 时的行为非常相似。
我使用以下命令将 swappiness 设置为 10:
echo 10 > /proc/sys/vm/swappiness
并更新/etc/sysctl.conf
:
vm.swappiness = 10
重启后,我注意到 swappiness 再次报告为 0,且性能同样低迷。我运行了 echo 10 > /proc/sys/vm/swappiness
,性能显著提高。
我再次重启并检查 swappiness,它再次报告为 0。我执行sudo sysctl -p
并看到值生效sysctl.conf
。
看来,/etc/sysctl.conf
在启动时该值被忽略了。
我有一台装有 Ubuntu 12.04 32 位的笔记本电脑,我也应用了相同的配置。在笔记本电脑上,更改确实按预期生效,并在重启后保留。
有人遇到过这种问题吗?我该如何解决?
答案1
尝试这个:
启动终端仿真器并运行
cd /etc/sysctl.d/
echo "vm.swappiness = 10" | sudo tee 60-memory-management.conf
sudo chmod 644 60-memory-management.conf
重新启动并检查新值是否正在使用:
cat /proc/sys/vm/swappiness`
答案2
我刚刚在 /etc/rc.local 中输入了以下内容
sysctl -w vm.swappiness=1 #Discourage swapping.
sudo sysctl -w vm.swappiness=1
基本上,您可以随时运行此命令:更改 swappiness.. cat /proc/sys/vm/swappiness 之后给出 1。