解决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
php中的登陆login
Jan 18 PHP
支持数组的ADDSLASHES的php函数
Feb 16 PHP
使用PHP提取视频网站页面中的FLASH地址的代码
Apr 17 PHP
PHP及Zend Engine的线程安全模型分析
Nov 10 PHP
PHP 第一节 php简介
Apr 28 PHP
Zend的MVC机制使用分析(一)
May 02 PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
Dec 15 PHP
推荐10个提供免费PHP脚本下载的网站
Dec 31 PHP
PHP批量生成图片缩略图的方法
Jun 18 PHP
php采集神器cURL使用方法详解
Feb 19 PHP
kindeditor 加入七牛云上传的实例讲解
Nov 12 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使用codebase生成随机数
2014/03/25 PHP
Yii实现多按钮保存与提交的方法
2014/12/03 PHP
一个非常完美的读写ini格式的PHP配置类分享
2015/02/12 PHP
php实现中文字符截取防乱码方法汇总
2015/04/29 PHP
php官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)
2015/12/21 PHP
smarty自定义函数用法示例
2016/05/20 PHP
基于Laravel 5.2 regex验证的正确写法
2019/09/29 PHP
jquery 插件 任意位置浮动固定层
2008/12/25 Javascript
Jquery知识点二 jquery下对数组的操作
2011/01/15 Javascript
点击A元素触发B元素的事件在IE8下会识别成A元素
2014/09/04 Javascript
node.js中的fs.open方法使用说明
2014/12/17 Javascript
三种带箭头提示框总结实例
2016/06/14 Javascript
JS实现数组去重方法总结(六种方法)
2017/07/14 Javascript
纯JavaScript实现实时反馈系统时间
2017/10/26 Javascript
Node.js调用fs.renameSync报错(Error: EXDEV, cross-device link not permitted)
2017/12/27 Javascript
JavaScript 跨域之POST实现方法
2018/05/07 Javascript
微信小程序有旋转动画效果的音乐组件实例代码
2018/08/22 Javascript
利用jqgrid实现上移下移单元格功能
2018/11/07 Javascript
Vue.js中的组件系统
2019/05/30 Javascript
Vue 的双向绑定原理与用法揭秘
2020/05/06 Javascript
vuex管理状态仓库使用详解
2020/07/29 Javascript
JS highcharts动态柱状图原理及实现
2020/10/16 Javascript
[02:33]DOTA2亚洲邀请赛趣味视频之吐真话筒
2018/03/31 DOTA
Python冒泡排序注意要点实例详解
2016/09/09 Python
Python中装饰器学习总结
2018/02/10 Python
Python日志无延迟实时写入的示例
2019/07/11 Python
HTML5验证以及日期显示的实现详解
2013/07/05 HTML / CSS
使用phonegap进行提示操作的具体方法
2017/03/30 HTML / CSS
英国著名音像制品和图书游戏购物网站:Zavvi
2016/08/04 全球购物
英国最大的在线快递公司之一:ParcelHero
2019/11/04 全球购物
php优化查询foreach代码实例讲解
2021/03/24 PHP
美国探亲签证邀请信
2014/02/05 职场文书
新闻专业学生的自我评价
2014/02/13 职场文书
教师暑期培训感言
2014/08/15 职场文书
七一晚会主持词
2015/06/29 职场文书
高中政治教师教学反思
2016/02/23 职场文书