diff options
author | Andrew Cady <d@cryptonomic.net> | 2021-10-19 13:53:11 -0400 |
---|---|---|
committer | Andrew Cady <d@cryptonomic.net> | 2021-10-19 13:53:11 -0400 |
commit | 26da61aa10616ba044a31fd155501d13b6e077c4 (patch) | |
tree | 5015a6bcd103b3121c619b108f382989baee3d63 | |
parent | 0f2b88b375f00e3e62e8d6936d0a88c515925da3 (diff) |
use total of all webcontent processes to decide io throttle
-rwxr-xr-x | ioslay-firefox | 49 |
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) | |||
22 | set -- $(printf "\055\055pid=%s " $*) | 22 | set -- $(printf "\055\055pid=%s " $*) |
23 | 23 | ||
24 | log= | 24 | log= |
25 | pct_log= | ||
25 | over_count=0 | 26 | over_count=0 |
26 | sudo -- iotop -qq -b "$@" | | 27 | sudo -- 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 |