解决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 相关文章推荐
第四节 构造函数和析构函数 [4]
Oct 09 PHP
eWebEditor v3.8 商业完整版 (PHP)
Dec 06 PHP
实用函数7
Nov 08 PHP
PHP开启gzip页面压缩实例代码
Mar 11 PHP
php快速url重写更新版[需php 5.30以上]
Apr 25 PHP
PHP header()函数使用详细(301、404等错误设置)
Apr 17 PHP
PHP读取RSS(Feed)简单实例
Jun 12 PHP
PHP安全下载文件的方法
Apr 07 PHP
Yii模型操作之criteria查找数据库的方法
Jul 15 PHP
PHP的mysqli_select_db()函数讲解
Jan 23 PHP
PHP添加文字水印或图片水印的水印类完整源代码与使用示例
Mar 18 PHP
php 使用expat方式解析xml文件操作示例
Nov 26 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
推荐几部必看的DC动画电影
2020/03/03 欧美动漫
php 获取远程网页内容的函数
2009/09/08 PHP
PHP学习笔记 用户注册模块用户类以及验证码类
2011/09/20 PHP
thinkPHP5.0框架API优化后的友好性分析
2017/03/17 PHP
ThinkPHP框架结合Ajax实现用户名校验功能示例
2019/07/03 PHP
Jquery 绑定时间实现代码
2011/05/03 Javascript
JavaScript中使用构造器创建对象无需new的情况说明
2012/03/01 Javascript
jquery插件制作 图片走廊 gallery
2012/08/17 Javascript
jQuery setTimeout()函数使用方法
2013/04/07 Javascript
Javascript中的String对象详谈
2014/03/03 Javascript
使用AngularJS对路由进行安全性处理的方法
2015/06/18 Javascript
javascript下使用Promise封装FileReader
2016/02/19 Javascript
jQuery实现鼠标跟随提示层效果代码(可显示文本,Div,Table,Html等)
2016/04/18 Javascript
AngularJs基本特性解析(一)
2016/07/21 Javascript
angularJS Provider、factory、service详解及实例代码
2016/09/21 Javascript
Bootstrap的class样式小结
2016/12/01 Javascript
Javascript前端经典的面试题及答案
2017/03/14 Javascript
解析Vue 2.5的Diff算法
2017/11/28 Javascript
搭建vue开发环境
2018/07/19 Javascript
基于vue中keep-alive缓存问题的解决方法
2018/09/21 Javascript
[01:30:54]《加油DOTA》 第三期
2014/08/18 DOTA
Python返回真假值(True or False)小技巧
2015/04/10 Python
python计算牛顿迭代多项式实例分析
2015/05/07 Python
Python信息抽取之乱码解决办法
2017/06/29 Python
python 字典 按key值大小 倒序取值的实例
2018/07/06 Python
75条笑死人的知乎神回复,用60行代码就爬完了
2019/05/06 Python
Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签
2019/12/04 Python
细数nn.BCELoss与nn.CrossEntropyLoss的区别
2020/02/29 Python
css3实现动画的三种方式
2020/08/24 HTML / CSS
HTML5 canvas基本绘图之绘制线条
2016/06/27 HTML / CSS
ALDO美国官网:加拿大女鞋品牌
2018/12/28 全球购物
delegate与普通函数的区别
2014/01/22 面试题
小学生学雷锋演讲稿
2014/04/25 职场文书
农村门前三包责任书
2014/07/25 职场文书
2014年村计划生育工作总结
2014/11/14 职场文书
Nest.js参数校验和自定义返回数据格式详解
2021/03/29 Javascript