使用背景:购买了阿里云ECS,但业务使用内存达90%以上,但对内存性能没太多性能要求的情况下,使用ECS的SSD磁盘来做swap当内存使用。
实现方法:将部分SSD磁盘做swap交换分区,并通过脚本自动检测内存使用率大于等于70%时,使用swap分区,低于70%时,禁用swap交换分区,使用内存。
优点:低成本,提高内存容量,SSD磁盘做swap分区较普通磁盘快,满足资源使用要求。
缺点:没有内存性能高,业务对性能有要求时可能满足不了。
以下是具体的代码:
#!/bin/bash
# 检查是否具有 root 权限
if [[ $EUID -ne 0 ]]; then
echo “请以 root 权限运行此脚本”
exit 1
fi
# 禁用交换
swapoff -a
# 将 swappiness 设置为较低的值(通常建议为 10)
sysctl vm.swappiness=10
# 更新 sysctl 配置
echo “vm.swappiness = 10” >> /etc/sysctl.conf
# 创建一个 swap 文件(如果需要)
# 这将创建一个 4GB 大小的交换文件
# 如果您需要更大的交换空间,请相应地更改 count 的值
fallocate -l 4G /swapfile
# 设置文件权限
chmod 600 /swapfile
# 设置交换文件
mkswap /swapfile
# 启用交换文件
swapon /swapfile
# 永久启用交换文件
echo “/swapfile none swap sw 0 0” >> /etc/fstab
# 重启系统以使更改生效
reboot
下图是使用时的状态:
- 本文固定链接: https://www.gayj.cn/?p=815
- 转载请注明: https://www.gayj.cn/
捐 赠如果您觉得这篇文章有用处,请支持作者!鼓励作者写出更好更多的文章!