apache运⾏⼀段时间出现错误
环境是win2008,apache 2.4.29 Win64 VC15,php 7.1.10(7.1.11)。事件完整内容:
“--------------------------
错误应⽤程序名称: ,版本: 2.4.29.0,时间戳: 0x59e9c9a6
错误模块名称: ntdll.dll,版本: 6.1.7601.23915,时间戳: 0x59b94ee4
异常代码: 0xc0000005
错误偏移量: 0x000000000004f23c
错误进程 ID: 0x900
错误应⽤程序启动时间: 0x01d388072496fd60
错误应⽤程序路径: D:\xwamp\Apache\
错误模块路径: C:\Windows\SYSTEM32\ntdll.dll
报告 ID: c896327e-f3fe-11e7-8745-ff2c4350ba8c
--------------------------”
apache⽇志中频繁定期出现重启
[mpm_winnt:notice] [pid 1040:tid 392] AH00422: Parent: Received shutdown signal -- Shutting down the server.
[mpm_winnt:notice] [pid 3208:tid 296] AH00364: Child: All worker threads have exited.
[mpm_winnt:notice] [pid 1040:tid 392] AH00430: Parent: Child process 3208 exited successfully.
[mpm_winnt:notice] [pid 1028:tid 392] AH00455: Apache/2.4.29 (Win64) OpenSSL/1.1.0f configured -- resuming normal operations [mpm_winnt:notice] [pid 1028:tid 392] AH00456: Apache Lounge VC15 Server built: Oct 20 2017 12:12:11
[core:notice] [pid 1028:tid 392] AH00094: Command line: 'D:\\xwamp\\Apache\\bin\\ -d D:/xwamp/apache -d D:\\xwamp\\Apache -f D:\\xwamp\\f'
[mpm_winnt:notice] [pid 1028:tid 392] AH00418: Parent: Created child process 1604
[mpm_winnt:notice] [pid 1604:tid 296] AH00354: Child: Starting 350 worker threads.
=====处理思路记录===
⽹上出现类似错误的帖⼦和⽹页有很多,基本都是提问的,没有回答。
1.可能设置了MaxConnectionsPerChild值使得定期重启。
将改值设置为0,观察⼀段时间后,还是出现这样的情况。⽆效。
2.⼿贱安装搜狗输⼊法,卸载之。发现还是没有解决。
3.重新安装官⽅版本的vc2017.待观察效果如何。
4.将php⽬录和其ext⽬录加⼊环境path中.待观察效果如何。
问题仍然存在。
=====新的问题记录===
PHP错误⽇志:
PHP Fatal error:  Couldn't find implementation for method Nil\\Base\\Headers::getiterator in Unknown on line 0
PHP Fatal error:  Couldn't find implementation for method Nil\\Log::getiterator in Unknown on line 0
紧接着apache错误事件
错误应⽤程序名称: ,版本: 2.4.29.0,时间戳: 0x59e9c9a6
错误模块名称: php7ts.dll,版本: 7.1.11.0,时间戳: 0x59f1053d
exited异常代码: 0xc0000005
错误偏移量: 0x000000000001d953
错误进程 ID: 0xfd8
错误应⽤程序启动时间: 0x01d3882389b740bc
错误应⽤程序路径: D:\xwamp\Apache\
错误模块路径: D:\xwamp\php\php-7.1.11-Win32-VC14-x64\php7ts.dll
报告 ID: 9d32a94e-f41e-11e7-8bb8-e17153452aaf
=====处理思路记录===
1.php7ts使⽤的vc14,重新安装vc14吧。VC15 is backward compatible to VC14. That means, a VC14 module can be used inside a VC15 binary (for example PHP VC14 as module).不需要安装vc14.
2.将php升级到当前最新版本7.1.13。
还是没有⽤。。。
=====处理思路记录===
1.使⽤ab测试,⼤量并发处理,直接出现错误
apr_pollset_add(): Not enough space (12)
与此同时,服务器出现之前的错误事件。
2.ab测试静态⽂件,没有问题。ab测试单个php⽂件,没有问题。
3.所以嘛,最终的原因就是php占⽤太多的资源导致。
4.将nilcms框架的log⽇志关闭,定义⼀个简单路由(不写⼊任何⽂件⽇志),ab测试之,完好⽆损!!
因此,下⾯分析:
服务器中⼤量的请求,导致频繁写⼊⽇志,使得资源占⽤过⾼,导致apache异常频繁重启。
验证:
查看服务器中出现错误的那⼀刻,访问的请求数量。五六个并发⽽已,就挂掉了。。。(穷。。。)
========但是没有这么简单========
1.开启opcache,⽬前没有发现问题。
2.框架也有问题,测试发现使⽤ArrayObject类,ab测试就会崩溃,继续测试中。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。