@cryptotaxi247 / netdata-1 / commits / 99b7c8555

reduced the time needed for each loop to 1/4; in my machine went from 22ms to 5ms per loop

Costa Tsaousis (ktsaou) committed Apr 12, 2014 at 03:03 UTC 99b7c855552849c58f6a0159f3b594681b0fb892
1 file changed +53 -20
tc-all.sh
+53 -20
@@ -1,33 +1,66 @@
1 #!/bin/sh
2
3 +echo "MYPID $$"
4 +
5 +# check if we have a valid number for interval
6 t=$1
4 -x=$(( t + 1 - 1 ))
5 -if [ "$x" -eq 0 ]
7 +sleep_time=$(( t + 1 - 1 ))
8 +if [ "$sleep_time" -eq 0 ]
9 then
7 - x=1
10 + sleep_time=1
11 fi
12
10 -echo "MYPID $$"
13 +devices=
14 +fix_names=
15 +show_tc() {
16 + local x="$1"
17 +
18 + echo "BEGIN $x"
19 +
20 + /sbin/tc -s class show dev $x
21 +
22 + # check FireQOS names for classes
23 + if [ ! -z "$fix_names" -a -f /var/run/fireqos/ifaces/$x ]
24 + then
25 + name="`cat /var/run/fireqos/ifaces/$x`"
26 + echo "SETDEVICENAME $name"
27 +
28 + interface_classes=
29 + . /var/run/fireqos/$name.conf
30 + for x in $interface_classes_monitor
31 + do
32 + echo "SETCLASSNAME $x"
33 + done
34 + fi
35 + echo "END $x"
36 +}
37
38 +all_devices() {
39 + cat /proc/net/dev | grep ":" | cut -d ':' -f 1 | while read dev
40 + do
41 + l=`/sbin/tc class show dev $dev | wc -l`
42 + [ $l -ne 0 ] && echo $dev
43 + done
44 +}
45 +
46 +names_every=$((120 / sleep_time))
47 +c=0
48 while [ 1 ]
49 do
14 - /sbin/tc qdisc show | cut -d ' ' -f 5 | sort -u | while read x
50 + fix_names=
51 + c=$((c + 1))
52 +
53 + if [ $c -le 1 -o $c -ge $names_every ]
54 + then
55 + c=1
56 + fix_names="YES"
57 + devices="`all_devices`"
58 + fi
59 +
60 + for d in $devices
61 do
16 - echo "BEGIN $x"
17 - /sbin/tc -s class show dev $x
18 - if [ -f /var/run/fireqos/ifaces/$x ]
19 - then
20 - name="`cat /var/run/fireqos/ifaces/$x`"
21 - echo "SETDEVICENAME $name"
22 - interface_classes=
23 - . /var/run/fireqos/$name.conf
24 - for x in $interface_classes_monitor
25 - do
26 - echo "SETCLASSNAME $x"
27 - done
28 - fi
29 - echo "END $x"
62 + show_tc $d
63 done
64
32 - sleep $x
65 + sleep $sleep_time
66 done