记一次程序把生产服务器带宽干崩了的记录

2024-06-21 149 0

服务器带宽:100M独享
事件:收到云监控报警 联通线路 访问丢包
ping 服务器网关正常
ping 服务器IP超时丢包

奇怪现象:同一出口ping
linux 客户端 ping 服务器 不会超时丢包
windows 客户端 ping 服务器 则会超时丢包

原因是服务器带宽跑满了 导致丢包

排除内网网段 查看实时网络情况

iftop -f "not net 192.168.1.0/24" -i bond0 -n

找出占用带宽IP 进程

$ ss -ntep | grep 222.217.94.111
SYN-SENT   0      1      120.33.66.133:64018              222.217.94.111:443                 users:(("php",pid=62599,fd=14)) timer:(on,124ms,0) uid:1001 ino:900979165 sk

通过pid 查看进程 详情

$ ss -ntep | grep 222.217.94.111 | awk -F '=' '{print $2}' | awk -F ',' '{print $1}' | while read -r pid; do ps -ef | grep -v grep | grep "$pid"; done
root     56276 26604  0 13:17 pts/3    00:00:00 grep --color=auto 62599
www      62599 62598  0 Jan22 ?        00:02:03 /usr/local/webserver/php7/bin/php artisan sundayhk:upload_user_avatar

查看代码及日志发现是,同时多次请求CDN上的5M图片,带宽跑满,导致丢包。
这里100M独享 理论最高下载速率为12.5M。 100M / 8=12.5M
若没控制好频率,多个进程同时下载5M的图片,其实同一时间下载2个5M文件就已经服务器带宽刷满,此时就会导致其他网络请求丢包。

这里的CDN源站其实也在此服务器上,不过没走内网,走公网取CDN的图片,把服务器自己的带宽干拿倒了。

解决:服务器内部设置DNS解析走内网IP

哈哈,这回是被自己人干倒了。

相关文章

阿里云源加速
windows11安装 跳过联网,使用本地账户登陆
UFW 常用命令
华为USG防火墙常用命令

发布评论