Httpd进程高内存使用率和慢页面加载

时间:2010-05-05 13:13:23

标签: php apache memory wampserver

我在Windows Vista机器上运行wampserver。我已经做了很长时间了,而且一直很好。我通过此设置完成了大量项目。

然而,今天,如果没有我改变任何东西(没有配置等)只改变PHP代码,我发现每次加载我的网站页面(那些有用户会话或访问数据库)的加载都很慢 - 超过30秒,他们使用1或2秒。

当我查看任务管理器时,我可以在页面加载中看到httpd进程从10mb跳到30mb,90mb,120mb,250mb,然后再次返回。

我已经测试过以前的PHP代码项目,它们似乎也很慢!

发生了什么事?

感谢所有人在这个混乱问题上提供任何帮助!

5 个答案:

答案 0 :(得分:1)

检查以下内容:

  • 检查您最近是否更改/更新了访问数据库的数据访问库(如果使用的话)。
  • 只是一个猜测,但自从您上次检查以前的项目以来,您是否更改了防病毒/防火墙(或设置)?更具侵略性的安全可以减慢很多事情。
  • 您是否在WAMPSERVER菜单中更改了Apache / PHP / MySQL版本?
  • 也许你可以尝试重新安装WAMPSERVER(最后这样做,如果这不是你的麻烦,因为我真的怀疑这会有所帮助,但它可以在一些非常奇怪的情况下)。

但是根据您在问题中解释的经验和内存使用情况,似乎您的SQL查询很难执行和/或返回非常大的数据集。

尝试优化您的查询,它可以帮助提高速度但不是真正的内存使用(至少如果结果集是相同的)。对于内存,也许您可​​以使用LIMIT来减少返回的数据集(如果您的设计允许它 - 但它应该)。

由于我们真的不知道你对你的数据做了什么,所以注意比用大数据集“播放”(比如解析大型XML文档)需要花费很多时间/内存(这又取决于你做什么)所有这些数据)。

最重要的是,如果这篇文章中没有任何内容有帮助,请尝试在设置时发布更多信息以及在缓慢的情况下你做了什么(甚至是代码示例)。

答案 1 :(得分:1)

尝试检查wamp日志文件的大小。

C:\wamp\logs

有时,当它们变得非常大时,它们会导致Apache变慢。

答案 2 :(得分:1)

您最近是否更改了网络配置或升级了系统?这可能是通过您的网络配置或防病毒/安全软件导致此问题。例如,人们在过去曾遇到过像zonealarm这样的问题。

此外,如果您最近从键入“127.0.0.1”切换到“localhost”或在网络中移动,您可能会从C:\ Windows \ System32 \ drivers \ etc \ hosts中删除IPV6 localhost设置中受益。你有一个:

更改行
::1             localhost

# ::1             localhost

答案 3 :(得分:1)

我很惊讶没有人提出这个建议。你应该总是试着看看为什么事情真的变慢了:

首先使用性能监视器查看瓶颈所在。 (PERFMON.EXE) 硬页面错误实际上是的瓶颈吗?您的硬盘是否忙于读/写页面文件?检查硬盘的IO队列长度。 CPU忙吗?

如果没有任何东西看起来很忙,请使用procmon查看您的php进程是否在某些系统调用中被阻止。

希望这有帮助。

答案 4 :(得分:1)

虽然与查找数据库瓶颈无关,但XDebug与cachegrind查看器(例如WebGrindWinCacheGrind)相结合可以帮助您找到PHP代码的一部分,这需要花费最长时间执行。