我们的站点托管在具有 3 GB RAM 的 GoDaddy VPS 上。我们的一些页面包含大量动态内容,并通过 AJax 调用进行交互。我们开始注意到,每隔 2 或 3 个 ajax 调用都需要很长时间才能完成。通常需要 1-2 秒,而 300 毫秒以下。这种行为开始影响用户的不活动体验。我们使用 PHP 和 MYSQL 来生成内容。经过大量网络搜索和各种服务器调优实验后,我们仍然处于原地踏步。
我们已经找到了两个非常简单的案例来展示我们的问题。我们使用 chrome dev tools 来观察整体加载时间。然后我们反复手动按下重新加载按钮,看看会发生什么。
1) 加载静态 img 文件。加载时间非常一致,在 92 毫秒到 98 毫秒之间,非常快。
2) 我们创建了一个非常简单的纯 php 页面。实际上是一个 microtime 语句和 for 循环,用于执行 1500 次迭代,并使用 print 语句打印出执行时间。没有 Mysql,没有 session_start,......当我们用这个页面重复加载实验时。结果截然不同
。
加载时间
1 - 259毫秒
2- 1.13 秒
3 - 1.21 秒
4 - 1.06 秒
5 - 1.01 秒
6 - 969 毫秒
在进行这些测试时,Cpanel CPU 使用率从未超过 0.35%,内存使用率为 26%。此外,脚本中生成的 PHP 执行时间打印结果非常一致,为 1.7 毫秒
查看时间详情时,所有额外时间都属于 TTFB(等待)类别。
因此,我们看到,服务器偶尔能够在合理的时间内获取动态内容。显然,静态内容就足够了。
所以我们有点不知所措,不知道下一步该怎么做。1) 这仅仅是共享 VPS 服务器的现实吗?2) 这是 GoDaddy 的问题吗?我们需要和他们一起解决吗?3) 有没有好的方法可以调试服务器上的额外时间都花在了哪里?
任何帮助或见解都将不胜感激。
更新:这是重复重新加载简单 php 脚本时顶部的屏幕截图。编写了第二个 php 脚本以使用 CURL 连续重新加载简单 php 100 次。 顶部屏幕截图
更新 2:一位拥有共享托管帐户的朋友将简单的 php 脚本放在他的网站上,我们将其与我们的网站进行了测试,当他从他的网站和第三个网站访问时,他的网站表现稳定且快速。但是当我们从我们的网站运行相同的测试时,似乎他的网站存在与我们相同的性能问题。奇怪的是,这让我们得出结论,我们的服务器在两个方向上都很慢。
戴夫
Apache 2.4.25 php 5.6.30 mariaDb 10.1.21