1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#!/bin/bash
# load=`uptime|awk '{print $10}'|cut -d, -f1`
load=`uptime|perl -pe 's/.*: (\d+.\d+),.*/$1/'`
if which cpucheck > /dev/null;then
numcpu=`cpucheck|tail -1|awk '{print $6}'`
else
numcpu=`lscpu|grep "CPU.s.:"|awk '{print $2}'`
fi
lperc=`echo "100 * $load / $numcpu"|bc`
if [[ "x$MAX_ALLOWED_LOAD" == "x" ]]; then
max_load=50
else
max_load=$MAX_ALLOWED_LOAD
fi
if [[ $lperc -lt $max_load ]];then
echo "$@" | at now + 0 minutes
elif [[ "x$NBLAUNCHER" == "x" ]];then
echo "nbfind $@" | at now + 2 minutes
else
$NBLAUNCHER "$@"
fi
|
>
>
|
>
>
|
|
>
|
>
|
<
|
<
>
>
<
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
#!/bin/bash
# load=`uptime|awk '{print $10}'|cut -d, -f1`
load=`uptime|perl -pe 's/.*: (\d+.\d+),.*/$1/'`
if which cpucheck > /dev/null;then
numcpu=`cpucheck|tail -1|awk '{print $6}'`
elif which lscpu > /dev/null;then
numcpu=`lscpu|grep "CPU.s.:"|awk '{print $2}'`
else
numcpu=2
fi
# NB// max_load is in units of percent.
#
lperc=`echo "100 * $load / $numcpu"|bc`
if [[ "x$MAX_ALLOWED_LOAD" == "x" ]]; then
max_load=100
else
max_load=$MAX_ALLOWED_LOAD
fi
if [[ $lperc -lt $max_load ]];then
echo "Load acceptable: lperc=$lperc %, max_load=$max_load %, load=$load, numcpu=$numcpu, MAX_ALLOWED_LOAD=$MAX_ALLOWED_LOAD %"
echo "Starting command: \"$@\""
nbfake "$@"
else
# echo "Load too high: lperc=$lperc, max_load=$max_load, waiting two minutes before trying to run command: \"$@\""
echo "nbload $@" | at now + 2 minutes 2> /dev/null
fi
|