24 lines
1.9 KiB
Bash
24 lines
1.9 KiB
Bash
#!/bin/sh
|
|
# B14 soak observer (read-only): one line per minute for N minutes -> /run/aurora-ui/soak.log
|
|
N=${1:-15}; O=/run/aurora-ui/soak.log; hz=100
|
|
dm0=$(dmesg | grep -ciE "error|fail|oops|bug:|warn")
|
|
cpu() { awk '{print $14+$15}' /proc/$1/stat 2>/dev/null; }
|
|
U=$(pidof aurora-ui); C=$(pidof cage); u0=$(cpu $U); c0=$(cpu $C); t0=$(cut -d' ' -f1 /proc/uptime)
|
|
echo "# t ui_rss cage_rss ui_cpu% cage_cpu% modem ping wifi_cl fwd_pkts chg vbat pmic dmesg_new mmc_writes(p27/other) mem_avail" > $O
|
|
for i in $(seq 1 $N); do
|
|
sleep 60
|
|
U2=$(pidof aurora-ui); C2=$(pidof cage); t=$(cut -d' ' -f1 /proc/uptime)
|
|
u=$(cpu $U2); c=$(cpu $C2)
|
|
uc=$(awk -v a=$u0 -v b=$u -v d=$(awk -v x=$t0 -v y=$t 'BEGIN{print y-x}') -v hz=$hz 'BEGIN{printf "%.2f",(b-a)/hz/d*100}')
|
|
cc=$(awk -v a=$c0 -v b=$c -v d=$(awk -v x=$t0 -v y=$t 'BEGIN{print y-x}') -v hz=$hz 'BEGIN{printf "%.2f",(b-a)/hz/d*100}')
|
|
u0=$u; c0=$c; t0=$t
|
|
p=$(ping -c1 -W3 77.88.8.8 >/dev/null 2>&1 && echo ok || echo LOSS)
|
|
cl=$(iw dev wlan0 station dump 2>/dev/null | grep -c ^Station)
|
|
fw=$(nft list chain inet aurora_router forward 2>/dev/null | awk '/oifname "wwan0"/{for(i=1;i<=NF;i++) if($i=="packets") print $(i+1)}')
|
|
ch=$(awk '/^state/{print $2"/"$6}' /sys/kernel/debug/pm8916_lbc/state)
|
|
tz=$(for z in /sys/class/thermal/thermal_zone*; do [ "$(cat $z/type)" = pm8916-thermal ] && cat $z/temp; done)
|
|
dm=$(( $(dmesg | grep -ciE "error|fail|oops|bug:|warn") - dm0 ))
|
|
w27=$(awk '{print $5}' /sys/class/block/mmcblk0p27/stat); wo=0; for q in /sys/class/block/mmcblk0p* /sys/class/block/mmcblk0boot0 /sys/class/block/mmcblk0boot1; do [ "$q" = /sys/class/block/mmcblk0p27 ] && continue; wo=$((wo + $(awk '{print $5}' $q/stat))); done
|
|
echo "$t $(awk '/VmRSS/{print $2}' /proc/$U2/status) $(awk '/VmRSS/{print $2}' /proc/$C2/status) $uc $cc $(cat /run/aurora-modem/state) $p $cl ${fw:--} $ch $tz $dm $w27/$wo $(awk '/MemAvailable/{print $2}' /proc/meminfo) pids=$U2/$C2" >> $O
|
|
done
|
|
echo "# SOAK END" >> $O
|