![性能测试 LAMP-Cluster-如何找到瓶颈?](https://linux22.com/image/667642/%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95%20LAMP-Cluster-%E5%A6%82%E4%BD%95%E6%89%BE%E5%88%B0%E7%93%B6%E9%A2%88%EF%BC%9F.png)
我已经设置了一个由 3 个节点组成的集群,该集群运行 LAMP 应用程序,并使用 HAProxy 进行负载平衡。现在我想优化和负载测试系统。因此,我取消使用 jmeter-ec2,它从爱尔兰地区启动 15 个 AWS-t1.micro 实例,针对位于德国专用数据中心的集群运行 jmeter 测试。
问题是,服务器几乎无法承受 0.5 的负载,而 jmeter 仅报告约 70 tps。现在我想知道瓶颈在哪里,为什么系统不能提供更多的 tps。
我正在寻求帮助,了解如何解决这个问题,以便逐一调整服务。有 MySQL Galera、Apache、NginX 和 Solr 正在运行以服务于应用程序,所有配置均采用默认设置。集群由 3 个新的裸机节点组成,这些节点具有 32GB RAM 和四核 XEON CPU,通过千兆局域网相互连接。
在此先感谢您对如何系统地调整/配置系统所提供的任何有用意见。
答案1
尝试移除系统的某些部分以找到瓶颈。15 个测试服务器听起来很多!您应该能够从单个测试单元中获得 1000 TPS。您不是在要求 HAProxy 等待响应,对吧?即利用 maxconns 功能和排队功能?就像我说的,尝试简化,但如果您确实认为它是 HAProxy,请发布配置。
答案2
我认为测试客户端对我来说显然是一个问题。
- 您使用的是 t1.micro。它们基本上是免费的,而且免费是有原因的。请切换到至少使用 m3.medium、large 或 xlarge 进行测试。完成后您可以关闭它们。
来自亚马逊文档的评论T1 微型实例总结得很好。
“尖锐的表现”,
“设计用于支持每分钟 10 个请求”
但是对于基准测试,您需要尝试让服务器超负荷运行。您需要每秒处理数百个请求。这比这些服务器所能提供的要多一点。
测试集群不在测试客户端本地,这会带来额外的延迟。您的集群位于另一个国家,距离 1600 公里。这也不会有帮助。因此,请务必注意第 3 点。
确保您的测试客户端正在多线程运行。
使用欧盟(爱尔兰) - eu-west-1,这是测试端点的更好选择。