Apache 服务器在 AWS 实例上响应缓慢(Linux 2)

Apache 服务器在 AWS 实例上响应缓慢(Linux 2)

我已经将 LAMP Web 应用程序部署到两个单独的 AWS 实例(标记为 prod 和 test)。两者都是 t2.micro,但 prod 是较旧的 Linux 映像,而 test 是新的 Linux 2 映像。使用 chrome 浏览器开发工具:

prod - 总时间:500ms 到 600 ms 之间 test - 总时间:15 秒到 50 秒之间

产品上所有下载文件(脚本、css、js 等)的 TTFB 均少于 100 毫秒。测试上的 TTFB 为 3 秒或更长时间......

以下是 Chrome 开发工具截图的链接: Chrome 开发工具计时结果

此外,测试实例中每个文件的下载时间要多得多。

它们实际上具有相同的 apache 配置、相同的内存使用率(~50%)、相同的代码。

我试图找出原因,但找不到答案。以下是我进行的额外检查:

- 尝试了 strace,它需要几秒钟才能接受下一个请求(在下面的例子中为 3.1 秒):

6645 17:28:29 读取(10,0x55​​ff6e9b23f8,8000)= -1 EAGAIN(资源暂时不可用)<0.000007> ... 6645 17:28:32 <...轮询恢复> )= 1([{fd=10,revents=POLLIN}])<3.108490>

- 这里 strace 还显示,apache 在 sendfile 之后等待很长时间才让套接字 (fd=10) 可以再次进行写入...

6645 17:28:32 sendfile(10, 11, [76038] => [78918], 69895) = 2880 <0.000009> 6645 17:28:32 poll([{fd=10, events=POLLOUT}], 1, 60000 <未完成 ...> ....

6645 17:28:55 <... 轮询恢复> ) = 1 ([{fd=10, revents=POLLOUT}]) <23.333877>

- 我曾尝试通过 scp 下载一个大文件 (3.6 MB),速度要快得多 (~1.7 MB/s)。这可能说明 apache 或 apache 使用的套接字存在问题?

您对测试中发生的情况有什么想法吗?或者这是否是 t2.micro EC2 实例的预期速度?

谢谢,

马里奥。

相关内容