如何找到Python脚本被杀死的原因?

2024-05-15 23:41:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我有大约一百万个文件(输出模拟输出)。我想在一个文件中存储它们的特定信息。我有一个到1米的for循环,我放了一个计数器来跟踪for循环的状态。它将是killed一些在875000到900000之间。我认为这可能是空间问题。 当我运行df -hdf /时,我大约有68G可用。 Python脚本被杀死的其他可能原因是什么?我怎样才能更深入地探索呢?在


Tags: 文件脚本信息dffor状态计数器空间
3条回答

在Linux系统上,检查dmesg的输出。如果进程被内核杀死,它会在那里得到解释。最可能的原因:内存不足或文件描述符不足。在

代码片段会有所帮助。但是,我想,你一次就把所有的文件加载到内存中,因为文件很大,可能会使内存膨胀,从而导致脚本死机。如果您的用例是从每个文件中获取特定的行/文本,我建议对模式使用re模块并相应地读取文件。在

请参考syslog。你可以在Ubuntu的/var/log/中获取syslog。syslog将提示您脚本失败的可能原因

通常,当程序的RAM用完时,您会得到killed消息(与您有足够的硬盘相反)。你应该把表放在主存上。运行top并查看程序占用的内存,或者使用guppy(https://pypi.python.org/pypi/guppy/)之类的工具以编程方式跟踪内存利用率。在

我可能会冒着这样一种猜测:在处理文件时,您正在创建一些大的内存数据结构,可能不会在遍历文件时取消分配它们。在

相关问题 更多 >