阿里云系统磁盘总读BPS突然增长很高,导致网站502 Bad Gateway

问题再现

阿里云诊断提示IO延迟过长,导致读写受限

最近迁入阿里云主机(99计划2H+2G)后经常发现会出现死机的情况,呈现的状态就是网站无法访问,阿里云实例监控查看,是实例云盘读写 BPS 100M以上。

解决方向

1、调整交换分区减缓瞬时内存压力

既然发生了OOM,那必然是内存捉襟见肘了。这里先根据网友 @慧眼见真 增加 swap 试试看。

以下均为 root 权限执行

复制代码
# 查看系统内存情况
free -h

# 查看交换内容情况
swapon --show

# 指定 swap 文件并分配 3G 大小
fallocate -l 3G /swapfile

# 修改权限
chmod 600 /swapfile

# 格式化为 swap
mkswap /swapfile

# 启用 swap
swapon /swapfile

# 永久启用
echo '/swapfile swap swap defaults 0 0' >> /etc/fstab
重要!接下来需要调整内存交换性
复制代码
# 查看交换分区积极性,当为 0 表示不使用交换分区
cat /proc/sys/vm/swappiness

# 临时调整
# 可以简单理解为当内存占用 (100-10)% 时开始使用交换分区
sysctl vm.swappiness=10

# 永久调整
vim /etc/sysctl.conf
vm.swappiness=10

# 重新加载内核参数配置
sysctl -p

禁用dnf的自动更新

复制代码
# 确认相关任务存在
systemctl list-timers 'dnf-*'

# 禁用任务
systemctl stop dnf-makecache.timer
systemctl disable dnf-makecache.timer

# 之后我们可以手动更新
dnf check-update

参考文章阿里云 系统磁盘总读BPS 突然增长很高,导致网站502 Bad Gateway_问答-阿里云开发者社区 (aliyun.com)如何在 Linux 上创建和使用交换文件 (linux-console.net)

后话:

当然,如果你的程序确实有较大占用内存的如MySQL,可以适当配置参数降低占用。不同内存大小的MySQL配置方案 -- wking's blog (wkings.blog)

1核1G内存云服务器的mysql5.7内存占用过大参数优化

相关推荐
yi碗汤园11 小时前
OSS对象存储服务
网络·阿里云
事界见闻12 小时前
多电平变换器实时仿真怎么选?微秒级解算与多机拓展下的技术评估与方案分析
云计算
闲云野鹤在人间14 小时前
docker 入门 | 第7章 容器监控 和 第8章 容器日志 详解
运维·docker·容器·架构·云计算
云边云科技_云网融合18 小时前
从一盘散棋到一张蓝图:某连锁集团的云上重构
网络·科技·云计算
小葱运维21 小时前
日志规范(K8s 结构化日志)
运维·开源·云计算
边境悍匪21 小时前
蜗牛学苑 Java 智能体学习 Day44|Vue 前端项目搭建 思维导图复盘
java·开发语言·spring boot·学习·阿里云
Akamai中国21 小时前
Akamai Valkey 托管数据库:企业 AI 的实时内存解决方案
人工智能·云计算·云服务
翼龙云_cloud21 小时前
腾讯云国际云服务器代理商:WorkBuddy评测 办公智能体落地90天实践复盘
服务器·云计算·腾讯云·workbuddy
I肆逸I1 天前
Docker 容器技术
云计算
阿里云大数据AI技术1 天前
千问 APP × 阿里云:MaxCompute 向量检索重构 RAG 数据收录评估链路,一条SQL将性能提速 11 倍
人工智能·阿里云·maxcompute·rag·千问