我这里虚拟了 2G 的容量进行内存扩容,然后 swap 使用的利用率比例为 60,即:当物理内存剩下 60% 时使用 swap 进行交换。
方案一、临时配置
临时配置是指重启之后会失效,仅仅只是保持本次开机起作用。
1. 分配文件空间
建立一个 2048M 的 swap 所需的文件空间
dd if=/dev/zero of=/var/blockd.swap bs=1M count=2048
2. 文件 swap 格式化
mkswap /var/blockd.swap
3. 激活 swap
swapon /var/blockd.swap
4. swap 挂载
打开/etc/fstab
文件编辑追加以下内容
vim /var/blockd.swap swap swap default 0 0
5. 修改 swap 利用率
sysctl vm.swappiness=60
6. 挂载生效
mount -a
方案二、永久配置
永久配置是指重启之后依然保持生效。
1. 分配文件空间
建立一个 2048M 的 swap 所需的文件空间
dd if=/dev/zero of=/var/blockd.swap bs=1M count=2048
2. 文件 swap 格式化
mkswap /var/blockd.swap
3. 激活 swap
由于 /etc/rc.local
文件会优先于 /etc/fstab
执行,所以在文件 /etc/rc.local
里面增加下面一行命令
swapon /var/blockd.swap
4. 挂在 swap
打开 /etc/fstab
文件编辑追加以下内容
/var/blockd.swap swap swap default 0 0
5. 修改 swap 利用率
编辑 /etc/sysctl.conf
实现永久生效
vm.swappiness=60
重启生效
更多命令
1. 查看 swap
swapon -s
2. 关闭 swap
swapoff /var/blockd.swap
3. 查看 Swap 利用率
cat /proc/sys/vm/swappiness
4. 查看磁盘使用情况
df -hl
5. 参数解释:vm.swappiness
这个参数主要用来表示物理内存还剩多大比例才开始使用内存交换,本文中设置的值为 60 即当物理内存还剩 60% 时开始进行内存交换。
阿里云的 ECS 目前都是默认关闭 swap ,所以需要服务器维护人员自己开启swap
网友评论