Назад | Перейти на главную страницу

Ошибки Sysbench в тесте mysql OLTP

Я запускаю sysbench на сервере RHEL 5.6 с MySQL 5.5.16, используя следующую настройку:

sysbench --test=oltp --db-driver=mysql --mysql-user=sbench \
 --mysql-socket=/var/lib/mysql/mysql.sock --mysql-db=sbench \
 --mysql-table-engine=innodb --oltp-table-size=1000000 prepare

Это создает таблицу sbench по умолчанию следующим образом:

mysql> SHOW CREATE TABLE sbench.sbtest\G
*************************** 1. row ***************************
       Table: sbtest
Create Table: CREATE TABLE `sbtest` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `k` int(10) unsigned NOT NULL DEFAULT '0',
  `c` char(120) NOT NULL DEFAULT '',
  `pad` char(60) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
  KEY `k` (`k`)
) ENGINE=InnoDB AUTO_INCREMENT=1000001 DEFAULT CHARSET=latin1
1 row in set (0.04 sec)

Запуск 16-поточного теста чтения / записи innodb для 1000000 строк:

sysbench --num-threads=16 --test=oltp --db-driver=mysql --mysql-user=sbench \
  --mysql-socket=/var/lib/mysql/mysql.sock --mysql-db=sbench \
  --mysql-table-engine=innodb --oltp-table-size=100000 \
  --oltp-reconnect-mode=query --batch --batch-delay=5 run

приводит к следующей ошибке

[1319136662] sysbench 0.4.12:  multi-threaded system evaluation benchmark

[1319136663] Running the test with following options:
[1319136663] Number of threads: 16
[1319136663] 
[1319136663] Doing OLTP test.
[1319136663] Running mixed OLTP test
[1319136663] Using Special distribution (12 iterations,  1 pct of values are returned in 75 pct cases)
[1319136663] Using "BEGIN" for starting transactions
[1319136663] Using auto_inc on the id column
[1319136663] Maximum number of requests for OLTP test is limited to 10000
[1319136663] Threads started!
[1319136668] min: 0.2181  avg: 0.2484  max: 0.3025  percentile: 0.2715
[1319136673] min: 0.2181  avg: 0.2454  max: 0.3025  percentile: 0.2646
[1319136678] min: 0.2173  avg: 0.2441  max: 0.3115  percentile: 0.2646
[1319136683] min: 0.2173  avg: 0.2435  max: 0.3115  percentile: 0.2648
[1319136688] min: 0.2173  avg: 0.2440  max: 0.3115  percentile: 0.2663
ALERT: [1319136690] failed to execute mysql_stmt_execute(): Err1062 Duplicate entry '49616' for key 'PRIMARY'
FATAL: [1319136690] database error, exiting...
[1319136691] Done.

Я новичок в использовании sysbench, но это ошибка, или я неправильно настроил что-то, чтобы он вставлял повторяющиеся первичные ключи?

Да ладно, думаю, я нашел это.

Я настраивал тест с --oltp-table-size = 1000000 (1 м), затем запускал тест с --oltp-table-size = 100000 (100k)

Прогнал его с правильным номером (1m), и 16 потоков завершились успешно.