Python 脚本在 Ubuntu 12.04 中被杀死

标签 python linux ubuntu memory out-of-memory

我目前正在尝试在 Ubuntu 12.04 上运行一个长时间运行的 python 脚本。该机器在 Digital Ocean Droplet 上运行。它没有可见的内存泄漏(顶部显示恒定内存)。正常运行(没有未捕获的异常并且使用的内存没有增加)大约 12 小时后,脚本被终止。

系统日志中与脚本相关的唯一消息是

9月11日06:35:06本地主机内核:[13729692.901711]选择19116(python),adj 0,大小62408,杀死

9 月 11 日 06:35:06 localhost 内核:[13729692.901713] 发送 sigkill 到 19116 (python),adj 0,大小 62408

我之前在 Ubuntu 12.04 中(使用其他脚本)遇到过类似的问题,但日志中包含了脚本被 oom-killer 杀死的附加信息。

这些脚本以及这个脚本最多占用 30% 的可用内存。

由于我在实际代码中找不到任何问题,这可能是操作系统问题吗?如果是这样,我该如何修复它?

最佳答案

你的进程确实被 oom-killer 杀死了。日志消息“select … tokill”暗示了这一点。

可能您的脚本没有做任何错误,但它被选择杀死,因为它使用了最多的内存。

您必须提供更多的可用内存,方法是添加更多(虚拟)RAM(如果可以)、将其他服务从这台计算机移至另一台计算机,或者尝试优化脚本中的内存使用情况。

参见例如Debug out-of-memory with /var/log/messages用于调试提示。您可以尝试避免脚本被杀死:How to set OOM killer adjustments for daemons permanently?但经常随意杀掉某个进程可能会导致整机处于不稳定状态。最后,您必须确定内存要求,然后确保有足够的内存用于峰值负载。

关于Python 脚本在 Ubuntu 12.04 中被杀死,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25804260/

相关文章:

python - 对于运行 Web 应用程序的 Raspberry Pi,我应该使用哪个 Python 版本?

python - 用 python 平均多个 netCDF4 文件

python - 如何根据日期对x轴进行切片

linux - 排除目录并删除旧备份

linux - 为什么 Docker COPY 不会更改文件权限? (--chmod)

python - 如何使用 Python 在 Gtk3 中显示 png 图像?

c++ - 将现有函数复制到内存缓冲区

php - Symfony 2 落后于 ubuntu 并且速度太慢

scala - 如何在 scala/etcd 中使用 HttpDelete 和 HttpPut

对语言环境和编码感到困惑