测试负载均衡器的问题
Testing Load Balancer for Issues
这是一个有点宽泛的问题。
我的任务是设置 HAProxy,用作我们移动应用程序 API 服务器的负载均衡器。如何验证它是否设置正确?切换到负载均衡器的常见陷阱是什么?
我会首先删除您的代码库的变量,并使用像 apache bench (ab) 这样简单的东西来测试 haproxy 针对 nginx 或 apache 服务静态文件。如果一切正常,那么您的基本功能可能处于良好状态。 Haproxy 使用 urlbegin、urlend 和其他各种可以匹配多个位置的路径匹配器可能很棘手。
一旦确定了基本功能,就可以为您的 API(jmeter 或任何您使用的工具)获取性能测试套件,然后针对单个实例测试您的吞吐量和延迟,然后针对平衡 API秒。确保验证负载是否正确分布。
一些陷阱 -
会话:您使用的是无状态服务器,不依赖会话亲和力将用户会话绑定到同一服务器,对吗?
Linux 设置:您的所有连接都通过此框,因此请确保 sysctl 设置等都已调整好。
NonHttp 和 Websocket 连接:在调整超时和其他设置时要非常小心。
KeepAlive 和 HTTP 设置:对 haproxy 的性能调整进行一些研究 - 有一些重要的概念,例如 http 服务器关闭(这些涉及何时关闭底层 tcp/ip 连接)。
这是一个有点宽泛的问题。
我的任务是设置 HAProxy,用作我们移动应用程序 API 服务器的负载均衡器。如何验证它是否设置正确?切换到负载均衡器的常见陷阱是什么?
我会首先删除您的代码库的变量,并使用像 apache bench (ab) 这样简单的东西来测试 haproxy 针对 nginx 或 apache 服务静态文件。如果一切正常,那么您的基本功能可能处于良好状态。 Haproxy 使用 urlbegin、urlend 和其他各种可以匹配多个位置的路径匹配器可能很棘手。
一旦确定了基本功能,就可以为您的 API(jmeter 或任何您使用的工具)获取性能测试套件,然后针对单个实例测试您的吞吐量和延迟,然后针对平衡 API秒。确保验证负载是否正确分布。
一些陷阱 -
会话:您使用的是无状态服务器,不依赖会话亲和力将用户会话绑定到同一服务器,对吗?
Linux 设置:您的所有连接都通过此框,因此请确保 sysctl 设置等都已调整好。
NonHttp 和 Websocket 连接:在调整超时和其他设置时要非常小心。
KeepAlive 和 HTTP 设置:对 haproxy 的性能调整进行一些研究 - 有一些重要的概念,例如 http 服务器关闭(这些涉及何时关闭底层 tcp/ip 连接)。