UAE

测速方案1 (简单实现的方案 这种只能测试到城市节点 不是到家 有一定误差)
/////////////////////////////////////////////
写个底层的tcp接口 提供内部API
架构差不多这样
http://香港服务器IP:端口/api/ping?{$IP}
$IP是IP地址变量

准备一份各个城市的IP地址 比如监控点 或者 当地DNS服务器
然后每天N次 比如2小时一次 循环POST给香港服务器的API进行反向测试
测试延时和丢包率 将结果排序 选择延时最低的IP

调用DNS的API接口 更新DNS记录

测试方案2 (这种测试方案 是测试真实网络访问速度的 也是腾讯/百度这些公司使用的方案)
////////////////////////////////////////////
第一步
使用单独的测速服务器一台
安装nginx 定制一个特殊的日志格式
具体日志格式见nginx官方说明
部署一个10kb 或者 50kb的图片文件到这台nginx服务器上 提供可访问的图片
比如 http://2.2.2.2/10kb.png

第二步
写个js文件 按比例选择流量 比如每10000访客 随机抽100个插入代码
载入 http://2.2.2.2/10kb.png 这个图片文件 只是载入 不显示给用户的

第三步
这样用户就等于访问了这个图片文件
就有一条日志生成了,日志可以看到的信息 (预先定义的格式)
用户的IP地址 (反向解析定位是归属哪个城市的)
用户请求时间 (计算解析+请求时间)
开始载入时间 (计算载入总共耗时)
完成载入时间 (计算载入总共耗时)
消耗流量数据 (比较是不是和图片文件大小一致 判断是不是完全载入了 有没有中断 表现为网页载入不完整)
如果文件大点 还计算出用户访问服务器的带宽大小情况

收集个几万数据 使用AWK去分析下日志
哪个城市访问最慢
哪个城市网络会出现访问中断
哪个城市在哪个时间点会网络拥堵

然后针对性解决

这种测试出的数据 可以针对性做很多事
也可以实现自动化
比如定时去分析下日志 提取哪个城市访问出现不正常
不正常立刻SMS/Email报警 进行DNS的API解析新IP地址

能做的事多了

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注