我有一个非常简单的 WebApp,基于 php/mysql/redis/nginx。
我一直试图将服务器移到 Azure,看看是否可以节省一些钱,今天我使用它的向导 UI 在 Azure 上创建了一个 WebApp。
我注意到的第一个问题是,与 AWS 托管相比,Web API 调用的响应时间大幅增加,即使是单个 ping 也是如此。我决定通过多项测试来对代码执行时间和网络时间(在浏览器上)进行基准测试:
一个简单的请求,没有数据库查询或任何 Redis 连接:
- AWS(*******.eu-central-1.elasticbeanstalk.com/ping)400毫秒(代码执行379ms)
- Azure(********.azurewebsites.net/ping)1.6秒(代码执行 329Ms)
云配置如下:
AWS:
- 地区:欧盟中部(法兰克福)
- EC2:t3.micro
- 亚马逊 Linux
- Nginx
Azure:
- 地区: 西德中部
- WebApp 实例:高级通用 8Gb Ram、4CPU(我尝试了不同的组合,但没有帮助)
- Linux(记不清是哪个了)
- Nginx
我尝试搜索并更改配置,但无法获得相同的网络响应,Azure 的速度总是很慢,每个请求大约需要 1.3 秒,而 AWS 每个请求大约需要 500 毫秒。
完整的 Web 应用程序使用 API 网关和 Redis 在 MySQL 前面进行缓存,但与这些的连接对总体代码执行几乎没有影响(大约 20 毫秒)。
为什么会有这样的差异,是我在设置中遗漏了什么吗?