ADDED loadwatch/Makefile Index: loadwatch/Makefile ================================================================== --- /dev/null +++ loadwatch/Makefile @@ -0,0 +1,11 @@ + +all : launch-many queuefeeder queuefeeder-server + +launch-many : launch-many.scm + csc launch-many.scm + +queuefeeder : queuefeeder.scm + csc queuefeeder.scm + +queuefeeder-server : queuefeeder-server.scm + csc queuefeeder-server.scm Index: loadwatch/launch-many.scm ================================================================== --- loadwatch/launch-many.scm +++ loadwatch/launch-many.scm @@ -1,5 +1,7 @@ +(use posix) + (let loop ((count 0)) (if (> count 500000) (print "DONE") (let ((cmd (conc "./queuefeeder xena:22022 bsub ./testopenlava.sh " count " " (random 30)))) (print "Running: " cmd) Index: loadwatch/queuefeeder-server.scm ================================================================== --- loadwatch/queuefeeder-server.scm +++ loadwatch/queuefeeder-server.scm @@ -92,11 +92,11 @@ (set! success #f))))) "ping")) (timeout (make-thread (lambda () (let loop ((count 0)) (thread-sleep! 1) - (print "still waiting after count seconds...") + (print "still waiting after " count " seconds...") (if (and keepwaiting (< count 10)) (loop (+ count 1)))) (if keepwaiting (begin (print "timeout waiting for ping") @@ -122,20 +122,20 @@ (define *current-delay-mutex* (make-mutex)) ;; update the *current-delay* value every minute or QUEUE_CHK_DELAY seconds (thread-start! (make-thread (lambda () - (let ((delay-time (string->number (or (get-environment-variable "QUEUE_CHK_DELAY") "60")))) + (let ((delay-time (string->number (or (get-environment-variable "QUEUE_CHK_DELAY") "30")))) (let loop () (with-input-from-pipe cmd (lambda () (let* ((val (read)) - (droop-val (if (number? val)(/ val 50) #f))) - ;; val is number of jobs in queue. Use a linear droop of val/50 + (droop-val (if (number? val)(/ val 500) #f))) + ;; val is number of jobs in queue. Use a linear droop of val/40 (mutex-lock! *current-delay-mutex*) - (set! *current-delay* (/ (or droop-val 100) 50)) + (set! *current-delay* (or droop-val 30)) ;; (/ (or droop-val 100) 50)) (mutex-unlock! *current-delay-mutex*) (print "droop-val=" droop-val) (thread-sleep! delay-time)))) (loop)))))) Index: loadwatch/queuefeeder.scm ================================================================== --- loadwatch/queuefeeder.scm +++ loadwatch/queuefeeder.scm @@ -53,14 +53,15 @@ ;; (nn-close req) ;; (exit)) ;; (thread-start! (lambda () - (thread-sleep! 20) + (thread-sleep! 60) (print "Give up on waiting for the server") (nn-close req) - (exit))) + ;; (exit) + )) (thread-join! (thread-start! (lambda () (print (client-send-receive req (conc (current-user-name) "@" (get-host-name))))))) (process-execute (car cmd) (cdr cmd))