Тестируем производительность MySQL
Зачастую слабым звеном сервера может стать MySQL. Для его тонкой настройки необходимо знать численное значение производительности. Для этой цели подойдет программа sysbench — среди прочего она позволят тестировать производительность MySQL.
Устанавливаем
yum install sysbench
Создаем базу данных с названием sbtest. Это можно сделать как через phpmyadmin, так и через консоль, имя базы по умолчанию — sbtest, если хотите использовать своё, то в дальнейшем понадобится ключ --mysql-db=dbtest во всех командах, где dbtest — имя тестовой базы данных
mysql> create database sbtest;
готовим базу данных для тестирования
sysbench --num-threads=10 --test=oltp --mysql-user=root --mysql-password=pass --oltp-table-size=500000 --db-driver=mysql --mysql-table-engine=myisam prepare
имя пользователя и пароль вбиваем своё.
Запускаем тест
sysbench --num-threads=10 --test=oltp --mysql-user=root --mysql-password=pass --oltp-table-size=500000 --db-driver=mysql --mysql-table-engine=myisam run
Получаем результат:
- sysbench 0.4.12: multi-threaded system evaluation benchmark
- Running the test with following options:
- Number of threads: 10
- Doing OLTP test.
- Running mixed OLTP test
- Using Special distribution (12 iterations, 1 pct of values are returned in 75 pct cases)
- Using "LOCK TABLES WRITE" for starting transactions
- Using auto_inc on the id column
- Maximum number of requests for OLTP test is limited to 10000
- Threads started!
- Done.
- OLTP test statistics:
- queries performed:
- read: 140000
- write: 50000
- other: 20000
- total: 210000
- transactions: 10000 (294.40 per sec.)
- deadlocks: 0 (0.00 per sec.)
- read/write requests: 190000 (5593.55 per sec.)
- other operations: 20000 (588.79 per sec.)
- Test execution summary:
- total time: 33.9677s
- total number of events: 10000
- total time taken by event execution: 339.5076
- per-request statistics:
- min: 8.97ms
- avg: 33.95ms
- max: 1961.10ms
- approx. 95 percentile: 38.03ms
- Threads fairness:
- events (avg/stddev): 1000.0000/0.45
- execution time (avg/stddev): 33.9508/0.01
Очистить таблицу так:
sysbench --test=oltp --mysql-user=root --mysql-password=pass --db-driver=mysql cleanup