Исправление
KRoN73,
(текущая версия)
:
cast KRoN73, образно говоря, мне нужна печь от которой можно плясать :-)
Посмотри цифры по sysbench. Типа такого скрипта:
#!/bin/bash
if [ "$(id -u)" != "0" ]; then
echo "This script must be run as root" 1>&2
exit 1
fi
SIZE=1000000
DB=TMP_SYSBENCH
USER=`cat /root/.my.cnf | grep ^user= | head -n1 | cut -d= -f2`
PASS=`cat /root/.my.cnf | grep ^password= | head -n1 | cut -d= -f2`
HOST=`cat /root/.my.cnf | grep ^host= | head -n1 | cut -d= -f2`
mysql -e "CREATE DATABASE $DB;"
RESULT_FILE=$(hostname)-$(date +%Y-%m%d-%H%M)-host-$HOST-big-complex-rw.txt
sudo mysql -e "SELECT @@version;" > $RESULT_FILE
echo "--- MAKE TEST -----------------------------------" >> $RESULT_FILE
echo Make test
/usr/bin/time sysbench --test=oltp --oltp-table-size=$SIZE \
--mysql-db=$DB --mysql-user=$USER --mysql-password=$PASS --mysql-host=$HOST \
prepare >> $RESULT_FILE 2>&1
echo "--- RUN TEST -----------------------------------" >> $RESULT_FILE
echo Begin test
sysbench --test=oltp --oltp-table-size=$SIZE --mysql-db=$DB --mysql-user=$USER --mysql-password=$PASS --mysql-host=$HOST \
--oltp-test-mode=complex --oltp-read-only=off \
--max-time=30 --max-requests=0 --num-threads=8 run >> $RESULT_FILE
echo Cleanup
sysbench --test=oltp --oltp-table-size=$SIZE --mysql-db=$DB --mysql-user=$USER --mysql-password=$PASS --mysql-host=$HOST cleanup
mysql -e "DROP DATABASE $DB;"
Процент более 30% и требуется увеличить параметры tmp_table_size (текущее значение: 128 МБ)
Ну, у меня в конфиге самого жирного сервера (оперативки — 32Гб, объём /var/lib/mysql — 49Гб) так:
# Значение по умолчанию 16 МБ, если вы не используете MEMORY таблиц,
# то установите это значение равным tmp_table_size.
max_heap_table_size = 2G
# tmp_table_size — максимальный размер памяти, выделяемой для временных таблиц,
# создаваемых MySQL для своих внутренних нужд. Это значение также
# ограничивается переменной max_heap_table_size, поэтому в итоге будет выбрано
# минимальное значение из max_heap_table_size и tmp_table_size, а остальные
# временные таблицы будут создаваться на диске. Значение по умолчанию зависит
# от системы, попробуйте установить его равным 32 МБ и понаблюдать за переменной
# состояния Created_tmp_disk_tables, ее значение должно быть как можно меньше.
tmp_table_size = 2G
Исходная версия
KRoN73,
:
cast KRoN73, образно говоря, мне нужна печь от которой можно плясать :-)
Посмотри цифры по sysbench. Типа такого скрипта:
#!/bin/bash
if [ "$(id -u)" != "0" ]; then
echo "This script must be run as root" 1>&2
exit 1
fi
SIZE=1000000
DB=TMP_SYSBENCH
USER=`cat /root/.my.cnf | grep ^user= | head -n1 | cut -d= -f2`
PASS=`cat /root/.my.cnf | grep ^password= | head -n1 | cut -d= -f2`
HOST=`cat /root/.my.cnf | grep ^host= | head -n1 | cut -d= -f2`
mysql -e "CREATE DATABASE $DB;"
RESULT_FILE=$(hostname)-$(date +%Y-%m%d-%H%M)-host-$HOST-big-complex-rw.txt
sudo mysql -e "SELECT @@version;" > $RESULT_FILE
echo "--- MAKE TEST -----------------------------------" >> $RESULT_FILE
echo Make test
/usr/bin/time sysbench --test=oltp --oltp-table-size=$SIZE \
--mysql-db=$DB --mysql-user=$USER --mysql-password=$PASS --mysql-host=$HOST \
prepare >> $RESULT_FILE 2>&1
echo "--- RUN TEST -----------------------------------" >> $RESULT_FILE
echo Begin test
sysbench --test=oltp --oltp-table-size=$SIZE --mysql-db=$DB --mysql-user=$USER --mysql-password=$PASS --mysql-host=$HOST \
--oltp-test-mode=complex --oltp-read-only=off \
--max-time=30 --max-requests=0 --num-threads=8 run >> $RESULT_FILE
echo Cleanup
sysbench --test=oltp --oltp-table-size=$SIZE --mysql-db=$DB --mysql-user=$USER --mysql-password=$PASS --mysql-host=$HOST cleanup
mysql -e "DROP DATABASE $DB;"
Процент более 30% и требуется увеличить параметры tmp_table_size (текущее значение: 128 МБ)
Ну, у меня в конфиге самого жирного сервера так:
# Значение по умолчанию 16 МБ, если вы не используете MEMORY таблиц,
# то установите это значение равным tmp_table_size.
max_heap_table_size = 2G
# tmp_table_size — максимальный размер памяти, выделяемой для временных таблиц,
# создаваемых MySQL для своих внутренних нужд. Это значение также
# ограничивается переменной max_heap_table_size, поэтому в итоге будет выбрано
# минимальное значение из max_heap_table_size и tmp_table_size, а остальные
# временные таблицы будут создаваться на диске. Значение по умолчанию зависит
# от системы, попробуйте установить его равным 32 МБ и понаблюдать за переменной
# состояния Created_tmp_disk_tables, ее значение должно быть как можно меньше.
tmp_table_size = 2G