我的 Web 服务器运行在 PHP 5 和 MySQL 5.0 上。当我复制使用 CAKE PHP 开发的应用程序时,服务器速度极慢。提供文件的组织正在运行相同的应用程序,没有任何问题。部署在其服务器上的版本也相同。我无法联系他们,除了一个操作(单击链接)之外,其他操作都运行顺利。
请告诉我,我需要在 php.ini 中更改某些内容吗?由于它在一台服务器上运行顺利,因此与应用程序代码无关。在互联网连接速度为 1 Mbps(上行和下行相等)的 Xeon 服务器上加载页面(包含一些数据库操作)大约需要 40 秒。
服务器在 RHEL 5 上运行。
答案1
通常,当 php 生成许多警告和通知消息时,如果禁用 display_errors,您将看不到。Apache 正在保存日志。检查 /var/log/apache2/ 中的日志
答案2
该app/cache
目录是否可写?如果不可写,CakePHP 需要为每次页面加载重新生成其类文件。这会占用大量资源。
这只是一种可能性。当然,也请查看其他回答者的建议。
答案3
好吧,所有这些答案以及结束投票都只是废话。
我不敢相信这种无知和猜测竟然会存在。
这是一个完全合理的编程问题,尽管问得很糟糕,甚至回答得很糟糕。
想象一下你病了,来看医生。-
我病了!- 你说 - 给我点药。如果医生给你开药,你不害怕吗?没有任何诊断?
以防万一,想着“它帮助了某些人,也可能对这个人有帮助”。听起来不是很奇怪吗?。但是你们所有人的行为都一模一样!但不应该这样。
必须先进行检查,做出诊断,然后才能治疗。
这里的每个人都必须学会什么分析是。
而且只谈论分析。
你必须调查,什么具体原因造成如此大的性能影响。这里的每个答案都应该教你如何做到这一点。
40 秒的时间太长了,没有“微调”方法可以提供帮助。某个地方存在严重的配置错误。但 Web 服务器不是一个单一的系统。它由许多部分组成 - 数据库、Web 服务器、编程代码、静态文件等。因此,您必须找到导致这种缓慢的某个部分。只有这样,您才能要求采取某些治疗措施。
因此,首先您必须确定 - 哪个页面加载缓慢?它做了什么?它的哪些部分运行缓慢?使用microtime(1)
函数您可以测量此页面各个部分所消耗的时间。这样,您就可以找到问题部分。等等。
你可以在这里咨询所有这些步骤,但你必须给出所有可能的反馈,而不仅仅是问我病了,给我治好我的服务器很慢,该怎么办。
答案4
更改您的 mysql 设置以将所有内容记录在慢速查询日志中。将 %D 添加到您的 apache 日志配置中。使用 firefox 作为客户端并安装 firebug。
阅读日志并查看firebug中的页面瀑布。
(提示:我首先要确保你的代码/配置中没有无法解析的 DNS 名称)
如果答案不明显,请在此处询问并提供您发现的详细信息。