解决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学习笔记 用户注册模块用户类以及验证码类
Sep 20 PHP
PHP异常处理浅析
May 12 PHP
thinkphp多层MVC用法分析
Dec 30 PHP
PHP7新增运算符用法实例分析
Sep 26 PHP
Linux平台php命令行程序处理管道数据的方法
Nov 10 PHP
PHP数据的提交与过滤基本操作实例详解
Nov 11 PHP
PHP常见字符串处理函数用法示例【转换,转义,截取,比较,查找,反转,切割】
Dec 24 PHP
php+redis实现注册、删除、编辑、分页、登录、关注等功能示例
Feb 15 PHP
PHP实现的注册,登录及查询用户资料功能API接口示例
Jun 06 PHP
PHP实现Huffman编码/解码的示例代码
Apr 20 PHP
php+mysql开发的最简单在线题库(在线做题系统)完整案例
Mar 30 PHP
详解将数据从Laravel传送到vue的四种方式
Oct 16 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学习之PHP运算符
2006/10/09 PHP
Ubuntu server 11.04安装memcache及php使用memcache来存储session的方法
2016/05/31 PHP
php插件Xajax使用方法详解
2017/08/31 PHP
php微信公众号开发之欢迎老朋友
2018/10/20 PHP
JS操作XML中DTD介绍及使用方法分析
2019/07/04 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
2020/02/27 PHP
扩展JavaScript功能的正确方法(译文)
2012/04/12 Javascript
IE、FF浏览器下修改标签透明度
2014/01/28 Javascript
引入autocomplete组件时JS报未结束字符串常量错误
2014/03/19 Javascript
javascript中的正则表达式使用指南
2015/03/01 Javascript
swtich/if...else的替代语句
2015/08/16 Javascript
jQuery实现垂直半透明手风琴特效代码分享
2015/08/21 Javascript
基于jQuery实现仿QQ空间送礼物功能代码
2016/05/24 Javascript
AngularJs Understanding the Controller Component
2016/09/02 Javascript
js定时器实例分享
2016/12/20 Javascript
详解nodejs微信jssdk后端接口
2017/05/25 NodeJs
JavaScript实现三级级联特效
2017/11/05 Javascript
vue实现简单的MVVM框架
2018/08/05 Javascript
[03:18]DOTA2放量测试专访820:希望玩家加入国服大家庭
2013/08/25 DOTA
Python中的time模块与datetime模块用法总结
2016/06/30 Python
基于Django与ajax之间的json传输方法
2018/05/29 Python
python中协程实现TCP连接的实例分析
2018/10/14 Python
在Pycharm中使用GitHub的方法步骤
2019/06/13 Python
在django中图片上传的格式校验及大小方法
2019/07/28 Python
python树的同构学习笔记
2019/09/14 Python
python分布式爬虫中消息队列知识点详解
2020/11/26 Python
可以随进度显示不同颜色的css3进度条分享
2014/04/11 HTML / CSS
纯CSS绘制漂亮的圆形图案效果
2014/05/07 HTML / CSS
Get The Label中文官网:英国运动时尚购物平台
2017/04/19 全球购物
Nili Lotan官网:Nili Lotan同名品牌
2018/01/07 全球购物
个人简历自我评价
2014/01/06 职场文书
幼儿园教学随笔感言
2014/02/23 职场文书
给校长的建议书400字
2014/05/15 职场文书
离婚协议书怎么写2014
2014/09/30 职场文书
个人剖析材料及整改措施
2014/10/07 职场文书
人大代表选举标语
2014/10/07 职场文书