首页 > 解决方案 > Python脚本在google vm上手动运行,但如果放入while true循环以进行调度,则会被杀死

问题描述

我有一个 python 脚本,当我通过谷歌 vm 运行它时运行良好python3 script.py &,但是当我用 a 分离它screen并让它自己运行几次迭代时,我回来检查它并被杀死。

我认为这可能与高 cpu 使用率有关,我尝试做一个真正的循环并让程序休眠一段时间,然后我尝试使用apscheduler或只是scheduler或什至nice -n 19 python3 script.py但都没有成功,问题是脚本似乎第一次甚至前两次运行良好,但随后被杀死。

这是我运行脚本的方式,无论如何我可以在不增加 CPU 的情况下解决这个问题吗?我想我在vm上有一台小机器。

schedule.every(10).minute.do(scheduled_job)
print('STARTED PROGRAM')

while True:
    schedule.run_pending()
    time.sleep(1)

标签: pythonpython-3.xgoogle-cloud-platformscheduled-taskscpu-usage

解决方案


用于/usr/bin/time --verbose python3 script.py测量单个作业运行使用的内存,或使用ps axutop为连续循环任务执行此操作。确认您的 malloc 少于 VM 容器同意提供的。

如果您在小型 linux 主机上测试时看到您的进程被终止,请在日志中查找线索:$ zgrep oom /var/log/{syslog,messages}*


推荐阅读