August Rush

一个还在努力成长的小火汁!

游龙当归海,海不迎我自来也。

We create our own demons.

You can reach me at augustrush0923@gmail.com
阿里云CentOS 7下创建swap文件
发布:2021年06月25日 | 作者:augustrush | 阅读量: 1291

最近新项目开发完毕,着手上线。但公司只分配了一台阿里云1核512MB 20GB的CentOS 7云主机。

项目上线没几天,数据库直接宕机,查看日志,报警提示为内存溢出错误。在领导直接说没有更多资源分配给我时,我只好去思考其他方法。

重现打开那本尘封已久的《鸟哥Linux私房菜》,在第七章第五节--内存交换空间(swap)之创建找到解决办法。

创建交换空间有两种方法:

  • 使用实体分区创建swap
  • 使用文件创建swap

因阿里云主机无法支持实体分区,此文只讨论使用文件创建swap


查看当前是否使用swap分区或swap文件

# more /etc/centos-release   ## 查看系统版本
CentOS Linux release 7.9.2009 (Core)

# cat /proc/meminfo | grep -i swap  ## 查看是否启用swap
SwapCached:            0 kB
SwapTotal:            0 kB
SwapFree:              0 kB

# free -m  ## free命令也可以观察swap使用情况
              total        used        free      shared  buff/cache   available
Mem:            488         380           7           1         100          93
Swap:             0           0           0

# swapon -s  ## 查看swap是否开启


创建swap文件及启用swap

# lsblk  ## 列出本系统下的所有磁盘与磁盘内的分区信息 
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda    253:0    0  20G  0 disk 
└─vda1 253:1    0  20G  0 part /

通过lsblk命令可以看出,阿里云的云服务器默认只分出一个主分区/,所以可以把swap文件创建在/目录下。

# fallocate -l 4G swapfile  ##快速生成swap文件
# ls -hltr | grep swapfile
-rw-r--r-- 1 root root 4.0G Nov 22 16:19 swapfile

## 可选的方案,这个方法相对较慢
# dd if=/dev/zero of=/swapfile bs=4096 count=1024K

# chmod 600 /mnt/swapfile  ## 权限设置,必要设置,如果不设置 使用swapon会报错

# mkswap /swapfile  ## 使用mkswap将文件设置为Linux交换区
Setting up swapspace version 1, size = 4194300 KiB
no label, UUID=069dc4e5-76c9-468e-9da1-231fa0f9ef28

# swapon swapfile  ## 启用Linux交换分区

# swapon -s
Filename                                Type            Size    Used    Priority
/swapfile                               file    4194300 0       -1

## 配置OS启动时自动加载Linux交换分区
# echo "/swapfile swap swap defaults 0 0" >> /etc/fstab


swap使用频率设置

交换空间频繁使用的默认值是60(最大值是100)。

数值越高,内核使用的交换空间越频繁。当该值设置为0时,交换文件将只在操作系统已充分利用内存的情况下使用。

# vim /etc/sysctl.conf
vm.swappliness=10
# sysctl -p

# cat /proc/meminfo|grep -i swap
SwapCached:            0 kB
SwapTotal:      4194300 kB
SwapFree:        4194300 kB


  • 标签云

  • 支付宝扫码支持一下

  • 微信扫码支持一下



基于Nginx+Supervisord+uWSGI+Django1.11.1+Python3.6.5构建

京ICP备20007446号-1 & 豫公网安备 41100202000460号

网站地图 & RSS | Feed