硅云帮助文档中心
搜索文档
热门搜索词:
产品简介
产品定价
入门指南
经典案例
快照
常见问题
知识拓展
名词解释
API参考
swap是虚拟交换分区(也称作虚拟内存)技术,是通过从磁盘中划出一块分区模拟成内存RAM使用的技术,这种用磁盘来充当内存的技术能在一定程度上提高内存RAM配置较小的服务器的可用内存总量,能减少因内存RAM不足导致应用或服务器宕机的情况发生。
但是,这种治标不治本的方法也会带来一系列的问题,因swap虚拟内存交换分区是利用磁盘来模拟内存读写,这会严重占用磁盘IO读写和CPU性能,尤其是给那些磁盘性能一般、CPU核心数较少的服务器带来更高的磁盘IO延迟,导致IOwait指标升高,CPU长期高负载,最终导致服务器整体运行效率严重下降(系统负载变高,运行卡顿)的长期影响。
建议:
尤其是对于非SSD磁盘、CPU低于4核心的云服务器来说,不开启swap分区往往会更好,不用swap反而能提升服务器整体运行速度。如果服务器出现了因内存RAM不足而宕机的情况,最应该做的是优化业务的内存消耗或者直接升级扩容内存RAM的容量,这才是治本的办法。PS:即使系统盘为SSD云盘的云服务器也同样建议关闭Swap虚拟内存,比较懂电脑技术的人可能对此都有一定了解——磁盘的速度(即使是SSD固态盘)和真实物理内存DRAM在读写速度、读写延迟上是有很大差距的,现在很多智能手机也有所谓的虚拟内存(很多厂商称作智慧内存拓展),我的建议是关闭这种功能,这样系统能流畅很多。
临时关闭swap:(系统重启后会失效,Swap仍会恢复)
sudo swapoff -a
永久关闭swap(推荐):
用vi编辑磁盘配置文件(即/etc/fstab文件),将里边关于swap分区的挂载信息注释掉就行:

如果您不熟悉Linux文件编辑操作(vi编辑命令),您也可直接执行以下命令就能一键完成修改文件(或者在宝塔面板的文件管理中编辑保存):
sed -ri 's/.*swap.*/#&/' /etc/fstab 或 sed -i '/swap/s/^/#/' /etc/fstab
然后,删除之前为了启用Swap虚拟内存功能而设置的磁盘文件(宝塔面板设置的Swap文件是 /www/swap,这里就以宝塔面板为例)以节省磁盘空间:
rm -rf /www/swap #注意,执行rm删除命令前请谨慎操作,一定要完整复制命令;如果您不熟悉Linux命令的执行流程,可登录宝塔面板在文件管理中对/www/swap文件进行删除,然后再清空回收箱。
执行以上命令后,重启系统即可。
要想验证是否成功关闭了swap虚拟交换分区(虚拟内存),我们可以执行命令free -m查看内存情况,会发现swap这一样的total项为0即表示已经关闭了swap虚拟内存:

相关文档
您对该文档有什么建议?
本文导航