Overview
Comment: | added server/load-limit configuration option to set server start threshold at specified normalized max load, defaulting to 0.9 |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | v1.64 |
Files: | files | file ages | folders |
SHA1: |
8c926556c4b9fc73194be8b0089c267b |
User & Date: | bjbarcla on 2017-07-05 18:15:24 |
Other Links: | branch diff | manifest | tags |
Context
2017-07-05
| ||
18:18 | bumped version check-in: 16723fd972 user: bjbarcla tags: v1.64 | |
18:15 | added server/load-limit configuration option to set server start threshold at specified normalized max load, defaulting to 0.9 check-in: 8c926556c4 user: bjbarcla tags: v1.64 | |
17:43 | committed emergency patch 3 - load limit for starting server check-in: 43a8a24d6e user: bjbarcla tags: v1.64 | |
Changes
Modified common.scm from [fe27a287b6] to [f91f68035e].
︙ | ︙ | |||
1489 1490 1491 1492 1493 1494 1495 | (first (car loadavg)) (next (cadr loadavg)) (adjload (* maxload numcpus)) (loadjmp (- first next))) (cond ((and (> first adjload) (> count 0)) | | | 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 | (first (car loadavg)) (next (cadr loadavg)) (adjload (* maxload numcpus)) (loadjmp (- first next))) (cond ((and (> first adjload) (> count 0)) (debug:print-info 0 *default-log-port* "waiting " waitdelay " seconds due to load " first " exceeding normalized max of " maxload "(adjusted load: " adjload ") " (if msg msg "")) (thread-sleep! waitdelay) (common:wait-for-cpuload maxload numcpus waitdelay count: (- count 1))) ((and (> loadjmp numcpus) (> count 0)) (debug:print-info 0 *default-log-port* "waiting " waitdelay " seconds due to load jump " loadjmp " > numcpus " numcpus (if msg msg "")) (thread-sleep! waitdelay) (common:wait-for-cpuload maxload numcpus waitdelay count: (- count 1)))))) |
︙ | ︙ |
Modified emergency-patch-3.scm from [ccea978ff9] to [73e5520573].
︙ | ︙ | |||
22 23 24 25 26 27 28 29 30 31 32 33 34 35 | ;; (load "/p/foundry/env/pkgs/megatest/1.64/19/share/epatch-2.so"))) ;; ;; to productize patch: ;;;;;;;;;;;;;;;;;;;;;;;;; ;; (include "common_records.scm") (include "key_records.scm") (include "db_records.scm") (include "run_records.scm") (include "test_records.scm") | > | 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | ;; (load "/p/foundry/env/pkgs/megatest/1.64/19/share/epatch-2.so"))) ;; ;; to productize patch: ;;;;;;;;;;;;;;;;;;;;;;;;; ;; (use directory-utils regex) (include "common_records.scm") (include "key_records.scm") (include "db_records.scm") (include "run_records.scm") (include "test_records.scm") |
︙ | ︙ |
Modified server.scm from [8046a654d7] to [d90e3727cd].
︙ | ︙ | |||
110 111 112 113 114 115 116 | (logfile (conc areapath "/logs/server.log")) ;; -" curr-pid "-" target-host ".log")) (cmdln (conc (common:get-megatest-exe) " -server " (or target-host "-") (if (equal? (configf:lookup *configdat* "server" "daemonize") "yes") " -daemonize " "") ;; " -log " logfile " -m testsuite:" testsuite)) ;; (conc " >> " logfile " 2>&1 &"))))) | | > | | 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | (logfile (conc areapath "/logs/server.log")) ;; -" curr-pid "-" target-host ".log")) (cmdln (conc (common:get-megatest-exe) " -server " (or target-host "-") (if (equal? (configf:lookup *configdat* "server" "daemonize") "yes") " -daemonize " "") ;; " -log " logfile " -m testsuite:" testsuite)) ;; (conc " >> " logfile " 2>&1 &"))))) (log-rotate (make-thread common:rotate-logs "server run, rotate logs thread")) (load-limit (configf:lookup-number *configdat* "server" "load-limit" default: 0.9))) ;; we want the remote server to start in *toppath* so push there (push-directory areapath) (debug:print 0 *default-log-port* "INFO: Trying to start server (" cmdln ") ...") (thread-start! log-rotate) ;; host.domain.tld match host? (if (and target-host ;; look at target host, is it host.domain.tld or ip address and does it ;; match current ip or hostname (not (string-match (conc "("curr-host "|" curr-host"\\..*)") target-host)) (not (equal? curr-ip target-host))) (begin (debug:print-info 0 *default-log-port* "Starting server on " target-host ", logfile is " logfile) (setenv "TARGETHOST" target-host))) (setenv "TARGETHOST_LOGF" logfile) (common:wait-for-normalized-load load-limit " delaying server start due to load" remote-host: (get-environment-variable "TARGETHOST")) ;; do not try starting servers on an already overloaded machine, just wait forever (system (conc "nbfake " cmdln)) (unsetenv "TARGETHOST_LOGF") (if (get-environment-variable "TARGETHOST")(unsetenv "TARGETHOST")) (thread-join! log-rotate) (pop-directory))) ;; given a path to a server log return: host port startseconds |
︙ | ︙ |