解决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中养成7个面向对象的好习惯
Jan 28 PHP
11个PHP 分页脚本推荐
Aug 15 PHP
php强制文件下载而非在浏览器打开的自定义函数分享
May 08 PHP
destoon实现会员商铺中指定会员或会员组投放广告的方法
Aug 21 PHP
ci检测是ajax还是页面post提交数据的方法
Nov 10 PHP
php的ddos攻击解决方法
Jan 08 PHP
PHP 生成微信红包代码简单
Mar 25 PHP
详解PHP的Yii框架中扩展的安装与使用
Apr 01 PHP
PHP Ajax实现无刷新附件上传
Aug 17 PHP
PHP PDOStatement::setAttribute讲解
Feb 01 PHP
提高Laravel应用性能方法详解
Jun 24 PHP
php 使用mpdf实现指定字段配置字体样式的方法
Jul 29 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中const与define的应用区别
2013/06/18 PHP
一个不易被发现的PHP后门代码解析
2014/07/05 PHP
PHP简单获取随机数的常用方法小结
2017/06/07 PHP
PHP 获取客户端 IP 地址的方法实例代码
2018/11/11 PHP
Jquery attr(&quot;checked&quot;) 返回checked或undefined 获取选中失效
2013/10/10 Javascript
jQuery之字体大小的设置方法
2014/02/27 Javascript
jQuery实现数字加减效果汇总
2014/12/16 Javascript
JavaScript获取页面上被选中文字的方法技巧
2015/03/13 Javascript
jquery插件jSignature实现手动签名
2015/05/04 Javascript
Javascript生成带参数的二维码示例
2016/10/10 Javascript
简单理解vue中track-by属性
2016/10/26 Javascript
Bootstrop实现多级下拉菜单功能
2016/11/24 Javascript
node.js+captchapng+jsonwebtoken实现登录验证示例
2017/08/17 Javascript
初探JavaScript 面向对象(推荐)
2017/09/03 Javascript
详解Vue中一种简易路由传参办法
2017/09/15 Javascript
如何从0开始用node写一个自己的命令行程序
2018/12/29 Javascript
JS实现获取当前所在周的周六、周日示例分析
2019/05/11 Javascript
JS中的继承操作实例总结
2020/06/06 Javascript
Node.js 中判断一个文件是否存在
2020/08/24 Javascript
[01:19:46]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
python生成指定尺寸缩略图的示例
2014/05/07 Python
Python实现从脚本里运行scrapy的方法
2015/04/07 Python
Django URL传递参数的方法总结
2016/08/28 Python
使用Python爬取最好大学网大学排名
2018/02/24 Python
python版opencv摄像头人脸实时检测方法
2018/08/03 Python
python+webdriver自动化环境搭建步骤详解
2019/06/03 Python
python中利用numpy.array()实现俩个数值列表的对应相加方法
2019/08/26 Python
Python 读取用户指令和格式化打印实现解析
2019/09/02 Python
PyTorch实现AlexNet示例
2020/01/14 Python
pycharm下配置pyqt5的教程(anaconda虚拟环境下+tensorflow)
2020/03/25 Python
Python如何执行精确的浮点数运算
2020/07/31 Python
联想香港官方网站及网店:Lenovo香港
2018/04/13 全球购物
C语言怎样定义和声明全局变量和函数最好
2013/11/26 面试题
新闻专业个人自我评价
2013/09/21 职场文书
全国税务系统先进集体事迹材料
2014/05/19 职场文书
Ajax实现局部刷新的方法实例
2021/03/31 Javascript