【问题标题】:Python script gets "killed"Python脚本被“杀死”
【发布时间】:2021-05-02 05:24:11
【问题描述】:

我遇到了一个 python 脚本被杀死的问题。直到两天前我一直使用这个脚本完全没有问题,然后它开始打印,代码没有任何变化,在中止执行之前字符串'killed'。 其他人曾尝试在他们的系统上运行相同的代码,但它运行良好,就像我在两天前之前所做的那样。

我已经阅读了一些类似的旧问题,但由于我的代码中的内存管理不善,我发现问题可能是内存不足问题。对我来说这听起来有点奇怪,因为直到几天前它还可以正常工作,而且问题只出现在我的系统上。

请问您对如何检查问题并找到可能的解决方案有任何想法吗?

Python 版本:Python 2.7.14+

系统:科学 Linux CERN 7

【问题讨论】:

  • “您对如何检查问题并找到可能的解决方案有任何想法吗?” - 我们需要更多信息才能做到这一点......对于初学者来说完整的错误。 killed 这个词的图像并没有提供任何关于正在发生的事情的线索。然后,首先发布您使用的操作系统、Python 版本以及代码的minimal reproducible example
  • killed 是我的错误信息。我没有扩展错误或回溯,这就是 python 打印出来的所有内容,没有其他要报告的内容。我有我所有的输出,然后在流产前killed。我不认为我的代码的最小可重现示例可能有用。该代码过去可以完美运行,并且没有任何更改就开始自我毁灭。我认为问题出在系统而不是代码上。
  • 可能是。请阅读问题并尝试客观地思考外部人员如何可能提供帮助...至少使用 Python 命令的实际 shell 的屏幕截图以及由此产生的错误将比绿色“杀死”图像更有帮助
  • 1.请在 shell 上运行“free -m”并粘贴其输出。 2. 请在 shell 上运行 pgrep -lf kill 并粘贴其输出。 3. 使用 strace 运行脚本并粘贴该输出。

标签: python linux python-2.7 out-of-memory


【解决方案1】:

在您的情况下,您正在处理的脚本很可能达到了它能够使用的 resources 数量的给定 limit,这取决于您的操作系统和其他参数,您是否正在使用脚本运行其他内容?还是有很多打开的文件等?

此类错误最可能的原因是超出内存使用量,这会迫使系统在分配更多启动失败时不承担风险并中断。也许您可以并行打印您正在使用的总内存,以了解正在发生的事情,因为您提供的信息不足以帮助您:

import os, psutil
process = psutil.Process(os.getpid())

那么:(对于python 3)

print(process.memory_info().rss) 

或:(对于 python 2.7)(已测试)

print(process.memory_info()[0])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-06
    • 2015-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-04
    • 1970-01-01
    相关资源
    最近更新 更多