From 26da61aa10616ba044a31fd155501d13b6e077c4 Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Tue, 19 Oct 2021 13:53:11 -0400 Subject: use total of all webcontent processes to decide io throttle --- ioslay-firefox | 49 +++++++++++++++++++++++++++++++------------------ 1 file 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) set -- $(printf "\055\055pid=%s " $*) log= +pct_log= over_count=0 sudo -- iotop -qq -b "$@" | while read line do case "$line" in "Total DISK"*) - if [ "$over" ] + pct_total=0 + for n in $pct_log + do + pct_total=$((pct_total + n)) + done + echo "$pct_total ($pct_log)" + pct_log= + + if [ "$pct_total" -ge 95 ] then - log="$log 1" - over= + over=y else - log="$log 0" + over= fi + set -- $log - while [ $# -gt 10 ] + while [ $# -ge 10 ] do shift done log=$* - total=0 - echo "log=$log" >&2 - for n in $log - do - total=$((total+n)) - done - if [ "$total" -gt 5 ] + if [ "$over" ] then - fireslay + log="$log 1" + over= + + total=0 + for n in $log + do + total=$((total + n)) + done + + if [ "$total" -ge 3 ] + then + fireslay + fi + else + log="$log 0" fi ;; "Current DISK"*) continue ;; *) set -- $line pct=${10%.*} - if [ $pct -gt 90 ] - then - printf '[%d] %s%% %s\n' "$total" "${10}" "${12}" >&2 - over=y - fi + pct_log="$pct_log $pct" ;; esac done -- cgit v1.2.3