我的用PHP编写的应用程序,带有mysql后端,在IIS上运行,在服务器升级到应用程序服务器后开始挂起。
几个月前,我的应用程序启动速度非常慢,因此我们升级了应用程序服务器(添加了额外的处理器并增加了内存)。 升级之后,我们开始遇到500个内部服务器错误,这迫使我们重新启动IIS服务器。但是,我们注意到问题实际上出在应用程序池中,一旦重新启动,该应用程序就可以很好地运行。 此后,我们还增加了内存以及数据库服务器中的处理器数量。 我们已经观察到应用程序日志,但没有发现任何异常。 -在数据库服务器中的系统事件日志中记录了错误“为每个请求终止与数据库的连接140829,直到重新启动应用程序池。 -应用服务器的system32中的HTTP错误日志为每个请求提供了“ Connection_Dropped”。 -IIS日志为每个请求给出了500个错误。
然后我们注意到,在冻结服务器的过程中,mysql服务器在睡眠模式下有许多连接,并且连接数随每个应用程序请求命中而增加。
我们还注意到mysql中的等待时间设置为8小时,因此我们将其减少为180秒。 我还获得了在服务器停机期间发生的事务列表,并执行了所有数据库命令(所有这些命令都是非常简单的简单查询),并且它们全速处理。
但是,对于非常不稳定的服务器,我仍然遇到相同的问题。任何人都经历过同样的事情,并且找到了这个问题的根本原因?