1

我的dask groupby脚本失败(Memory Error),所以我开始调试脚本。我在单机电脑上运行。
我已经更新loggingconfig.yaml文件中的
logging: distributed: debug bokeh: debug tornado: info

我正在运行具有以下更新 的dask 分布式示例计算:

from distributed import LocalCluster  
c=LocalCluster()  

和一个更新的脚本,range修改为range(10000).

在脚本运行(并成功完成)时,我会在其中看到以下日志, 这些日志会不断Jupyter Notebook重复,直到脚本完成。

bokeh.server.tornado - 调试 - [pid 3088] 0 个客户端已连接
bokeh.server.tornado - 调试 - [pid 3088] /system 有 0 个会话,其中 0 个未使用 bokeh.server.tornado - 调试 - [pid 3088] /stealing 有0 个会话,0 个未使用的 bokeh.server.tornado - 调试 - [pid 3088] /workers 有 0 个会话,0 个未使用的 bokeh.server.tornado - 调试 - [pid 3088] /events 有 0 个会话,0 个未使用的 bokeh.server.tornado - 调试 - [pid 3088] /counters 有 0 个会话,其中 0 个未使用的 bokeh.server.tornado - 调试 - [pid 3088] /tasks 有 0 个会话,其中 0 个未使用的 bokeh.server.tornado - 调试 - [pid 3088] /status 有0 个会话,0 个未使用

为什么我看不到任何正在运行的工人?

运行时我得到以下日志c = LocalCluster()

