Committed by
Gerrit Code Review
Simplified onos-wipe-out shell tool
Added instrumentation to FlowObjectiveManager to confirm/deny time-cost of pipeliner setup. Change-Id: I93bcd786b0a7cb2b953a23c51f82a20d915d8d1a
Showing
2 changed files
with
25 additions
and
5 deletions
... | @@ -282,9 +282,11 @@ public class FlowObjectiveManager implements FlowObjectiveService { | ... | @@ -282,9 +282,11 @@ public class FlowObjectiveManager implements FlowObjectiveService { |
282 | switch (event.type()) { | 282 | switch (event.type()) { |
283 | case MASTER_CHANGED: | 283 | case MASTER_CHANGED: |
284 | log.debug("mastership changed on device {}", event.subject()); | 284 | log.debug("mastership changed on device {}", event.subject()); |
285 | + long start = startWatch(); | ||
285 | if (deviceService.isAvailable(event.subject())) { | 286 | if (deviceService.isAvailable(event.subject())) { |
286 | setupPipelineHandler(event.subject()); | 287 | setupPipelineHandler(event.subject()); |
287 | } | 288 | } |
289 | + stopWatch(start); | ||
288 | break; | 290 | break; |
289 | case BACKUPS_CHANGED: | 291 | case BACKUPS_CHANGED: |
290 | break; | 292 | break; |
... | @@ -303,10 +305,12 @@ public class FlowObjectiveManager implements FlowObjectiveService { | ... | @@ -303,10 +305,12 @@ public class FlowObjectiveManager implements FlowObjectiveService { |
303 | case DEVICE_AVAILABILITY_CHANGED: | 305 | case DEVICE_AVAILABILITY_CHANGED: |
304 | log.debug("Device either added or availability changed {}", | 306 | log.debug("Device either added or availability changed {}", |
305 | event.subject().id()); | 307 | event.subject().id()); |
308 | + long start = startWatch(); | ||
306 | if (deviceService.isAvailable(event.subject().id())) { | 309 | if (deviceService.isAvailable(event.subject().id())) { |
307 | log.debug("Device is now available {}", event.subject().id()); | 310 | log.debug("Device is now available {}", event.subject().id()); |
308 | setupPipelineHandler(event.subject().id()); | 311 | setupPipelineHandler(event.subject().id()); |
309 | } | 312 | } |
313 | + stopWatch(start); | ||
310 | break; | 314 | break; |
311 | case DEVICE_UPDATED: | 315 | case DEVICE_UPDATED: |
312 | break; | 316 | break; |
... | @@ -326,6 +330,24 @@ public class FlowObjectiveManager implements FlowObjectiveService { | ... | @@ -326,6 +330,24 @@ public class FlowObjectiveManager implements FlowObjectiveService { |
326 | } | 330 | } |
327 | } | 331 | } |
328 | 332 | ||
333 | + // Temporary mechanism to monitor pipeliner setup time-cost; there are | ||
334 | + // intermittent time where this takes in excess of 2 seconds. Why? | ||
335 | + private long totals = 0, count = 0; | ||
336 | + private static final long LIMIT = 1; | ||
337 | + | ||
338 | + private long startWatch() { | ||
339 | + return System.currentTimeMillis(); | ||
340 | + } | ||
341 | + | ||
342 | + private void stopWatch(long start) { | ||
343 | + long duration = System.currentTimeMillis() - start; | ||
344 | + totals += duration; | ||
345 | + count += 1; | ||
346 | + if (duration > LIMIT) { | ||
347 | + log.info("Pipeline setup took {} ms; avg {} ms", duration, totals / count); | ||
348 | + } | ||
349 | + } | ||
350 | + | ||
329 | // Processing context for initializing pipeline driver behaviours. | 351 | // Processing context for initializing pipeline driver behaviours. |
330 | private class InnerPipelineContext implements PipelinerContext { | 352 | private class InnerPipelineContext implements PipelinerContext { |
331 | @Override | 353 | @Override | ... | ... |
... | @@ -3,9 +3,7 @@ | ... | @@ -3,9 +3,7 @@ |
3 | # Wipes out all data from the ONOS cluster. Temporary until wipe-out is fixed. | 3 | # Wipes out all data from the ONOS cluster. Temporary until wipe-out is fixed. |
4 | # ----------------------------------------------------------------------------- | 4 | # ----------------------------------------------------------------------------- |
5 | 5 | ||
6 | -[ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1 | 6 | +for node in ${ONOS_INSTANCES:-$OCI}; do |
7 | -. $ONOS_ROOT/tools/build/envDefaults | 7 | + onos $node wipe-out please |
8 | - | ||
9 | -while ! onos-check-summary $OCI '.*' 0 0 0 0 0; do | ||
10 | - onos $OCI wipe-out please | ||
11 | done | 8 | done |
9 | +onos-check-summary $OCI '.*' 0 0 0 0 0 | ... | ... |
-
Please register or login to post a comment