阿里云系统磁盘总读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内存占用过大参数优化

相关推荐
NJCloud14 小时前
OpenStack(四)——进阶篇之私有网络配置与块存储服务(Cinder)部署
linux·网络·云计算·openstack
2601_9620715715 小时前
SpringCloud篇(服务网关 - GateWay)
spring boot·spring cloud·gateway
2601_9661219216 小时前
冰煮羊|萫尔锅底鲜醇,尽享汤清肉嫩好滋味
阿里云
小马同学-16 小时前
一、云计算
云计算
2601_9621896017 小时前
【SpringCloud】Gateway
java·spring cloud·gateway
山甫aa18 小时前
【从零开始的 Web 后端学习】文件上传一篇搞定(MultipartFile + 本地存储 + 阿里云 OSS 保姆级教程)
前端·学习·阿里云
老猿AI洞察1 天前
阿里云启用巴西数据中心,AI服务出海落子南半球
人工智能·阿里云·云计算
小谈不敲代码1 天前
Higress 生产级调优手册
云原生·kubernetes·gateway·负载均衡·higress
云上工程笔记1 天前
ELI5:如何把复杂概念自动画成图,方便写文档、做分享、带新人
运维·服务器·网络·云计算
sunphp开发者1 天前
阿里云CDN加速配置问题
前端·阿里云·云计算