![Ping IP 抛出请求超时,但 ping URL 时收到成功响应。哪个网络组件可能正在响应 URL 上的 ping](https://linux22.com/image/729051/Ping%20IP%20%E6%8A%9B%E5%87%BA%E8%AF%B7%E6%B1%82%E8%B6%85%E6%97%B6%EF%BC%8C%E4%BD%86%20ping%20URL%20%E6%97%B6%E6%94%B6%E5%88%B0%E6%88%90%E5%8A%9F%E5%93%8D%E5%BA%94%E3%80%82%E5%93%AA%E4%B8%AA%E7%BD%91%E7%BB%9C%E7%BB%84%E4%BB%B6%E5%8F%AF%E8%83%BD%E6%AD%A3%E5%9C%A8%E5%93%8D%E5%BA%94%20URL%20%E4%B8%8A%E7%9A%84%20ping.png)
我正在对托管在 AWS 上的应用程序运行性能测试。为了检查网络延迟,我尝试 ping 有效的 URL。但是,如果我尝试 ping 托管应用程序的 VM 的 IP 地址(出于测试目的,它使用静态 IP),则会抛出请求超时异常。ping URL 时解析的地址也不同于应用程序主机 IP。
我很好奇,在访问 URL 时,网络上的哪个组件可能正在回复 ping - DNS、云的负载均衡器还是其他什么?
答案1
如果你有一个负载均衡器(正如您简要提到的)URL 中的主机名很可能会解析为负载均衡器 IP。
您的虚拟机(或EC2 实例用 AWS 的话来说)“隐藏”在负载均衡器后面,很可能无法从外部访问。要么是因为它没有公共 IP(LB 可以通过私有 IP 与其通信),和/或安全组不允许从互联网访问,只允许从负载均衡器访问。这将是常见的 AWS 部署模式。
无论如何性能测试你只需要关心 HTTP/HTTPS 吞吐量、延迟、页面加载时间、处理并发请求等。ping LB 或 EC2 毫无意义,也不会告诉你太多有关实际表现您的网站。
换句话说 - 使用您的性能测试工具,将其指向负载均衡器 URL 并测量该性能,因为这最终会影响您的用户。
希望有帮助:)