maybe fixed cpu fork logging

This commit is contained in:
2026-05-22 20:43:21 +03:00
parent c9fac1ce85
commit ed83c4d771
+6 -8
View File
@@ -78,14 +78,13 @@ sample_process_csv() {
nlwp=$(awk '/^Threads:/ {print $2}' "/proc/$pid/status")
fi
local cur_ticks dt dc cpu
cur_ticks=$prev_ticks
if [ -r "/proc/$pid/stat" ]; then
cur_ticks=$(awk '{print $14 + $15}' "/proc/$pid/stat")
# Use ps directly to avoid zero deltas for very short-lived processes.
local cpu
if command -v ps >/dev/null 2>&1; then
cpu=$(ps -o %cpu= -p "$pid" 2>/dev/null | awk '{print $1}' || true)
else
cpu=0.00
fi
dt=$(awk -v a="$prev_uptime" -v b="$now_uptime" 'BEGIN{print b-a}')
dc=$(awk -v a="$prev_ticks" -v b="$cur_ticks" 'BEGIN{print b-a}')
cpu=$(awk -v dt="$dt" -v dc="$dc" -v hz="$clk_tck" 'BEGIN{ if (dt<=0) printf "0.00"; else printf "%.2f", (100.0*dc)/(dt*hz) }')
printf "%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n" \
"$(date -Iseconds)" "$elapsed_s" "$load1" "$load5" "$load15" \
@@ -94,7 +93,6 @@ sample_process_csv() {
>> "$csv"
prev_uptime=$now_uptime
prev_ticks=$cur_ticks
sleep 1
done
}