summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cady <d@cryptonomic.net>2021-10-19 13:53:11 -0400
committerAndrew Cady <d@cryptonomic.net>2021-10-19 13:53:11 -0400
commit26da61aa10616ba044a31fd155501d13b6e077c4 (patch)
tree5015a6bcd103b3121c619b108f382989baee3d63
parent0f2b88b375f00e3e62e8d6936d0a88c515925da3 (diff)
use total of all webcontent processes to decide io throttle
-rwxr-xr-xioslay-firefox49
1 files changed, 31 insertions, 18 deletions
diff --git a/ioslay-firefox b/ioslay-firefox
index d56553f..d5b030e 100755
--- a/ioslay-firefox
+++ b/ioslay-firefox
@@ -22,46 +22,59 @@ set -- $(web_content_pids | tac)
22set -- $(printf "\055\055pid=%s " $*) 22set -- $(printf "\055\055pid=%s " $*)
23 23
24log= 24log=
25pct_log=
25over_count=0 26over_count=0
26sudo -- iotop -qq -b "$@" | 27sudo -- iotop -qq -b "$@" |
27 while read line 28 while read line
28 do 29 do
29 case "$line" in 30 case "$line" in
30 "Total DISK"*) 31 "Total DISK"*)
31 if [ "$over" ] 32 pct_total=0
33 for n in $pct_log
34 do
35 pct_total=$((pct_total + n))
36 done
37 echo "$pct_total ($pct_log)"
38 pct_log=
39
40 if [ "$pct_total" -ge 95 ]
32 then 41 then
33 log="$log 1" 42 over=y
34 over=
35 else 43 else
36 log="$log 0" 44 over=
37 fi 45 fi
46
38 set -- $log 47 set -- $log
39 while [ $# -gt 10 ] 48 while [ $# -ge 10 ]
40 do 49 do
41 shift 50 shift
42 done 51 done
43 log=$* 52 log=$*
44 53
45 total=0 54 if [ "$over" ]
46 echo "log=$log" >&2
47 for n in $log
48 do
49 total=$((total+n))
50 done
51 if [ "$total" -gt 5 ]
52 then 55 then
53 fireslay 56 log="$log 1"
57 over=
58
59 total=0
60 for n in $log
61 do
62 total=$((total + n))
63 done
64
65 if [ "$total" -ge 3 ]
66 then
67 fireslay
68 fi
69 else
70 log="$log 0"
54 fi 71 fi
55 ;; 72 ;;
56 "Current DISK"*) continue ;; 73 "Current DISK"*) continue ;;
57 *) 74 *)
58 set -- $line 75 set -- $line
59 pct=${10%.*} 76 pct=${10%.*}
60 if [ $pct -gt 90 ] 77 pct_log="$pct_log $pct"
61 then
62 printf '[%d] %s%% %s\n' "$total" "${10}" "${12}" >&2
63 over=y
64 fi
65 ;; 78 ;;
66 esac 79 esac
67 done 80 done