解决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 编程的 5个良好习惯
Feb 20 PHP
php Static关键字实用方法
Jun 04 PHP
php Smarty初体验二 获取配置信息
Aug 08 PHP
php适配器模式介绍
Aug 14 PHP
用mysql_fetch_array()获取当前行数据的方法详解
Jun 05 PHP
PHP中nowdoc和heredoc使用需要注意的一点
Mar 21 PHP
Yii实现多按钮保存与提交的方法
Dec 03 PHP
php保存信息到当前Session的方法
Mar 16 PHP
php提高网站效率的技巧
Sep 29 PHP
php使用高斯算法实现图片的模糊处理功能示例
Nov 11 PHP
微信公众平台开发教程⑤ 微信扫码支付模式介绍
Apr 10 PHP
Laravel5.1框架注册中间件的三种场景详解
Jul 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实现数组中索引关联数据转换成json对象的方法
2015/07/08 PHP
java解析json方法总结
2019/05/16 PHP
php实现对文件压缩简单的方法
2019/09/29 PHP
再谈ie和firefox下的document.all属性
2009/10/21 Javascript
JS动态添加与删除select中的Option对象(示例代码)
2013/12/25 Javascript
用Jquery.load载入页面实现局部刷新
2014/01/22 Javascript
Jquery实现侧边栏跟随滚动条固定(兼容IE6)
2014/04/02 Javascript
如何利用AngularJS打造一款简单Web应用
2015/12/05 Javascript
Bootstrap轮播插件使用代码
2016/10/11 Javascript
自定义require函数让浏览器按需加载Js文件
2016/11/24 Javascript
使用ionic切换页面卡顿的解决方法
2016/12/16 Javascript
js输入框使用正则表达式校验输入内容的实例
2017/02/12 Javascript
vue2.0设置proxyTable使用axios进行跨域请求的方法
2017/10/19 Javascript
vue中的模态对话框组件实现过程
2018/05/01 Javascript
vue addRoutes实现动态权限路由菜单的示例
2018/05/15 Javascript
JS html事件冒泡和事件捕获操作示例
2019/05/01 Javascript
微信小程序云开发(数据库)详解
2019/05/17 Javascript
微信小程序实现弹框效果
2020/05/26 Javascript
[51:29]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
2017/09/08 Python
python web.py开发httpserver解决跨域问题实例解析
2018/02/12 Python
对python中使用requests模块参数编码的不同处理方法
2018/05/18 Python
Visual Studio code 配置Python开发环境
2020/09/11 Python
python读取excel数据绘制简单曲线图的完整步骤记录
2020/10/30 Python
flask项目集成swagger的方法
2020/12/09 Python
CSS3制作日历实现代码
2012/01/21 HTML / CSS
服务员自我评价
2014/01/25 职场文书
会计员岗位职责
2014/03/15 职场文书
会计电算化专业自荐信
2014/03/15 职场文书
银行职员自我鉴定
2014/04/20 职场文书
企业标语口号
2014/06/10 职场文书
营销经理工作检讨书
2014/11/03 职场文书
清明节文明祭祀倡议书
2015/04/28 职场文书
《狼牙山五壮士》教学反思
2016/02/17 职场文书
python控制台打印log输出重复的解决方法
2021/05/14 Python
解决Mysql的left join无效及使用的注意事项说明
2021/07/01 MySQL