Skip to content

Commit

Permalink
pass timestamps as status (#68)
Browse files Browse the repository at this point in the history
  • Loading branch information
wjsi authored and hekaisheng committed Dec 26, 2018
1 parent ddd0545 commit 85decf8
Show file tree
Hide file tree
Showing 7 changed files with 19 additions and 17 deletions.
5 changes: 2 additions & 3 deletions mars/scheduler/graph.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
import time
import os
from collections import deque, defaultdict
from datetime import datetime

from .assigner import AssignerActor
from .resource import ResourceActor
Expand Down Expand Up @@ -171,7 +170,7 @@ def execute_graph(self):
"""
Start graph execution
"""
self._start_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
self._start_time = time.time()
self.state = GraphState.PREPARING

try:
Expand Down Expand Up @@ -630,7 +629,7 @@ def mark_terminal_finished(self, op_key, final_state=None):
self._terminated_tensors.add(tensor_key)
if len(self._terminated_tensors) == len(self._target_tensor_chunk_ops):
self.state = self.final_state if self.final_state is not None else GraphState.SUCCEEDED
self._end_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
self._end_time = time.time()

def get_state(self):
return self.state
Expand Down
8 changes: 2 additions & 6 deletions mars/scheduler/resource.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,10 @@
# limitations under the License.

import copy
import time
import logging
import os
import time
from collections import defaultdict
from datetime import datetime, timedelta

from .utils import SchedulerActor
from ..config import options
Expand Down Expand Up @@ -49,15 +48,12 @@ def clean_worker(self):
"""
Remove worker when it does not update its status for a long time
"""
timeout = options.scheduler.status_timeout
for worker in list(self._meta_cache.keys()):
worker_meta = self._meta_cache[worker]
if 'update_time' not in worker_meta:
continue

last_time = datetime.strptime(worker_meta['update_time'], '%Y-%m-%d %H:%M:%S')
time_delta = timedelta(seconds=timeout)
if last_time + time_delta < datetime.now():
if time.time() - worker_meta['update_time'] > options.scheduler.status_timeout:
del self._meta_cache[worker]

self.ref().clean_worker(_tell=True, _delay=1)
Expand Down
4 changes: 2 additions & 2 deletions mars/web/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,8 +97,8 @@ def get_tasks_info(self):
task_desc['state'] = graph_ref.get_state().value
start_time, end_time, graph_size = graph_ref.get_graph_info()
task_desc['start_time'] = start_time
task_desc['end_time'] = end_time or 'N/A'
task_desc['graph_size'] = graph_size or 'N/A'
task_desc['end_time'] = end_time
task_desc['graph_size'] = graph_size

session_desc['tasks'][graph_key] = task_desc
return sessions
Expand Down
12 changes: 10 additions & 2 deletions mars/web/templates/task_list.html
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,16 @@ <h3>{{ sessions[session_id]['name'] }}</h3>
{% else %}
<td><a href="/task?session_id={{ session_id }}&task_id={{ task_id }}">{{ task_id }}</a></td>
{% endif %}
<td>{{ task_desc['start_time'] if 'start_time' in task_desc else 'N/A' }}</td>
<td>{{ task_desc['end_time'] if 'end_time' in task_desc else 'N/A' }}</td>
{% if task_desc['start_time'] is defined %}
<td>{{ task_desc['start_time'] | format_ts }}</td>
{% else %}
<td>N/A</td>
{% endif %}
{% if task_desc['end_time'] is defined %}
<td>{{ task_desc['end_time'] | format_ts }}</td>
{% else %}
<td>N/A</td>
{% endif %}
<td>{{ task_desc['graph_size'] if 'graph_size' in task_desc else 'N/A' }}</td>
<td>{{ task_desc['state'] if 'state' in task_desc else 'N/A'}}</td>
</tr>
Expand Down
2 changes: 1 addition & 1 deletion mars/web/templates/worker_detail.html
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@
</tr>
<tr>
<td>Update Time</td>
<td>{{ worker_metrics['update_time']}}</td>
<td>{{ worker_metrics['update_time'] | format_ts }}</td>
</tr>
</tbody>
</table>
Expand Down
2 changes: 1 addition & 1 deletion mars/web/templates/worker_list.html
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ <h2>Worker List</h2>
<td>{{ '%0.2f' % metrics['cpu_used'] }} / {{ metrics['cpu_total'] }}</td>
<td>{{ metrics['memory_used'] | readable_size }} / {{ metrics['memory_total'] | readable_size }}</td>
<td>{{ metrics['cached_hold'] | readable_size }} / {{ metrics['cached_total'] | readable_size }}</td>
<td>{{ worker_metrics[endpoint]['update_time'] }}</td>
<td>{{ worker_metrics[endpoint]['update_time'] | format_ts }}</td>
<td></td>
</tr>
{% endfor -%}
Expand Down
3 changes: 1 addition & 2 deletions mars/worker/status.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
import json
import time
import logging
from datetime import datetime
from collections import defaultdict

from .utils import WorkerActor, ExpMeanHolder
Expand Down Expand Up @@ -116,7 +115,7 @@ def collect_status(self):

meta_dict = dict()
meta_dict['hardware'] = metrics
meta_dict['update_time'] = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
meta_dict['update_time'] = time.time()
meta_dict['stats'] = dict()
meta_dict['slots'] = dict()

Expand Down

0 comments on commit 85decf8

Please sign in to comment.