Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8f7fe4f016 | |||
| 114a194758 | |||
| 08acce525b | |||
| 34d8ba7214 | |||
| 954e387544 | |||
| f22b2a8e82 | |||
| e9da74e3c8 |
6
.gitignore
vendored
Normal file
6
.gitignore
vendored
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
*.log
|
||||||
|
*.bak
|
||||||
|
*.png
|
||||||
|
bin/minimal_test.sh
|
||||||
|
|
||||||
|
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
# pistress
|
# pistress
|
||||||
|
|
||||||
Measure the CPU core temperature on a Raspberry Pi on full load
|
A bunch of scripts for measuring the core temperature of the Raspberry Pi 5 CPU under full load
|
||||||
|
and plotting graphs .
|
||||||
|
Requirements: fio, gnuplot
|
||||||
|
|||||||
@@ -1,28 +1,111 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Eingabeparameter
|
usage() {
|
||||||
LOGFILE="${1}"
|
local name=${0##*/}
|
||||||
OUTFILE="${2}"
|
|
||||||
TITLE="${3}"
|
|
||||||
|
|
||||||
|
cat <<-EOF
|
||||||
|
Usage: ${name} [-h || --help] <logfile> <outfile> <title>
|
||||||
|
|
||||||
|
Generates graph of the <logfile> and writes it to <outfile>
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
verbose=false
|
||||||
|
COLOR='red'
|
||||||
|
PADDING=5
|
||||||
|
|
||||||
|
VALID_ARGS=$(getopt -o vho:c:t:l: --long verbose,help,output,color:,title:,logfile: -- "$@")
|
||||||
|
if [[ $? -ne 0 ]]; then
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "VALID_ARGS=${VALID_ARGS}"
|
||||||
|
eval set -- "$VALID_ARGS"
|
||||||
|
while [ : ]; do
|
||||||
|
# echo "aktueller Parameter: ${1}"
|
||||||
|
case "$1" in
|
||||||
|
-h | --help)
|
||||||
|
usage
|
||||||
|
exit 0
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-l | --logfile)
|
||||||
|
LOGFILE="${2}"
|
||||||
|
echo "LOGFILE=${LOGFILE}"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
-o | --output)
|
||||||
|
echo "1: ${1}, 2:${2},3:${3}"
|
||||||
|
OUTFILE="${2}"
|
||||||
|
echo "OUTFILE=${OUTFILE}"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
-c | --color)
|
||||||
|
COLOR="${2}"
|
||||||
|
echo "COLOR=${COLOR}"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
-t | --title)
|
||||||
|
TITLE="${2}"
|
||||||
|
echo "TITLE=${TITLE}"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
-v | --verbose)
|
||||||
|
verbose=true
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--) shift;
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
#determine max and min values
|
||||||
|
read YMIN YMAX < <(
|
||||||
|
awk '
|
||||||
|
NR==1 { min=$2; max=$2 }
|
||||||
|
$2 < min { min=$2 }
|
||||||
|
$2 > max { max=$2 }
|
||||||
|
END { printf "%.1f %.1f\n", min, max }
|
||||||
|
' "${LOGFILE}"
|
||||||
|
)
|
||||||
|
|
||||||
|
echo "YMIN=${YMIN} YMAX=${YMAX}"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
echo "Parameter geparsed."
|
||||||
|
|
||||||
|
# Eingabeparameter
|
||||||
if [ -z "$LOGFILE" ] || [ -z "$OUTFILE" ] || [ -z "$TITLE" ]; then
|
if [ -z "$LOGFILE" ] || [ -z "$OUTFILE" ] || [ -z "$TITLE" ]; then
|
||||||
echo "Usage: ${0} <temp.log> <output.png> <title>"
|
usage
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
gnuplot <<EOF
|
echo "generating plot from ${LOGFILE}"
|
||||||
set terminal pngcairo size 1600,900
|
gnuplot \
|
||||||
set output "$OUTFILE"
|
-e "OUTFILE='${OUTFILE}'" \
|
||||||
|
-e "LOGFILE='${LOGFILE}'" \
|
||||||
|
-e "TITLE='${TITLE}'" \
|
||||||
|
-e "COLOR='${COLOR}'" \
|
||||||
|
-e "YMAX=${YMAX}" \
|
||||||
|
-e "PADDING=${PADDING}" \
|
||||||
|
-e "YMIN=${YMIN}" \
|
||||||
|
-e "
|
||||||
|
set terminal pngcairo size 1800,800;
|
||||||
|
set output OUTFILE;
|
||||||
|
set title TITLE;
|
||||||
|
set xlabel 'Zeit (s)';
|
||||||
|
set ylabel 'Temperatur (°C)';
|
||||||
|
set grid;
|
||||||
|
set key top left;
|
||||||
|
|
||||||
set title "$TITLE"
|
set label sprintf('Tmax: %.1f°C', YMAX-PADDING) at graph 0.98,0.02 right;
|
||||||
set xlabel "Zeit (s)"
|
|
||||||
set ylabel "Temperatur (°C)"
|
plot LOGFILE using 1:2 with lines lc rgb COLOR lw 2 title 'CPU-Temperatur';
|
||||||
set grid
|
"
|
||||||
set key top left
|
|
||||||
|
|
||||||
# Linie rot, Dicke 2
|
|
||||||
plot "$LOGFILE" using 1:2 with lines lc rgb "red" lw 2 title "CPU-Temperatur"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
echo "Plot erzeugt: $OUTFILE"
|
echo "Plot erzeugt: $OUTFILE"
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
|||||||
@@ -1,39 +1,33 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
ACTIVE_LOG="${1}"
|
ACTIVE_LOG="$1"
|
||||||
ICE_LOG="${2}"
|
ICE_LOG="$2"
|
||||||
OUTFILE="${3}"
|
OUTFILE="$3"
|
||||||
TITLE="${4}
|
TITLE="$4"
|
||||||
|
|
||||||
if [ -z "${ACTIVE_LOG}" ] || [ -z "${ICE_LOG}" ] || [ -z "${OUTFILE}" ]; then
|
if [ -z "${ACTIVE_LOG}" ] || [ -z "${ICE_LOG}" ] || [ -z "${OUTFILE}" ]; then
|
||||||
echo "Usage: $0 <temp_active.log> <temp_ice.log> <output.png>"
|
echo "Usage: $0 <temp_active.log> <temp_ice.log> <output.png> [title]"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
echo "ACTIVE_LOG=${ACTIVE_LOG}"
|
||||||
|
echo "ICE_LOG=${ICE_LOG}"
|
||||||
|
echo "OUTFILE=${OUTFILE}"
|
||||||
|
echo "TITLE=${TITLE}"
|
||||||
|
|
||||||
gnuplot <<EOF
|
gnuplot -e "
|
||||||
set terminal pngcairo size 1800,800
|
set terminal pngcairo size 1800,800;
|
||||||
set output "${OUTFILE}"
|
set output '${OUTFILE}';
|
||||||
|
set multiplot layout 1,2 title '${TITLE}';
|
||||||
|
set xlabel 'Zeit (s)';
|
||||||
|
set ylabel 'Temperatur (°C)';
|
||||||
|
set grid;
|
||||||
|
set key top left;
|
||||||
|
set yrange [0:100];
|
||||||
|
set title 'Active Cooler';
|
||||||
|
plot '${ACTIVE_LOG}' using 1:2 with lines lc rgb 'red' lw 2 title 'CPU-Temperatur';
|
||||||
|
set title 'Ice Tower Cooler 5';
|
||||||
|
plot '${ICE_LOG}' using 1:2 with lines lc rgb 'blue' lw 2 title 'CPU-Temperatur';
|
||||||
|
unset multiplot;
|
||||||
|
"
|
||||||
|
|
||||||
set multiplot layout 1,2 title "${TITLE}"
|
|
||||||
|
|
||||||
set xlabel "Zeit (s)"
|
|
||||||
set ylabel "Temperatur (°C)"
|
|
||||||
set grid
|
|
||||||
set key top left
|
|
||||||
|
|
||||||
# Einheitliche Y-Achse für fairen Vergleich
|
|
||||||
set yrange [30:90]
|
|
||||||
|
|
||||||
# Plot 1: Active Cooler
|
|
||||||
set title "Active Cooler"
|
|
||||||
plot "$I{ACTIVE_LOG}" using 1:2 with lines lc rgb "red" lw 2 title "CPU-Temperatur"
|
|
||||||
|
|
||||||
# Plot 2: Ice Tower Cooler
|
|
||||||
set title "Ice Tower Cooler 5"
|
|
||||||
plot "${ICE_LOG}" using 1:2 with lines lc rgb "blue" lw 2 title "CPU-Temperatur"
|
|
||||||
|
|
||||||
unset multiplot
|
|
||||||
EOF
|
|
||||||
|
|
||||||
echo "Vergleichsplot erzeugt: ${OUTFILE}"
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
temp_data.sh > temp.log &
|
measure_temp.sh > ${1} &
|
||||||
TPID=$!
|
TPID=$!
|
||||||
fio fio/fio_cpu
|
fio ~/git/pistress/fio/fio_cpu
|
||||||
kill $TPID
|
kill $TPID > /dev/null
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user