2017-12-13 2 views
0

Ich verwende dask.distributed, um viele Jobs über Worker zu planen. Die Dokumentation zeigt, wie Profilinformationen von der Bokeh-Schnittstelle here erhalten werden.Holen Sie dask.distributed Profiling Zeitinformationen?

Es zeigt auch, dass man die rohen Profilinformationen unter Aufruf client.profile() erhalten kann. Wenn ich diese Methode aufrufen, scheint die Profilierungsinformation jedoch nicht die durchschnittliche Laufzeit eines Prozesses zu enthalten, während sie in der Boken-Schnittstelle vorhanden ist. Gibt es eine Möglichkeit, diese in roher Form zu erhalten?

Auch profile.py erläutert die Struktur des Profils Informationen hier:

We represent this tree as a nested dictionary with the following form: 

{ 
'identifier': 'root', 
'description': 'A long description of the line of code being run.', 
'count': 10 # the number of times we have seen this line 
'children': { # callers of this line. Recursive dicts 
    'ident-b': {'description': ... 
       'identifier': 'ident-a', 
       'count': ... 
       'children': {...}}, 
    'ident-b': {'description': ... 
       'identifier': 'ident-b', 
       'count': ... 
       'children': {...}}} 
} 

Es gibt keine Erwähnung von hier Timing-Informationen. Vielen Dank!

Antwort

0

Sie sollten den Wert 'count' mit dem Wert profile-interval in Ihrer Datei config.yaml vergleichen. Der profile-interval Wert ist in Millisekunden und bestimmt die Häufigkeit, mit der wir den arbeitenden Thread abtasten. Wenn also das Profilintervall 10 war und Sie 50 Counts einer bestimmten Zeile gesehen haben, war diese Zeile wahrscheinlich für etwa 500ms * -Threads aktiv.