455 字
2 分钟
关于服务器BPS/IOPS过高问题解决
问题描述
配置: 2H2G
问题:服务器
BPS/IOPS一直处于高负载状态,系统一直在频繁与磁盘交换数据造成的结果:服务器无法连接,服务器的服务全部失去连接,控制台无法通过普通重启来重启服务器,只能强制重启或关闭
原因分析:运行内存不足导致,由于内存不够系统需要频繁的与磁盘不停的交换数据,占用了大量的IO。

解决办法1
升级配置,最简单最简单最无脑。
解决办法2
通过拓展swap分区来缓解此问题
查看系统的swap分区情况
通过swapon查看
swapon --show我这里没有任何输出,说明根本不存在swap分区。
通过free看一下运行内存情况。
free -h这里也可以看到swap全是0
total used free shared buff/cache availableMem: 1.6Gi 831Mi 242Mi 1.8Mi 752Mi 844MiSwap: 0 0 0创建并配置swap
创建并启用一个swap (注:以下操作均需要root权限)
# 创建 swap 文件fallocate -l 4G /swap
# 设置权限chmod 600 /swap
# 格式化为swapmkswap /swap
# 启用swapswapon /swap
# 永久添加到fstabecho '/swap none swap defaults 0 0' >> /etc/fstab配置 swappiness
检查swappiness(取值范围为 0 - 100,数值越大,使用swap的可能性越大)
cat /proc/sys/vm/swappiness
# 输出0我这里为0。
编辑 /etc/sysctl.conf将vm.swappiness 修改为20
vim /etc/sysctl.conf
# 修改 vm.swappiness# vm.swappiness = 20更新内核参数
更新内核参数,使swappiness配置生效
sysctl -p验证结果
再次查看内存和swap情况
# 查看swapswapon --show
#输出NAME TYPE SIZE USED PRIO/swap file 4G 547.6M -2
# 查看内存free -h
# 输出 total used free shared buff/cache availableMem: 1.6Gi 746Mi 665Mi 1.8Mi 414Mi 930MiSwap: 4.0Gi 780Mi 3.2Gi 关于服务器BPS/IOPS过高问题解决
https://atdunbg.github.io/posts/aliyun-server-problem/