Python 脚本在 Ubuntu 12.04 中被杀死

原文 标签 python linux ubuntu memory out-of-memory

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

syslog 中与脚本相关的唯一消息是

Sep 11 06:35:06 localhost kernel: [13729692.901711] 选择 19116 (python), adj 0, size 62408, to kill

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

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

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

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

最佳答案

您的进程确实被 oom-killer 杀死了。日志消息“select ... to kill”暗示了这一点。

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

您必须提供更多可用内存,如果可以的话,通过添加更多(虚拟)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 - 将积分分解为椭圆积分

python - 在 Android 上使用 bash shell 打开浏览器后尝试输入搜索数据

linux - 使用 oprofile 进行内核分析的 Ubuntu 2.6.35 vmlinux 镜像

python - Ubuntu 16.04/Django - gunicorn - Worker 无法启动

python - 计算嵌套列表python中的数据

python - 带有 pytest 标记的 python 脚本的 Sphinx 文档

linux - `gulp` 命令在 Linux 上无法按预期工作

ubuntu - 为 x86 构建 FreeRTOS

Linux USB驱动probe()问题

linux - 从 linux redhat 访问 windows 主机上的 svn 存储库