问题描述
交换分区是一种磁盘分区,它被当作“备用内存”使用。内核将内存中的“冷”数据换下来,写入「交换分区」,以腾出内存空间用于其他需求。
有人推荐「交换分区」的大小应该为「物理内存」的1/2倍、1倍、2倍。
那「交换分区」应该设置多大才合适呢?
解决方案
先说结论:针对现在的计算机硬件,内存容量已经不再是,可以直接禁用交换分区。
如果一定要开启交换分区:
那交换分区应该设置多大?
关于「交换大小」问题没有明确的答案,只有建议。(每次听到这种话都感觉是屁话……)
在Red Hat的「Do we really need swap on modern systems?」中:
- 对于现代系统(即4GB或更高的内存),建议交换大小为内存的20%。
在CentOS的建议中:
- 如果内存小于2 GB,则交换分区的大小是RAM的两倍
- 如果内存大于2 GB,则大小为内存大小加上2 GB。例如,如果是3GB内存,则配置5GB交换分区
但是如果是作为笔记本系统的话,又有不同的地方。例如,休眠是写入交换分区的,所以这也要考虑进去。
在Ubuntu中:
- 如果RAM小于1 GB,则交换分区的大小应至少应为RAM的大小,并且最多为RAM大小的两倍;
- 如果RAM大于1 GB,则交换分区的大小应至少等于RAM大小的平方根,并且最多为RAM大小的两倍;
- 如果使用休眠,则交换大小应等于RAM的大小,再加上RAM大小的平方根;
在很长一段时间中,交换分区的建议大小通常是RAM的两倍。
在 Raspbian 中,禁用交换分区
How do I permanently disable the swap service? – Forum – Raspberry Pi – element14 Community
sudo sync sudo swapoff -a sudo apt-get purge -y dphys-swapfile sudo rm /var/swap sudo sync reboot swapon -s
参考文献
How Much Swap Should You Use in Linux?