【Atlas】记录一次平台访问Post数据到阿里云概率性 失败的问题排查

背景

2周前,对阿里云上的web 服务增加了HTTPS的支持,原因是Google 对于安全的验证需求 导致 请求经常挂掉,页面无数据或者整个页面被 白屏的问题;

然后做好变更后,开发人员就离职,然后就当天离奇的发现 Post 数据无法支持 高并发了。 之前的并发设置为 500 都没事,现在是50就一定挂掉。

最开始怀疑,https 改动因为加了证书的缘故,代码需要同步改动,但是事实上测试后,并不能解决问题。让小朋友排查2周无线索,使用方找来投诉。。。

无奈,自己上手查,review了下代码,逻辑也比较简单,就是简单的并发post请求,无证书;代码不方便透露,但是也不重要;

 

排查过程

1,开始怀疑https 证书问题或者restful 接口变更

由于开始怀疑证书的问题,代码测试后发现无法解决问题,被排除;然后怀疑是不是restful 接口最近有什么变化,但是开发否认有相关变更;这个也得到确认,最近我们没有相关内容发版;

然后,写了简单的案例,10000并发,2条数据发送,  正常收到;这里注意:2条数据量非常小;

回到必现场景:并发50,单条数据非常非常大;

也就是说,并发不是问题,数据量才是问题;

 

2, 怀疑数据量过大,资源瓶颈问题

这时候开始怀疑是 阿里云资源瓶颈导致了。于是去查服务监控;并联系阿里云技术支持,一起查看监控数据;

最开始的时候,有部分监控丢失,阿里云支持说需要装监控,ok:https://cloudmonitor.console.aliyun.com/hostMonitoring/all

 

 

 查看监控数据:

 

 

 实际上,大部分资源都不到瓶颈,公网(内网)带宽有些许峰值;达到限额 100M/s

 

3,怀疑网络问题

这里开始怀疑网络问题导致的服务不可用; 查看ecs 自检测,提示丢包问题;更加确定了方向;

然后找客服确认,说不会超过上限,我截图后他们也一起排查,确认是公网流量上限导致数据丢包问题;

问题来了: 为什么我走内网的vpc ,会分配到公网流量;

这时候阿里云客服提到:如果内网 & 公网都开的情况下,访问指定公网IP的话, 就会走公网;

顿时茅塞顿开呀~   那我们走的域名 post, 解析过程自然是 公司DNS 解析的; 我ping了下服务,确实反馈是公网IP;

到现在,思路很清楚了!!

 

4, 解决办法

改Hosts 验证是内网IP 就可以并发上去(原本必现的错误 Test 可以正常运行,不再失败) ;验证确实可以解决问题;

然后解决办法有2个:

  • 在所有post 数据的机器上,进行hosts 更改;
  • 让公司运维修改DNS 配置,实现内网post 直接指定内网ip;这样既省钱,又服务更可靠了;

 

posted @ 2022-09-30 16:47  小侠女  阅读(77)  评论(0编辑  收藏  举报