我正在编写一个Python
程序来分析日志文件。因此,基本上我有大约30000个中型日志文件,并且我的Python
脚本旨在对每个日志文件执行一些简单的(逐行)分析。处理一个文件大约需要不到5秒的时间。
因此,一旦设置了处理程序,我就将其留在那里,大约14个小时后,我的Python
脚本在分析了一个日志文件后就暂停了。似乎它尚未写入文件系统来分析此文件的输出,仅此而已。没有更多的程序。
我检查了内存使用情况,看起来不错(小于1G),我也尝试写入文件系统(touch test
),它也可以正常工作。所以我的问题是,我应该如何继续调试问题?谁能对此发表一些想法?我希望这不是太笼统。谢谢。
答案 0 :(得分:3)
答案 1 :(得分:1)
使用以下命令尝试使用此工具https://github.com/khamidou/lptrace:
sudo python lptrace -p <process_id>
它将打印程序调用的每个python函数,并可以帮助您了解程序卡在哪里或处于无限循环中。
如果它不输出任何东西,那很可能会使您的程序卡住,所以请尝试
pstack <process_id>
检查堆栈跟踪并找出卡在哪里。 pstack 的输出是c帧,但是我相信您可以找到某种有用的方法来解决您的问题。