愿隙 发表于 2025-12-12 11:34:23

Windows日志错误为:php-cgi.exe exit(busy timeout), return code 9

一、问题概况
上传Excel数据进行计算入库的程序,在执行一次数据量大的Excel时出现。基本的max_execution_time 、memory_limit 都已设置,程序每次执行大约8分钟左右后会出现500的服务器异常(thinkphp框架会跳转出现Error控制器不存在的异常),且无更详细的错误信息与描述。
二、问题分析流程
1、对程序内上传的Excel数据做截断测试(二分),确认程序以及上传文件正常。
2、逐步简化测试程序代码,排查是否某存在单次耗时过长能优化的代码或者SQL查询。经测试未检测出明显耗时和能优化的代码。
3、程序涉及Mysql事务,检查相关错误日志+程序注释事务内数据库操作进行调试(改用sleep()函数模仿),排除长事务导致的异常。
4、调整PHP超时相关基本配置max_execution_time 、memory_limit测试改动后是否有效,测试后无效。
5、经过上面调试,已发现服务器异常时间大约在8分钟左右,继续简化代码超时用sleep()代替,最终调试代码如下:
1 ini_set('max_execution_time',0); 2 ini_set('memory_limit', '2048M'); 3 sleep(600); 4 echo 1;
6、程序使用了框架(Thinkphp),框架外执行调试代码排除框架导致的异常。
7、检查PHP错误日志同时更换PHP新版本测试,排除PHP版本以及配置问题,防止其他更改过的配置导致异常。
8、经上述测试,目标已锁定Apache问题,初始查看Apache日志并无记录明显错误异常。
9、调整Apache错误日志等级原crit(严重)=>debug(调试),最终定位到php-cgi.exe exit(busy timeout), return code 9的异常信息,开始针对Apache的php-cgi相关配置进行了解和调试。
三、最终解决方案
 
【常规PHP超时配置项】 max_execution_time = 1200 memory_limit = 1024M [代码] ini_set('max_execution_time',0); ini_set('memory_limit', '1024M'); 【Apache httpd.conf相关配置】 # 定义服务器等待客户端请求的最长时间(秒),包括接收请求头和请求体的总时间‌ Timeout 1200 # 启用持久连接,允许同一TCP连接处理多个HTTP请求,减少握手开销‌ KeepAlive On # 控制空闲连接保持时间,超过该时限未活动则断开连接‌ 与Timeout需保持协调关系(建议KeepAliveTimeout ≤ Timeout)‌ KeepAliveTimeout 1200 [核心mod_fcgid相关配置]# 定义FastCGI进程I/O操作(读写请求/响应数据)的最大超时时间,单位为秒 FcgidIOTimeout 2400 # 强制终止处理请求超过2700秒(45分钟)的FastCGI进程,用于防止脚本无限阻塞 FcgidBusyTimeout 2700 # 控制空闲FastCGI进程的存活时间。600秒后无请求则回收进程 FcgidIdleTimeout 600 # 单个FastCGI进程的最大生命周期(1小时),超时后自动重启以释放潜在内存泄漏 FcgidProcessLifeTime 3600 # FastCGI进程启动或连接的后端服务超时时间(5分钟),仅Windows系统有效。UNIX系统依赖Socket机制无此限制‌ FcgidConnectTimeout 300
 
 
 
 


来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

喳谍 发表于 2025-12-23 11:08:59

热心回复!

茅断卉 发表于 2025-12-31 03:48:43

鼓励转贴优秀软件安全工具和文档!

全叶农 发表于 2026-1-5 04:02:08

感谢分享,学习下。

滕佩杉 发表于 2026-1-19 04:24:03

懂技术并乐意极积无私分享的人越来越少。珍惜

王妍芳 发表于 2026-1-23 15:38:34

感谢分享

崔和美 发表于 2026-1-24 01:42:40

东西不错很实用谢谢分享

姥恫 发表于 2026-1-24 04:43:05

谢谢分享,试用一下

赙浦 发表于 2026-1-28 04:20:41

鼓励转贴优秀软件安全工具和文档!

司寇涵涵 发表于 2026-1-28 06:19:29

鼓励转贴优秀软件安全工具和文档!

糙昧邵 发表于 2026-2-5 10:48:52

收藏一下   不知道什么时候能用到

赏勿 发表于 2026-2-6 17:15:23

喜欢鼓捣这些软件,现在用得少,谢谢分享!

胆饬 发表于 2026-2-7 04:39:13

yyds。多谢分享

龙正平 发表于 2026-2-7 08:33:20

感谢,下载保存了

古修蟑 发表于 2026-2-7 22:59:22

感谢发布原创作品,程序园因你更精彩

泡市 发表于 2026-2-8 02:20:41

谢谢楼主提供!

廖雯华 发表于 2026-2-9 00:12:48

这个有用。

颛孙中 发表于 2026-2-9 02:44:59

很好很强大我过来先占个楼 待编辑

彭水晶 发表于 2026-2-9 19:41:38

yyds。多谢分享

老僻贞 发表于 2026-2-9 21:58:17

鼓励转贴优秀软件安全工具和文档!
页: [1] 2
查看完整版本: Windows日志错误为:php-cgi.exe exit(busy timeout), return code 9