Per i test automatici di MariaDB/MySQL si usa sysbench, da lp:sysbench. Questa pagina descrive i parametri basilari e la configurazione da usare.

E' possibile trovare gli script wrapper che vengono usati per eseguire sysbench alla pagina lp:mariadb-tools

Parametri generali attuali

table_open_cache = 512
thread_cache = 512
query_cache_size = 0
query_cache_type = 0

Parametri di InnoDB attuali

innodb_data_home_dir = /data/mysql/
innodb_data_file_path = ibdata1:128M:autoextend
innodb_log_group_home_dir = /data/mysql/
innodb_buffer_pool_size = 1024M
innodb_additional_mem_pool_size = 32M
innodb_log_file_size = 256M
innodb_log_buffer_size = 16M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
innodb_doublewrite = 0
innodb_flush_method = O_DIRECT
innodb_thread_concurrency = 0
innodb_max_dirty_pages_pct = 80

Compilazione

Occorre installare MariaDB o MySQL in /usr/local e creare un symlink verso /usr/local/mysql. Per favore, si usi una versione non di debug! Su Mac OS X attualmente è necessario automake1.10.

./autogen.sh
./configure \
  --without-drizzle \
  --with-mysql-includes=/usr/local/mysql/include/mysql \
  --with-mysql-libs=/usr/local/mysql/lib/mysql
make
optionally: make install

Avviare e preparare il database

mysqladmin -uroot drop sbtest
mysqladmin -uroot create sbtest

I test

Si usa la versione più recente di sysbench, con il supporto allo scripting LUA. Pertanto i nomi dei test sono differenti da sysbench <= 0.4. Per ottenere risultati ragionevoli è meglio utilizzare un run time di 5 minuti.

Noi eseguiamo i test con 1, 4, 8, 16, 32, 64 e 128 thread.

NUM_THREADS="1 4 8 16 32 64 128"
SYSBENCH_TESTS="delete.lua \
  insert.lua \
  oltp_complex_ro.lua \
  oltp_complex_rw.lua \
  oltp_simple.lua \
  select.lua \
  update_index.lua \
  update_non_index.lua"

NUM_THREADS=1
TEST_DIR=${HOME}/work/monty_program/sysbench/sysbench/tests/db

./sysbench \
  --test=${TEST_DIR}/oltp_simple.lua \
  --oltp-table-size=2000000 \
  --max-time=300 \
  --max-requests=0 \
  --mysql-table-engine=InnoDB \
  --mysql-user=root \
  --mysql-engine-trx=yes \
  --num-threads=$NUM_THREADS \
  prepare

./sysbench \
  --test=${TEST_DIR}/oltp_simple.lua \
  --oltp-table-size=2000000 \
  --max-time=300 \
  --max-requests=0 \
  --mysql-table-engine=InnoDB \
  --mysql-user=root \
  --mysql-engine-trx=yes \
  --num-threads=$NUM_THREADS \
  run

Test personalizzati aggiuntivi

Abbiamo scritto un paio di script personalizzati per SysBench:

  • select_random_ranges.lua
  • select_random_points.lua

Entrambi sono stati aggiunti al repository più recente di SysBench v0.5.

Commenti

Sto caricando i commenti......