Just a simple script here to calculate average CPU load from SAR data:
#!/bin/bash
# Get the list of available SAR files
sar_files=$(ls /var/log/sa/sa[0-9][0-9])
# Initialize variables for total and count
total=0
count=0
# Iterate over each SAR file
for file in $sar_files; do
# Extract the relevant fields from the sar file
queue_sizes=$(sar -q -f "$file" | awk '/Average:/ {print $5}')
# Calculate the sum of queue sizes
for size in $queue_sizes; do
total=$(echo "$total + $size" | bc)
count=$((count + 1))
done
done
# Calculate the average queue size if count is non-zero
if [ $count -gt 0 ]; then
average=$(echo "scale=2; $total / $count" | bc)
echo "Average CPU usage based on SAR queue size: $average"
else
echo "No SAR data available or count is zero."
fi
Execute it and you’ll see an output like this:

