This is a read-only copy of the MariaDB Knowledgebase generated on 2024-11-15. For the latest, interactive version please visit https://mariadb.com/kb/.

Configurazione dei benchmark di sysbench

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.

Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.