在apache使用过程中喜欢观察日志报告的朋友会发现经常有如下错误信息:
错误应用程序名称: httpd.exe,版本: 2.4.12.0,时间戳: 0x54cb5c8b 错误模块名称: php5ts.dll,版本: 5.4.38.0,时间戳: 0x54e3fb57 异常代码: 0xc0000005 错误偏移量: 0x0004a390 错误进程 ID: 0xc84 错误应用程序启动时间: 0x01d091cd8047c367 错误应用程序路径: D:\upupw_1503\Apache2\bin\httpd.exe 错误模块路径: D:\upupw_1503\PHP5\php5ts.dll 描述:apache Application Error 事件1000 图片:apache Application Error.gif 经过测试总结如下: ---出现这个错误源于apache负载过大已超出目前线程限制导致httpd.exe异常退出。 ---打开upupw程序目录apache2/conf/httpd.conf查找ThreadsPerChild(设置httpd工作进程的线程数量) ---ThreadsPerChild的最大数量apache限制的最大值为1920,超过这个apache将无法启动。 ---upupw apache老版本ThreadsPerChild设置为350,在压力测试下400并发后win应用程序日志报告马上会出现以上报错。 ---upupw apache 1503新版本ThreadsPerChild设置为1920,压力测试下400并发后win应用程序日志报告中不再出现错误。 ---当ThreadsPerChild设置为1920后并发大时httpd进程内存就会很快加大,当到达500M的时候apache应该是出于保护机制会自动重启释放内存,所以很多朋友apache.log日志中会出现很多重启的日志报告。 ---从以上基础可以得知ThreadsPerChild设置为1920了,当并发大于1920这个数值时win应用程序日志报告中还是会报错。 ---所以并发大时还需要调整一个数值,httpd.conf中查找KeepAlive On (长连接开关),设置为KeepAlive Off (关闭长连接快速释放连接留给后面的请求), 开启长连接的情况下每个用户请求成功后都会保持一段时间的连接,这个由KeepAliveTimeout 5决定,默认5秒。 ---排除站点正常访问外,当站点遇到CC攻击或者被采集以及搜索引擎过重索引等都有可能出现这种问题,具体大家需要自行判断。 以上就是sherry同学给大家分享的一些apache Application Error 事件错误报告实验心得,希望对大家有所帮助。 |
|
最新喜欢:igzh |