php – 我长期运行的laravel 4命令一直被杀死
我有一个实现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开始 现在,奇怪的是,以上都没有任何区别.我的剧本在杀死时仍然使用150mb或ram! 实际工作的解决方案: 现在这绝对是一个特定的解决方案. 事实证明,Laravel创建了日志信息和对象,以帮助您查看查询性能. 通过以下“魔术”调用将其关闭,我将脚本从150mb降低到大约20mb! 这就是’魔术;’呼叫: DB::connection()->disableQueryLog(); 当我发现这个电话时,我可以告诉你,我正在抓稻草;-( (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |