加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

php – 我长期运行的laravel 4命令一直被杀死

发布时间:2020-12-14 19:45:02 所属栏目:大数据 来源:网络整理
导读:我有一个实现laravel命令的laravel 4 web项目. 当在开发宅基地vm中运行时,它运行完成(总时间约为40秒). 但是,在生产服务器上运行它时,它会在命令行上以“已终止”输出退出. 起初我以为它是cli php.ini中的max_execution_time,所以我把它设置为0(无限时间).
我有一个实现laravel命令的laravel 4 web项目.

当在开发宅基地vm中运行时,它运行完成(总时间约为40秒).

但是,在生产服务器上运行它时,它会在命令行上以“已终止”输出退出.

起初我以为它是cli php.ini中的max_execution_time,所以我把它设置为0(无限时间).

我怎样才能找出杀死我命令的内容?

我使用标准的artisan invokation在ssh终端上运行它:

php artisan commandarea:commandname

laravel 4在某处有命令时限吗?

vps是一个带有mysql,nginx和php-fpm的Ubuntu 4.10机器

所以,首先,谢谢大家指出我关于 PHP和laravel内存使用情况跟踪的正确方向.

我已经回答了我自己的问题,希望将来有利于laravel开发者,因为我的解决方案很难找到.

输入’dmesg’后显示系统消息.我发现php脚本被Linux杀死了.

因此,我在脚本的每个关键区域之前和之后将内存日志记录调用添加到我的脚本中:

Log::Info('Memory now at: ' . memory_get_peak_usage());

然后我在观察日志输出的同时运行脚本以及’top’命令的输出.

我发现即使我的方法结束并且变量超出范围,内存也没有被释放.

我试过的东西,DIDNT在我的情况下有所不同:

>在我完成它们之后对变量进行unset($varname) – 希望让GC开始
>在脚本开头添加gc_enable(),然后在未设置大量变量后添加gc_collect_cycle()调用.
>禁用mysql事务 – 认为可能是内存密集型 – 它不是.

现在,奇怪的是,以上都没有任何区别.我的剧本在杀死时仍然使用150mb或ram!

实际工作的解决方案:

现在这绝对是一个特定的解决方案.
但我的脚本目的基本上是解析一个大的xml feed,然后使用Elequent ORM将数千行插入到mysql中.

事实证明,Laravel创建了日志信息和对象,以帮助您查看查询性能.

通过以下“魔术”调用将其关闭,我将脚本从150mb降低到大约20mb!

这就是’魔术;’呼叫:

DB::connection()->disableQueryLog();

当我发现这个电话时,我可以告诉你,我正在抓稻草;-(

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读