Статьи

tpcc-mysql: простые шаги по использованию и способы построения графиков с помощью gnuplot

Это сообщение от  Майкла Рикмаса из MySQL Performance Blog.

Много раз мы могли видеть различные тесты, выполняемые tpcc-mysql . Итак, сегодня я хочу рассказать вам о том, как использовать tpcc-mysql и как строить графики с помощью gnuplot, за несколько простых шагов.

В качестве примера я сравню производительность Percona Server 5.5 (последняя версия: 5.5.31), изменив размер пула буферов InnoDB: innodb_buffer_pool_size = 256M / innodb_buffer_pool_size = 768M на моей старой тестовой машине

Системная информация

  • Процессор: Intel (R) Pentium (R) 4, процессор 1,80 ГГц
  • MemTotal: 1543732 кБ
  • ОС: LinuxMint 15 (на основе Ubuntu 13.04)

Файлы
Вы можете найти исходный код всех файлов в конце этого поста.

Установка

sudo apt-get install bzr
bzr branch lp:~percona-dev/perconatools/tpcc-mysql
make all

В этом случае он установлен в ~ / ККТП-MySQL / каталог

  • Установите gnuplot
 sudo apt-get install gnuplot

Конфигурация БД
Первый тест будет выполняться с включенной опцией innodb_buffer_pool_size = 256M, а второй — с innodb_buffer_pool_size = 768M

Тест для innodb_buffer_pool_size = 256M

Создание БД.
Предполагается, что Percona Server 5.5.31 установлен и настроен.

cd ~/tpcc-mysql
mysql -u root -p -e "CREATE DATABASE tpcc1000;"
mysql -u root -p tpcc1000 < create_table.sql
mysql -u root -p tpcc1000 < add_fkey_idx.sql

Загрузить данные

 ./tpcc_load 127.0.0.1 tpcc1000 root "root-password" 20

Куда:

  • Хост: 127.0.0.1
  • БД: tpcc1000
  • Пользователь: root
  • Пароль: root-пароль
  • Склад: 20
    ...DATA LOADING COMPLETED SUCCESSFULLY.

В этом случае размер БД составляет 1,9 ГБ.

Запустите тест tpcc-mysql

./tpcc_start -h127.0.0.1 -dtpcc1000 -uroot -p -w20 -c16 -r10 -l1200 > ~/tpcc-output-ps-55-bpool-256.log

Куда:

  • Хост: 127.0.0.1
  • БД: tpcc1000
  • Пользователь: root
  • Склад: 20
  • Подключение: 16
  • Время разгона: 10 (сек)
  • Измерение: 1200 (с)

Наиболее интересная часть в выводе:

ИЗМЕРИТЕЛЬНЫЙ СТАРТ.

10, 25 (17): 9,005 | 9,221, 21 (0): 1,866 | 1,886, 3 (0): 0,647 | 0,840, 1 (0): 0,000 | 10,614, 2 (2): 19,999 | 29,490
20, 22 ( 14): 9,419 | 9,555, 26 (0): 1,559 | 1,559, 2 (0): 0,593 | 0,788, 4 (0): 10,453 | 10,688, 3 (3): 19,999 | 22,962
30, 41 (32): 8,703. | 9,057, 32 (0): 1,615 | 1,666, 3 (0): 0,588 | 0,777, 2 (0): 9,530 | 10,495, 3 (2): 19,999 | 22,983

Первые два значения — это «временной диапазон» и «транзакции», поэтому вы можете прочитать их как:

0-10 sec, 25 transactions
10-20 sec, 22 transactions
20-30 sec, 41 transactions

Тест для innodb_buffer_pool_size = 768M

Повторите следующие шаги для innodb_buffer_pool_size = 768M (измените его в my.cnf) и получите результаты:

  • Конфигурация БД
  • Создать БД
  • Загрузить данные
  • Запустите тест tpcc-mysql

./tpcc_start -h127.0.0.1 -dtpcc1000 -uroot -p -w20 -c16 -r10 -l1200 > ~/tpcc-output-ps-55-bpool-768.log

Есть 2 файла: tpcc-output-ps-55-bpool-256.log и tpcc-output-ps-55-bpool-768.log, которые имеют результаты тестирования для обоих тестов.

Создать файл данных для каждого теста

./tpcc-output-analyze.sh ~/tpcc-output-ps-55-bpool-256.log > tpcc-256-data.txt
./tpcc-output-analyze.sh ~/tpcc-output-ps-55-bpool-768.log > tpcc-768-data.txt

Объединить файлы данных

 paste tpcc-256-data.txt tpcc-768-data.txt > tpcc-graph-data.txt

Построить график

 ./tpcc-graph-build.sh tpcc-graph-data.txt tpcc-graph.jpg

В этом случае tpcc-graph-data.txt — это имя файла исходного файла данных и tpcc-graph.jpg имя файла графа, который будет сгенерирован

График готов: tpcc-graph.jpg

Примечание: «использование 3: 4… с осями линий x1y1» в tpcc-graph-build.sh означает, что столбцы с номерами 3 и 4 в файле данных будут использоваться как оси x и y соответственно при построении второй строки

ККТП-граф

Список файлов

tpcc-output-analyze.sh (я получил его там и немного изменил)

TIMESLOT = 1

если [-n «$ 2»],
то
TIMESLOT = $ 2
echo «Определено $ 2 ″
fi

кошка $ 1 | grep -v HY000 | grep -v оплата | grep -v neword | awk -v timeslot = $ TIMESLOT ‘BEGIN {FS = ”[, ():]«; s = 0; CNTR = 0; aggr = 0} / ЗАПУСК ИЗМЕРЕНИЯ / {s = 1} / ОСТАНОВКА НИТЕЙ / {s = 0} / 0 / {if (s == 1) {cntr ++; Aggr + = $ 2; } if (cntr == timeslot) {printf («% d% 3d \ n», $ 1, (aggr / ‘$ TIMESLOT’)); CNTR = 0; aggr = 0}} ‘

tpcc-graph-build.sh

#! / Bin / Баш

### перейти к homedir пользователя и удалить предыдущий файл
rm -f ‘$ 2 ′

gnuplot << EOP

### установить файл источника
данных datafile = ‘$ 1 ′

### установить тип и размер графика
установить размер jpeg терминала 640,480

### установить заголовки
установить сетку xy
установить xlabel «Время (сек)»
установить ylabel «Транзакции»

### установить выходное имя файла
установить вывод ‘$ 2 ′

### build graph
# файл данных графика с линиями
График файла данных заголовка «PS 5.5.1, пул буферов: 256M» со строками,
файл \ datafile с заголовком 3: 4 «PS 5.5.1, пул буферов: 768M» с осями линий x1y1

ИАП