我有一个如下所示的 Web 应用程序:
WEB SERVER (PHP, Apache) -> MYSQL NODE
这项功能运行完美,没有任何问题,并且已经运行了很长时间。
但是,当我引入负载平衡器(我使用了 HAProxy 和 ProxySQL,两者的结果行为相同)来管理对数据库集群的请求时,我遇到了 Apache 停顿的问题。
负载平衡器与 Apache 一起安装在 Web 服务器上,并通过系统的环回设备进行访问。具体来说,Web 应用程序进行数据库调用,127.0.0.1:3306
而这正是负载平衡器监听的地方。
为了简化事情,这是我的新设置:
[WEB SERVER (PHP, Apache) -> LOAD BALANCER] -> MYSQL NODE
当负载变重时,我看到的是这样的:
PROMPT~] apachectl status ... ... WWWWWWWWWWWWWWWWWRWWRRWWWWWWWWWWWWWRWRWWWWWWWWWWRWWWWWRWWWWWWWWR WWWWWWWWWWWWWWWWWWWWWWWWWWRWWRWWWWWWWWRWWWWWWWWWWCWWWWWRWWWWWWWW WWWWWWWWRWWWWRWRWWRRWWWCWWWRWWWWWWWWRWWWWWWWWWWWWWWRWWWRWWWWWWWW WWWWWWWWWWRWRWWCWWWWWWRRWRWWWWRCWWWWWWWWWWWRWWWWWWWRWRWWWW
事实上,这种情况发生在多个负载均衡器上,这表明该问题更为普遍,并且可能与操作系统有关。
我没有看到 Apache、负载平衡器或数据库报告任何错误。
CPU 和内存等操作系统指标似乎没有问题。我确实在问题发生时看到以下指标出现峰值:
- TCP 套接字数
- Apache 进程数
我觉得我可能在这里遗漏了一些基本知识,如果能提供任何建议我将非常感激。
谢谢