Plus le pourcentage est important, plus les requêtes font des lectures sur le disque (pas bien !), on considère qu'il ne faut pas dépasser 20%
Bien sûr les données ne sont valable que lorsqu'il y a un peu de charge sur MYSQL
#! /bin/bash
# superformance.blogspot.com
USER=root
PASS=pass
DB=db
TEMP_FILE=/tmp/$$.tmp
trap "rm $TEMP_FILE; exit" SIGHUP SIGINT SIGTERM
SOCK=/var/lib/mysqlmysql.sock
L_Handler_read_rnd_next=0
L_Handler_read_rnd=0
L_Handler_read_first=0
L_Handler_read_next=0
L_Handler_read_key=0
L_Handler_read_prev=0
while true; do
# fullscan percentage
mysql -u ${USER} -p${PASS} --connect-timeout=5 -NBe \
"show global status like 'handler%'" > /tmp/$$.tmp
V_Handler_read_rnd_next=$(grep -E -w \
"Handler_read_rnd_next" /tmp/$$.tmp | awk '{print $2}')
V_Handler_read_rnd=$(grep -E -w \
"Handler_read_rnd" /tmp/$$.tmp | awk '{print $2}')
V_Handler_read_first=$(grep -E -w \
"Handler_read_first" /tmp/$$.tmp | awk '{print $2}')
V_Handler_read_next=$(grep -E -w \
"Handler_read_next" /tmp/$$.tmp | awk '{print $2}')
V_Handler_read_key=$(grep -E -w \
"Handler_read_key" /tmp/$$.tmp | awk '{print $2}')
V_Handler_read_prev=$(grep -E -w \
"Handler_read_prev" /tmp/$$.tmp | awk '{print $2}')
Handler_read_rnd_next=$(echo "$V_Handler_read_rnd_next - \
$L_Handler_read_rnd_next" | bc)
Handler_read_rnd=$(echo "$V_Handler_read_rnd - \
$L_Handler_read_rnd" | bc)
Handler_read_first=$(echo "$V_Handler_read_first - \
$L_Handler_read_first" | bc)
Handler_read_next=$(echo "$V_Handler_read_next - \
$L_Handler_read_next" | bc)
Handler_read_key=$(echo "$V_Handler_read_key - \
$L_Handler_read_key" | bc)
Handler_read_prev=$(echo "$V_Handler_read_prev - \
$L_Handler_read_prev" | bc)
div=$( echo "$Handler_read_rnd_next + $Handler_read_rnd + \
$Handler_read_first + $Handler_read_next + \
$Handler_read_key + $Handler_read_prev" | bc)
if [ $div == 0 ]; then
echo "0%"
else
echo $( echo "scale=2;(($Handler_read_rnd_next + \
$Handler_read_rnd) / $div)* 100" | bc -l )"%"
fi
L_Handler_read_rnd_next=$V_Handler_read_rnd_next
L_Handler_read_rnd=$V_Handler_read_rnd
L_Handler_read_first=$V_Handler_read_first
L_Handler_read_next=$V_Handler_read_next
L_Handler_read_key=$V_Handler_read_key
L_Handler_read_prev=$V_Handler_read_prev
unset V_Handler_read_rnd_next
unset V_Handler_read_rnd
unset V_Handler_read_first
unset V_Handler_read_next
unset V_Handler_read_key
unset V_Handler_read_prev
sleep 5
done
Aucun commentaire:
Enregistrer un commentaire