2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
|
(first (car loadavg))
(next (cadr loadavg))
(adjmaxload (* maxload (max 1 numcpus))) ;; possible bug where
;; numcpus (or could be
;; maxload) is zero,
;; crude fallback is to
;; at least use 1
(loadjmp (- first (if (> next (* numcpus 0.7))
0
next))) ;; we will force a conservative calculation any time next is large.
;; add some randomness to the time to break any alignment
;; where netbatch dumps many jobs to machines simultaneously
(adjwait (min (+ 300 (random 10)) (abs (* (+ (random 10)
(/ (- 1000 count) 10)
waitdelay)
(- first adjmaxload) )) )))
;; let's let the user know once in a long while that load checking
|
|
>
|
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
|
(first (car loadavg))
(next (cadr loadavg))
(adjmaxload (* maxload (max 1 numcpus))) ;; possible bug where
;; numcpus (or could be
;; maxload) is zero,
;; crude fallback is to
;; at least use 1
(loadjmp (- first (if (> next (* numcpus 0.7)) ;; could do something with average of first and next?
0
next))) ;; we will force a conservative calculation any time next is large.
(first-next-avg (/ (+ first next) 2))
;; add some randomness to the time to break any alignment
;; where netbatch dumps many jobs to machines simultaneously
(adjwait (min (+ 300 (random 10)) (abs (* (+ (random 10)
(/ (- 1000 count) 10)
waitdelay)
(- first adjmaxload) )) )))
;; let's let the user know once in a long while that load checking
|