解决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 相关文章推荐
输出控制类
Oct 09 PHP
php处理json时中文问题的解决方法
Apr 12 PHP
php实现用户在线时间统计详解
Oct 08 PHP
php smarty截取中文字符乱码问题?gb2312/utf-8
Nov 07 PHP
8个必备的PHP功能实例代码
Oct 27 PHP
PHP四舍五入、取整、round函数使用示例
Feb 06 PHP
php抽象类用法实例分析
Jul 07 PHP
PHP基本语法实例总结
Sep 09 PHP
php+ajax+json 详解及实例代码
Dec 12 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
Apr 02 PHP
浅谈php常用的7大框架的优缺点
Jul 20 PHP
PHP中SESSION过期设置
Mar 09 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中用hash实现的数组
2011/07/17 PHP
ThinkPHP 3.2 数据分页代码分享
2014/10/14 PHP
LINUX下PHP程序实现WORD文件转化为PDF文件的方法
2016/05/13 PHP
PHP模糊查询的实现方法(推荐)
2016/09/06 PHP
php的laravel框架快速集成微信登录的方法
2016/12/12 PHP
详解thinkphp5+swoole实现异步邮件群发(SMTP方式)
2017/10/13 PHP
分享几种好用的PHP自定义加密函数(可逆/不可逆)
2020/09/15 PHP
js下用层来实现select的title提示属性
2010/02/23 Javascript
单击某一段文字改写文本颜色
2014/06/06 Javascript
jQuery中document与window以及load与ready 区别详解
2014/12/29 Javascript
JavaScript编写连连看小游戏
2015/07/07 Javascript
JS实现漂亮的时间选择框效果
2016/08/20 Javascript
详解wow.js中各种特效对应的类名
2017/09/13 Javascript
AngularJs 禁止模板缓存的方法
2017/11/28 Javascript
node前端模板引擎Jade之标签的基本写法
2018/05/11 Javascript
Js中将Long转换成日期格式的实现方法
2018/06/05 Javascript
kafka调试中遇到Connection to node -1 could not be established. Broker may not be available.
2019/09/17 Javascript
js生成1到100的随机数最简单的实现方法
2020/02/07 Javascript
python实现系统状态监测和故障转移实例方法
2013/11/18 Python
Python中使用HTMLParser解析html实例
2015/02/08 Python
使用Python发送邮件附件以定时备份MySQL的教程
2015/04/25 Python
Python异常处理操作实例详解
2018/05/10 Python
python和opencv实现抠图
2018/07/18 Python
python使用folium库绘制地图点击框
2018/09/21 Python
Python UnboundLocalError和NameError错误根源案例解析
2018/10/31 Python
Python实现的批量修改文件后缀名操作示例
2018/12/07 Python
Python编程在flask中模拟进行Restful的CRUD操作
2018/12/28 Python
PyQt5+requests实现车票查询工具
2019/01/21 Python
python3 下载网络图片代码实例
2019/08/27 Python
python3让print输出不换行的方法
2020/08/24 Python
先进个人获奖感言
2014/01/24 职场文书
高中军训感言800字
2014/03/05 职场文书
教师节促销方案
2014/03/22 职场文书
县长群众路线对照检查材料思想汇报
2014/10/02 职场文书
龙潭大峡谷导游词
2015/02/10 职场文书
MySQL pt-slave-restart工具的使用简介
2021/04/07 MySQL