Apache服务器很慢,需要花费几分钟的时间来响应

我的机器上安装了Ubuntu 12.04 64位和Apache 2.2.22,用于开发。 无论如何,似乎从一天到下一天,它将以毫秒为单位提供服务,现在每次只能提供5分钟1秒。 我相信这是因为apache.conf的超时值是300 。 我不明白的是为什么它会超时。

我已经安装了xdebug,但是我没有触发它,它不是自动启动,所以我真的认为这没有什么区别,他们一起工作得很好。

我在Apache是​​一个完整的noob,不知道如何开始debugging的问题。 我已经检查了日志,但他们似乎没有给我任何有趣的东西。 Apache error.log不会更改,只会在引导时生成通知日志。

实际的应用程序日志更有趣一些,因为它更新app-access.logapp-error.log ,但是访问日志只是说GET请求,错误日志是所有信息。 这对我来说毫无意义,所以这里是一个请求的例子。

 [Mon Jan 20 12:01:39 2014] [info] [client 127.0.0.1] (32)Broken pipe: core_output_filter: writing data to the network [Mon Jan 20 12:01:43 2014] [info] [client ::1] Connection to child 6 established (server app:443) [Mon Jan 20 12:01:43 2014] [info] Seeding PRNG with 656 bytes of entropy [Mon Jan 20 12:01:43 2014] [info] [client ::1] SSL library error 1 in handshake (server app:443) [Mon Jan 20 12:01:43 2014] [info] SSL Library Error: 336027900 error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol speaking not SSL to HTTPS port!? [Mon Jan 20 12:01:43 2014] [info] [client ::1] Connection closed to child 6 with abortive shutdown (server app:443) 

问题是,只有在几分钟后(在显式的5分钟超时后)提供页面时,它才会生成日志。 这似乎需要很长时间才能真正打开应用程序。 我不确定最好的办法是找出为什么是这样的情况。 我最近没有改变我的configuration,所以我真的不明白为什么突然出现了错误。

那么如果configuration没有改变,你别无select,只能将超时限制为2秒,那么你有3秒的加载时间..;)奥基,让我们尝试一些有用的..

你说你用它进行本地开发testing?

你还记得最后一个变化是什么,以下任何一个:

  • 你的Web应用程序,它在什么时候工作,什么时候不工作?
    • 有没有一个for .. loop运行无限?
    • 或者,您的应用程序向另一个没有响应的服务器发出请求?
  • 任何其他日志检查? PHP的错误日志或任何其他您可能正在使用的脚本语言。
  • 数据库设置,表结构? 约束? 程序?
    • 你正在使用一个数据库,有一些你的应用程序正在等待的锁?
  • 脚本语言设置(你运行的PHP,Perl,Python,Ruby)?
  • Apache设置
    • 模块
    • 虚拟主机
    • .htaccess文件?
  • 服务器上任何其他服务的更新?
  • 任何防火墙更改?
  • 数据库,脚本语言或Apache的任何更新?

其他事情要检查:

  • 如果这没有帮助,应该增加Apache的日志logging的详细程度,逐步debugging,看看在5分钟内发生了什么事情..
  • 在请求运行的时候,你也可以看到哪个进程正在使用cpu(如果有的话),例如PHP占用整个CPU内核? 或者也许mysqld(或任何其他数据库守护进程)..

[编辑]也看到这个: http : //servertune.com/kbase/? View=entry&EntryID = 109

编辑/etc/apache2/ports.conf

确保听80线最后。 [1]

如果这样不能解决问题,请将listen *:443或Listen 443replace为Listen *:443 http [2]

另外,显然,apache2ctl优雅是不足以让这个改变生效,是残酷的:

apache2ctl重新启动

祝你好运。

1: http : //wiki.apache.org/httpd/InternalDummyConnection

2: https : //netfuture.ch/2013/07/ubuntu-apache-update-broke-listen-command/