【问题标题】:Check if process is hanging in Jupyter iPython notebook检查进程是否挂在 Jupyter iPython 笔记本中
【发布时间】:2016-04-18 20:00:12
【问题描述】:

我在 iPython 笔记本中运行的进程持续运行了一个小时。该过程是一个大型数据帧的操作,6400col x 200000rows,解释here。看来该单元仍在运行In:[*],但我想知道它是挂起还是高效。插入打印语句只能在一定程度上起作用(可能是由于 iPython 中打印语句的某些限制)。

我正在使用来自 Anaconda 2.5.0(64 位)的 Python 3.5.1 和 IPython 4.1.2。

【问题讨论】:

  • 如果你有一个循环,你可以每第 n 步打印一个检查,如if i % 1000 == 0。如果它是比您的代码更深入的一些长时间运行的操作,那么就没有简单的方法来区分挂起和高效。
  • 我在网页抓取方面遇到了类似的问题,并且在if i %.... 打印声明方面取得了有限的成功。我的解决方法是将这些步骤分解为迭代循环的部分,并为循环的每个步骤包含打印语句,这很好。希望这会有所帮助...

标签: python-3.x ipython jupyter jupyter-notebook


【解决方案1】:

一项检查是从 Jupyter Home 启动终端并运行 top 或其他类似命令以查看正在运行的进程及其利用率。将此与某种打印语句配对,您可以发现许多挂起或其他问题。

【讨论】:

  • 问题是它显示 Jupyter 内核正在运行,无论单元是否正在执行/运行
  • @ThomasMatthew 是的,但是 CPU 使用率和其他统计数据是多少? Top 不会捕获所有挂起,但它会为您提供有关正在发生的事情的更多信息。例如,如果您看到 CPU% 保持不变,那么您就会知道无论它在做什么(只是需要一段时间才能完成或陷入循环),它都不会陷入死胡同。您还可以观察内存使用情况,以了解它运行时间越长的响应情况。
【解决方案2】:

使用您的操作系统提供的工具来检查 CPU 使用率。如果您的 CPU 中的一个被固定,则它正在运行。否则它可能会挂起。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-21
    • 1970-01-01
    • 2013-03-02
    • 1970-01-01
    • 2015-10-15
    • 1970-01-01
    • 2015-05-12
    • 1970-01-01
    相关资源
    最近更新 更多