关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

Linux的swap提示内存不足添加swap交换内存(虚拟内存)的方法

发布时间:2023/4/1 14:49:30
香港云服务器

如果系统的物理内存用光了,则会用到 swap。系统就会跑得很慢,但仍能运行;如果 Swap 空间用光了,那么系统就会发生错误。通常会出现 “application is out of memory” 的错误,严重时会造成服务进程的死锁。所以要高度重视。

通常情况下,Swap 空间应大于或等于物理内存的大小,最小不应小于 64M,通常 Swap 空间的大小应是物理内存的 2-2.5 倍。但根据不同的应用,应有不同的配置:如果是小的桌面系统,则只需要较小的 Swap 空间,而大的服务器系统则视情况不同需要不同大小的 Swap 空间。特别是数据库服务器和 Web 服务器,随着访问量的增加,对 Swap 空间的要求也会增加,具体配置参见各服务器产品的说明。


Swap 分区的数量对性能也有很大的影响。因为 Swap 交换的操作是磁盘 IO 的操作,如果有多个 Swap 交换区,Swap 空间的分配会以轮流的方式操作于 所有的 Swap,这样会大大均衡 IO 的负载,加快 Swap 交换的速度。如果只有一个交换区,所有的交换操作会使交换区变得很忙,使系统大多数时间处于等待 状态,效率很低。用性能监视工具就会发现,此时的 CPU 并不很忙,而系统却慢。这说明,瓶颈在 IO 上,依靠提高 CPU 的速度是解决不了问题的。

添加 swap 空间

  1. 复制代码
  2. # 查看当前内存
  3. free -g
  4.  
  5. # 查看交换分区使用情况
  6. swapon -s
  7.  
  8. # 创建一个分区添加交换文件,创建交换空间,然后启动新增的交换空间(1G大小)
  9. dd if=/dev/zero of=/opt/swap bs=1024 count=1024000
  10. dd if=/dev/zero of=/opt/swap bs=1024 count=2048000
  11. /sbin/mkswap /opt/swap
  12. /sbin/swapon /opt/swap
  13. ## 报错 不安全的权限 0644,建议使用 0600
  14. chmod 0600 /opt/swap
  15. # 再次尝试
  16. # 报错 swapon 失败: 设备或资源忙
  17. /sbin/swapoff /opt/swap
  18. /sbin/swapon /opt/swap
  19. # 再次查看内存情况
  20. free -g
  21.  
  22. 修改/etc/fstab,使新加的2G交换空间在系统重新启动后自动生效
  23. echo "/opt/swap swap swap defaults 0 0" >>/etc/fstab

释放 swap 空间

物理内存接近饱和时,系统会自动将不常用的内存文件转储到 SWAP 中,但 SWAP 使用率达 30% 的时候对系统性能可能有一定影响。

  1. sync                         # 先执行下同步
  2. swapoff -a          &