我写了一个PHP脚本,通过SSH和nohup运行,意味着处理来自数据库的logging,并与他们做东西(例如,处理一些图像,更新一些行)。
它适用于小负载,高达10k条logging。 我有一些处理大约40k个logging的较大数据集(我不知道,但是当每个logging需要下载和处理多达50个图像时,这会增加很多工作量)。
较大的数据集可能需要数天处理。 有时我会在deBUGging日志中看到内存错误,这些错误足够清楚 – 但是有时脚本看起来像是“死掉”了,或者对我来说是僵尸。 我的deBUGging日志的尾巴只是停止,没有错误消息,nohup日志的尾部没有错误结束,并且过程仍然显示在一个ps列表中,看起来像这样 –
26075 pts / 0 S 745:01 / usr / bin / PHP ./import.PHP
但没有工作正在完成。
任何人都可以给我一些想法,为什么一个进程将刚刚退出? 就我所知,显而易见的事情(如PHP脚本超时和内存问题)并不是一个因素。
在linux程序中跟踪积极使用的内存
在升级过程中,%preun的值为0到$ 1
如何使用linux获得触摸屏Rawdata的坐标
在linux上使用libudev阻塞读取的问题
在rails_root / Incron之外运行rake不会为rails运行rake或bundle命令
感谢您的任何提示
PS – 这是托pipe在godaddy VDS(不是我的select)。 我有点怀疑,尽pipe覆盖了我的代码(如set_time_limit(0);),godaddy有一些限制,可能会踢我。
如何valIDation两个string是否是使用ssh-keygen生成的密钥对?
nodeJs-legacy可用于Fedora 23?
在bash中有什么注射漏洞,如何防止它们?
os.chdir工作一次,之后再打不工作; python脚本
是否有任何C API从linux的完整path中提取基本文件名?
很可能是OOM杀手 。 如果你真的真的想要保持超出它的范围,那么你的进程将-17写入/proc/self/oom_adj 。 警告:内核通常知道更好。 逃避OOM杀手可以实际上削弱您试图查询的相同RDBMS。 这将是一个恶性循环:)
你可能(相反)想要根据从/proc/loadavg和/proc/meminfo读取的内容错开查询。 如果你增加负载或交换指数,你需要退后一步,特别是作为后台进程:)
另外,在运行时监控IOWAIT 。 与系统引导时相比,这可以从/proc/stat平均值。 当你开始和你进步的时候记下它。
不幸的是,被称为OOM杀手的连环杀手并没有维护一个可以在解析内核消息之外访问的体数。
或者,你的cron作业不断地触及其分配堆的限制数量。 无论哪种方式,您的工作需要在适当的时候退后,或者在做任何工作之前防止自己的死亡(如上所述)。
作为一个方面说明,你可能不应该做你正在做的共享主机。 如果是那么大的话,那么到时候可以得到一个VPS(至少)你可以控制什么过程来做什么。
总结以上是内存溢出为你收集整理的php cli脚本挂起没有消息全部内容,希望文章能够帮你解决php cli脚本挂起没有消息所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)