我有3台Apache / PHP7服务器在负载均衡器后面运行。 3台服务器中的2台已经运行了好几年了。但是,第三台服务器(最新服务器)存在PHP内存消耗问题。
虽然实时监视服务器,但我注意到同一调用(例如:/ user / login)将使第三台服务器的内存比其他2个服务器多10倍。例如:18%MEM vs 1.2%MEM
当前所有3台服务器都是由ansible构建和管理的,因此所有3台配置应完全相同。但是,在我开始使用ansible之前,已经存在按预期工作的2台服务器,因此可以想象在那些不受ansible管理的服务器上设置了一个(或多个)配置。
所有3台服务器都运行完全相同的代码库。当前所有3台服务器都在生产中运行。
第三台服务器已被重建(完全是新的虚拟机)多次,但始终具有与以前完全相同的问题。
我用尽了所有想法,我将不胜感激。
注意:我已经尝试过使用内存跟踪工具,但是由于它们具有较高的侵入性,因此我很难将它们启动并在生产中运行。
因此可以想象在那些不受ansible管理的服务器上设置了一个(或多个)配置。
从那里开始。
收集有关的信息:
假设这三台服务器具有相同的内存量并且运行相同的进程,则任何差异只能源于这些参数。
您也可以尝试执行示例命令行脚本,以查看内存分配异常是否也在那里出现。无论发生什么,您都会学到一些东西。并且如果它也出现在脚本中,则只需一次通过strace或Valgrind运行一个PHP二进制实例即可。