bokeh.server.server - 信息 - 启动 Bokeh 服务器版本 0.12.4
bokeh.server.server - 警告 - 主机通配符“ ”可能会将应用程序暴露给 HTTP 主机标头攻击。主机通配符只能用于测试目的。bokeh.server.server - 警告 - 主机通配符“ ”可以将应用程序暴露给 HTTP 主机标头攻击。主机通配符只能用于测试目的。bokeh.server.tornado - 调试 - 允许的主机头:[' '] bokeh.server.tornado - 调试 - 这些主机来源可以连接到 websocket:[' '] bokeh.server.tornado - 调试 - 模式是:散景。 server.tornado - DEBUG - [('/system/?', bokeh.server.tornado - DEBUG - , bokeh.server.tornado - DEBUG - {'application_context': , bokeh.
'bokeh_websocket_path': '/system/ws'}), bokeh.server.tornado - DEBUG - ('/system/ws', bokeh.server.tornado - DEBUG - , bokeh.server.tornado - DEBUG -
{'application_context' : , bokeh.server.tornado - 调试 -
'bokeh_websocket_path': '/system/ws'}), bokeh.server.tornado - 调试 - ('/system/autoload.js', bokeh.server.tornado - 调试 - , bokeh.server.tornado - DEBUG - {'application_context': , bokeh.server.tornado - DEBUG -
'bokeh_websocket_path': '/system/ws'}), bokeh.server.tornado - DEBUG - ('/stealing/?' , bokeh.server.tornado - 调试 - , bokeh.server.tornado - 调试 - {'application_context': , bokeh.server.tornado - 调试 -
'bokeh_websocket_path': '/stealing/ws'}), bokeh.server.tornado - DEBUG - ('/stealing/ws', bokeh.server.tornado - DEBUG - , bokeh.server.tornado - DEBUG -
{'application_context' : , bokeh.server.tornado - 调试 -
'bokeh_websocket_path': '/stealing/ws'}), bokeh.server.tornado - 调试 - ('/stealing/autoload.js', bokeh.server.tornado - 调试 - , bokeh.server.tornado - DEBUG - {'application_context': , bokeh.server.tornado - DEBUG -
'bokeh_websocket_path': '/stealing/ws'}), bokeh.server.tornado - DEBUG - ('/workers/?' , bokeh.server.tornado - 调试 - , bokeh.server.tornado - 调试 - {'application_context': , bokeh.server.tornado - 调试 -
'bokeh_websocket_path': '/workers/ws'}), bokeh.server.tornado - DEBUG - ('/workers/ws', bokeh.server.tornado - DEBUG - , bokeh.server.tornado - DEBUG -
{'application_context' : , bokeh.server.tornado - 调试 -
'bokeh_websocket_path': '/workers/ws'}), bokeh.server.tornado - 调试 - ('/workers/autoload.js', bokeh.server.tornado - 调试 - , bokeh.server.tornado - DEBUG - {'application_context': , bokeh.server.tornado - DEBUG -
'bokeh_websocket_path': '/workers/ws'}), bokeh.server.tornado - DEBUG - ('/events/?' , bokeh.server.tornado - 调试 - , bokeh.server.tornado - 调试 - {'application_context': , bokeh.server.tornado - 调试 -
'bokeh_websocket_path': '/events/ws'}), bokeh.server.tornado - DEBUG - ('/events/ws', bokeh.server.tornado - DEBUG - , bokeh.server.tornado - DEBUG -
{'application_context' : , bokeh.server.tornado - 调试 -
'bokeh_websocket_path': '/events/ws'}), bokeh.server.tornado - 调试 - ('/events/autoload.js', bokeh.server.tornado - 调试 - , bokeh.server.tornado - DEBUG - {'application_context': , bokeh.server.tornado - DEBUG -
'bokeh_websocket_path': '/events/ws'}), bokeh.server.tornado - DEBUG - ('/counters/?' , bokeh.server.tornado - 调试 - , bokeh.server.tornado - 调试 - {'application_context': , bokeh.server.tornado - 调试 -
'bokeh_websocket_path': '/counters/ws'}), bokeh.server.tornado - DEBUG - ('/counters/ws', bokeh.server.tornado - DEBUG - , bokeh.server.tornado - DEBUG -
{'application_context' : , bokeh.server.tornado - 调试 -
'bokeh_websocket_path': '/counters/ws'}), bokeh.server.tornado - 调试 - ('/counters/autoload.js', bokeh.server.tornado - 调试 - , bokeh.server.tornado - DEBUG - {'application_context': , bokeh.server.tornado - DEBUG -
'bokeh_websocket_path': '/counters/ws'}), bokeh.server.tornado - DEBUG - ('/tasks/?' , bokeh.server.tornado - 调试 - , bokeh.server.tornado - 调试 - {'application_context': , bokeh.server.tornado - 调试 -
'bokeh_websocket_path': '/tasks/ws'}), bokeh.server.tornado - DEBUG - ('/tasks/ws', bokeh.server.tornado - DEBUG - , bokeh.server.tornado - DEBUG -
{'application_context' : , bokeh.server.tornado - 调试 -
'bokeh_websocket_path': '/tasks/ws'}), bokeh.server.tornado - 调试 - ('/tasks/autoload.js', bokeh.server.tornado - 调试 - , bokeh.server.tornado - DEBUG - {'application_context': , bokeh.server.tornado - DEBUG -
'bokeh_websocket_path': '/tasks/ws'}), bokeh.server.tornado - DEBUG - ('/status/?' , bokeh.server.tornado - 调试 - , bokeh.server.tornado - 调试 - {'application_context': , bokeh.server.tornado - 调试 -
'bokeh_websocket_path': '/status/ws'}), bokeh.server.tornado - DEBUG - ('/status/ws', bokeh.server.tornado - DEBUG - , bokeh.server.tornado - DEBUG -
{'application_context' : , bokeh.server.tornado - 调试 -
'bokeh_websocket_path': '/status/ws'}), bokeh.server.tornado - 调试 - ('/status/autoload.js', bokeh.server.tornado - 调试 - , bokeh.server.tornado - DEBUG - {'application_context': , bokeh.server.tornado - DEBUG -
'bokeh_websocket_path': '/status/ws'}), bokeh.server.tornado - DEBUG - ('/?', bokeh .server.tornado - DEBUG - , bokeh.server.tornado - DEBUG - {'applications': {'/counters': , bokeh.server.tornado - DEBUG -
'/events': , bokeh.server.tornado - 调试 -
'/status': , bokeh.server.tornado - 调试 -
'/stealing': , bokeh.server.tornado - 调试 -
'/system': , bokeh.server.tornado - 调试 -
'/tasks': , bokeh.server.tornado - 调试 -
'/workers': }, bokeh .server.tornado - DEBUG -
'prefix': '', bokeh.server.tornado - DEBUG - 'use_redirect': True}), bokeh.server.tornado - DEBUG - ('/static/(.*)', bokeh .server.tornado - 调试 - )]

4

1 回答 1

1

您看到的日志消息来自 Bokeh 诊断仪表板。他们基本上是在说没有人在看诊断网页。您可能希望降低 Bokeh 日志记录的详细程度。我认为这些信息与您无关。

对于任何用户来说,调试级别的日志记录几乎总是过于冗长。开发人员在调试时往往会使用它。

于 2017-07-25T11:52:53.513 回答