如何检查客户端请求时间过长

1. 运行环境#

采用 go beego 做的 Api 处理

采用 nginx 做的反向代理 (主要为了处理 https 请求)

3). 当前系统#

CentOS 8

4). 业务环境#

生产环境

2. 问题描述#

公司的一台主机 (机房里) 上配置了两个网卡,要求提供一个 api 接收文件并上传到云对象存储,要保证有一个内网的网卡接收上传的文件,用另一个网卡上传文件。
目前我使用谷歌浏览器上传 4M 的视频的需要 50 多秒的请求时长,有时候又不到 1S,换 Safari 浏览器只需要 800 毫秒 - 3 秒,而我在 postman 中上传该文件则只需要 1000+ms。

谷歌浏览器

如何检查客户端请求时间过长

Safari 浏览器
如何检查客户端请求时间过长

postman

如何检查客户端请求时间过长

目前尝试过#

查看 nginx 日志,发现日志是正常的
采用其他格式大小的文件上传,出现一样的情况 // 排除文件问题
将 https 换过 http 请求 // 排除 SSL 问题
公司不同的同事上传相同大小的文件,相同的浏览器 // 上传时间大家不一样

采用谷歌浏览器调用别的上传文件 api (不是内网) 依然需要等待 50S, 清空了一遍谷歌浏览器的文件缓存 + 开启了内存节省程序,问题依然存在

go bee 运行日志如下

2023/05/11 21:31:07.157 [D] [server.go:2887]  |  192.168.2.183| 200 |    106.366µs| nomatch| OPTIONS  /ad/lianshan_receive

2023/05/11 21:31:59.555 **[D]** [server.go:2887] | 192.168.2.183| 200 | 487.035404ms|  match| POST /ad/lianshan_receive  r:/ad/lianshan_receive

请问如何将上传时间稳定到 1S 以内,或者如何排查这类问题,谢谢大佬们!

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 6

你不说图片视频的大小我们很难帮你分析

2年前 评论
wanglaodid (楼主) 2年前
arukas (作者) 2年前

如果用户可以访问外网的话,大文件最好是前端用临时授权 key 之类的直接上传到服务器。通过服务器再上到 oss 不是很好

2年前 评论
wanglaodid (楼主) 2年前
wanglaodid (楼主) 2年前