解决File size limit exceeded 错误的方法


Posted in PHP onJune 14, 2013

昨日遇到一个问题,使用Yii框架编写php脚本,将db中100多万的数据导出,运行,成功。

但是在 运行到第 49万条时,脚本终止,提示错误“File size limit exceeded”,遂google之,原来是某个文件大小超过系统限制。笔者第一反应,日志文件写满了???赶忙查看 log,居然只有几十K !!! 那么这个 “大文件”在哪里呢?

开始分析,不可能是Yii框架的问题,此乃linux操作系统异常问题与框架无光,也不是 日志文件大小,仔细查看了所有设置的log路径下的文件,均小的可以忽略,即使是将Yii的debug关掉,也出现了相同的问题。

那么换个思路,重新运行脚本,再次运行脚本,发现 dead的时间很有规律,均是在45万条记录时挂掉,一条不多一条不少,开始怀疑与进程有关。决定查看脚本进程所影响到的io。

1、先获取脚本进程的 <pid>;

2、使用lsof命令查看此pid的io情况 : lsof -p <pid>

发现一个疑似文件 data0/xdebug/cachegrind.out.<pid>,随着脚本的执行,这个xdebug文件的大小也随之增大,最后,如愿,挂掉!此时文件大小为:2147483647!!

哈哈,好熟悉的数字,2^31 -1 !!

看来问题找到了,在脚本执行时,xdebug也随之对这个脚本进程进行写记录日志,当此文件大小超出 系统所能支持的文件大小时,如期挂掉。

ok, 将xdebug关掉,重跑脚本,一百多万的记录顺利跑完,搞定。

ps: 笔者所使用的服务器为32位系统,而在32位操作系统中,由于是二进制,其能最大存储的数据是1111111111111111111111111111111。

正因为此,体现在其他可视系统中的十进制就为2147483647。

PHP 相关文章推荐
Php部分常见问题总结
Oct 09 PHP
屏蔽浏览器缓存另类方法
Oct 09 PHP
PHP 危险函数解释 分析
Apr 22 PHP
PHP 危险函数全解析
Sep 09 PHP
mac下使用brew配置环境的步骤分享
May 23 PHP
PHP error_log()将错误信息写入一个文件(定义和用法)
Oct 25 PHP
php自定义session示例分享
Apr 22 PHP
PHP常用文件操作函数和简单实例分析
Jun 03 PHP
PHP基于curl后台远程登录正方教务系统的方法
Oct 14 PHP
php删除二维数组中的重复值方法
Mar 12 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
Jun 01 PHP
laravel 字段格式化 modle 字段类型转换方法
Sep 30 PHP
使用PHP计算两个路径的相对路径
Jun 14 #PHP
深入解析PHP的引用计数机制
Jun 14 #PHP
深入解析PHP垃圾回收机制对内存泄露的处理
Jun 14 #PHP
Mysql的Root密码忘记,查看或修改的解决方法(图文介绍)
Jun 14 #PHP
解析php中两种缩放图片的函数,为图片添加水印
Jun 14 #PHP
PHP操作Memcache实例介绍
Jun 14 #PHP
解析PHP处理换行符的问题 \r\n
Jun 13 #PHP
You might like
php+mysql删除指定编号员工信息的方法
2015/01/14 PHP
JAVASCRIPT 对象的创建与使用
2021/03/09 Javascript
基于Jquery的标签智能验证实现代码
2010/12/27 Javascript
(跨浏览器基础事件/浏览器检测/判断浏览器)经验代码分享
2013/01/24 Javascript
js中settimeout方法加参数
2014/02/28 Javascript
jQuery实现Email邮箱地址自动补全功能代码
2015/11/03 Javascript
jQuery 获取屏幕高度、宽度的简单实现案例
2016/05/17 Javascript
AngularJS入门教程之双向绑定详解
2016/08/18 Javascript
js拼接html字符串的注意事项
2016/10/13 Javascript
Vue.js第三天学习笔记(计算属性computed)
2016/12/01 Javascript
初识 Vue.js 中的 *.Vue文件
2017/11/22 Javascript
vue解决花括号数据绑定不成功的问题
2019/10/30 Javascript
详解为element-ui的Select和Cascader添加弹层底部操作按钮
2020/02/07 Javascript
js点击事件的执行过程实例分析【冒泡与捕获】
2020/04/11 Javascript
jQuery三组基本动画与自定义动画操作实例总结
2020/05/09 jQuery
[01:03:59]2018DOTA2亚洲邀请赛3月30日 小组赛B组VGJ.T VS Secret
2018/03/31 DOTA
分析Python中设计模式之Decorator装饰器模式的要点
2016/03/02 Python
解决python3中自定义wsgi函数,make_server函数报错的问题
2017/11/21 Python
Python的CGIHTTPServer交互实现详解
2018/02/08 Python
纯用NumPy实现神经网络的示例代码
2018/10/24 Python
Python中将两个或多个list合成一个list的方法小结
2019/05/12 Python
Python爬取智联招聘数据分析师岗位相关信息的方法
2019/08/13 Python
pyenv与virtualenv安装实现python多版本多项目管理
2019/08/17 Python
Django单元测试中Fixtures用法详解
2020/02/25 Python
python等差数列求和公式前 100 项的和实例
2020/02/25 Python
tensorflow使用L2 regularization正则化修正overfitting过拟合方式
2020/05/22 Python
80年代复古T恤:TruffleShuffle
2018/07/02 全球购物
墨尔本复古时尚品牌:Dangerfield
2018/12/12 全球购物
Deux par Deux官方网站:设计师童装
2020/01/03 全球购物
运动会解说词200字
2014/02/06 职场文书
护士岗前培训自我评鉴
2014/02/28 职场文书
小学社团活动总结
2014/06/27 职场文书
先进工作者个人总结
2015/02/15 职场文书
学校计划生育责任书
2015/05/09 职场文书
关于Vue中的options选项
2022/03/22 Vue.js
Typescript类型系统FLOW静态检查基本规范
2022/05/25 Javascript