maybe fixed cpu fork logging
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user