分析网络服务器执行时间

分析网络服务器执行时间

我有两个几乎相同的虚拟机,除了主机名和不重要的东西(据我所知)。

在这些虚拟机上我运行nginx/1.14.2作为代理阿帕奇/2.4.38它背后的网络服务器包括php-7.4.28mysql-5.7.37

我什至将 php 和 mysql、nginx 和 apache vhost 的配置文件从一台机器复制到另一台机器。

phpinfo();如果我调用包含内容或静态 html 文件的站点,则在两台虚拟机上,网络服务器都运行良好。在两台虚拟机上,在线商店系统(openmage)运行良好。

但在一台虚拟机上,另一台在线商店系统 (shopware6) 非常慢(= 响应时间长达 60 秒)。在另一个虚拟机上它运行良好。

由于我在相同的操作系统(debian/buster)上使用相同的版本和相同的配置,所以我不知道是什么原因导致了问题。

有什么想法或建议吗?

如果需要,我可以提供任何进一步的配置详细信息。

谢谢你!

更新:

我看了不同的事情:

  • CPU时间:102毫秒
  • 挂钟时间:90 秒
  • 关闭mysql没有什么区别
  • 避免代理没有什么区别
  • cli-execution 也需要很长时间

来自非工作机器的 vmstat:

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0   1792 2250052 381472 1175636    0    0   100   407  162  337  2  0 98  0  0
 0  0   1792 2250140 381472 1175636    0    0     0     0  105  134  0  0 100  0  0
 0  0   1792 2250140 381472 1175636    0    0     0     0   73  101  0  0 100  0  0

来自工作机的 vmstat:

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0   1792 1709948 321864 1311356    0    0    14    68  151  262  0  0 99  0  0
 0  0   1792 1709908 321864 1311356    0    0     0     0  287  482  0  0 100  0  0
 0  0   1792 1709908 321864 1311356    0    0     0     0  282  493  0  1 100  0  0

答案1

我找到了问题的原因。

正如@gerhardd。正确提及:我没有复制网络设置。所以可能存在差异,而且确实如此!

在慢速服务器上配置了搜索域。安装的 php 脚本包括尝试连接到域名为“_placeholder.test”的 mysql 服务器的部分。由于“_placeholder.test”不是 FQDN,因此它会附加搜索域后缀。搜索域 dns-records 提供解析为实际服务器的通配符条目。该服务器丢弃了禁止的请求,而不是拒绝它们。所以脚本必须等待超时然后继续。

在快速服务器上,没有配置搜索域。所以它找不到“_placeholder.test”的服务器并且没有等待任何响应。该脚本随后立即执行。

相关内容