我对我们的一台生产服务器面临的性能问题感到十分担忧。我在一家托管公司工作,所以你可以想象这里运行的应用程序有多么多样化。
一切都始于一个客户的电话,他抱怨 Joomla 的加载速度太快。设置是 IIS6(Windows 2003),带有 PHP5 和 FAST CGI,通常运行良好。我测试了加载时间,确实,他是对的。加载需要 7 到 8 秒,而通常 2 秒就可以完成。
看到这个结果后,我开始检查 CPU 和 RAM。一切正常,2GB RAM 可用,3%-8% 的 CPU 活动。这就是我所说的轻松的服务器 ;)。不幸的是,深入挖掘后,我发现“PhysicalDisk”计数器相当高(高于 10),特别是读取队列。
我使用 Process Explorer 查看了哪些进程的增量较大,但一切似乎都很正常。由于问题与 PHP 页面特别相关,我检查了特定的 IIS 计数器,如实际连接数、CGI 请求数和 ISAPI 请求数。
CGI -> 3 to 7
ISAPI -> 5 to 9
Connections-> 90 to 120 (wich appears at the top of the graph)
除了解决方案之外(我知道这很难找到),我还想知道您是否有特定的方法来应对此类问题。
答案1
如果是 Linux/Unix,我可以给你一个很长的列表,但对于 MSWindows......?
这 7-8 秒是获取 HTML 还是完整页面所需的时间?有很多工具可以帮助找出这个问题 - 我使用 Firefox+firebug+pagespeed。这应该还会为您提供大量有关问题所在信息。
如果问题确实出在从磁盘读取 PHP 代码,那么请确保您有足够的内存用于缓存,并且服务器配置为支持服务。使用亚太经合组织。
您是否将内容和日志保存在同一磁盘上?如果是,您可以将它们分开吗?理想情况下,PHP 代码和数据也应该分开。
高血压