关于完全禁用 Ubuntu 交换区的帖子很多。是否可以告诉 Ubuntu 允许但不鼓励使用交换区?
我在一台配备 1GB RAM 和小型 SSD 的笔记本电脑上安装了 Xubuntu,将其变成了 Samba 服务器。在最坏的情况下,可用内存仍然可以容纳交换文件中的所有数据:
~$ free -m
total used free shared buffers cached
Mem: 991 696 294 17 66 175
-/+ buffers/cache: 454 536
Swap: 1952 107 1845
当有可用内存时,我想阻止交换,因为交换会执行大量的 IO 写入,从而迅速降低 SSD 的性能。
是否可以优先考虑 RAM 而不是交换,或者选择仅限于“交换开启/关闭”?这会带来什么副作用(如果有的话)?
感谢您指出现有的答案,它们虽然相关但很难找到。用户必须知道 90% 的答案才能搜索“如何配置 swappiness”。问题已回答。希望这个问题标题有助于索引。
答案1
除非您拥有相当旧的 SSD,否则半现代的 SSD 可以处理大量写入,因此如果您拥有半现代的 SSD,您实际上不需要做任何事情。
如果您仍想减少交换,请减少swappiness
(现代 Linux 上的最小值为1
,而不是0
,如果您想全力以赴,尽管这10
是建议的最小值并且60
是 Ubuntu 的默认值)。当交换最终开始时,这会大大减慢速度(如果内存压力很大,系统可能会冻结一段时间),因为几乎没有任何东西会提前被换出。
要设置swappiness
,请将10
下面的 替换为swappiness
您想要的,1
其中100
较低的值交换频率较低。打开终端(按++ Ctrl),然后运行:AltT
sudo sysctl vm.swappiness=10
sudo nano /etc/sysctl.conf
现在,在底部添加一行(或者如果已经有一行vm.swappiness
,则编辑它):
vm.swappiness = 10
按Ctrl+O保存。按Ctrl+X退出nano
。关闭终端窗口。