diff options
author | Andrew Cady <d@cryptonomic.net> | 2021-10-19 14:18:53 -0400 |
---|---|---|
committer | Andrew Cady <d@cryptonomic.net> | 2021-10-19 14:20:17 -0400 |
commit | 3496c34c3e5221d26ad9715c48fedaa22fb52b6e (patch) | |
tree | 39c13ff44f902eeca83fc79d861f4601d19ccba0 | |
parent | 26da61aa10616ba044a31fd155501d13b6e077c4 (diff) |
refactor improve ioslay
-rwxr-xr-x | ioslay-firefox | 55 |
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 | ||
22 | set -- $(printf "\055\055pid=%s " $*) | 22 | set -- $(printf "\055\055pid=%s " $*) |
23 | 23 | ||
24 | |||
25 | sum() | ||
26 | { | ||
27 | local total=0 n | ||
28 | for n in $* | ||
29 | do | ||
30 | total=$((total + n)) | ||
31 | done | ||
32 | echo $total | ||
33 | } | ||
34 | |||
35 | keep() | ||
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 | |||
24 | log= | 47 | log= |
25 | pct_log= | 48 | pct_log= |
26 | over_count=0 | 49 | over_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 |