summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cady <d@cryptonomic.net>2021-10-19 14:18:53 -0400
committerAndrew Cady <d@cryptonomic.net>2021-10-19 14:20:17 -0400
commit3496c34c3e5221d26ad9715c48fedaa22fb52b6e (patch)
tree39c13ff44f902eeca83fc79d861f4601d19ccba0
parent26da61aa10616ba044a31fd155501d13b6e077c4 (diff)
refactor improve ioslay
-rwxr-xr-xioslay-firefox55
1 files changed, 26 insertions, 29 deletions
diff --git a/ioslay-firefox b/ioslay-firefox
index d5b030e..9287943 100755
--- a/ioslay-firefox
+++ b/ioslay-firefox
@@ -21,6 +21,29 @@ set -- $(web_content_pids | tac)
21 21
22set -- $(printf "\055\055pid=%s " $*) 22set -- $(printf "\055\055pid=%s " $*)
23 23
24
25sum()
26{
27 local total=0 n
28 for n in $*
29 do
30 total=$((total + n))
31 done
32 echo $total
33}
34
35keep()
36{
37 local n=$1
38 shift
39 set -- $*
40 while [ $# -ge "$n" ]
41 do
42 shift
43 done
44 printf '%s\n' "$*"
45}
46
24log= 47log=
25pct_log= 48pct_log=
26over_count=0 49over_count=0
@@ -29,40 +52,14 @@ sudo -- iotop -qq -b "$@" |
29 do 52 do
30 case "$line" in 53 case "$line" in
31 "Total DISK"*) 54 "Total DISK"*)
32 pct_total=0 55 [ "$(sum $pct_log)" -ge 85 ] && over=y || over=
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= 56 pct_log=
39 57 log=$(keep 9 $log)
40 if [ "$pct_total" -ge 95 ]
41 then
42 over=y
43 else
44 over=
45 fi
46
47 set -- $log
48 while [ $# -ge 10 ]
49 do
50 shift
51 done
52 log=$*
53
54 if [ "$over" ] 58 if [ "$over" ]
55 then 59 then
56 log="$log 1" 60 log="$log 1"
57 over= 61 over=
58 62 if [ "$(sum $log)" -ge 3 ]
59 total=0
60 for n in $log
61 do
62 total=$((total + n))
63 done
64
65 if [ "$total" -ge 3 ]
66 then 63 then
67 fireslay 64 fireslay
68 fi 65 fi