Sysbench - Тестирование производительности

sysbench

–threads=16

–events=100000000

–time=300

–mysql-host=10.1.3.31

–mysql-db=sbtest

–mysql-user=sbtest

–mysql-password=sbtest_pass

–mysql-port=3307

–tables=100

–table-size=1000000

–range_selects=off

–db-ps-mode=disable

–report-interval=1

–delete_inserts=10

–index_updates=10

–non_index_updates=10

–oltp-table-size=1000000

–max-time=60

–oltp-read-only=off

–max-requests=0

–num-threads=8

Примеры

$ sysbench /usr/share/sysbench/oltp_read_write.lua --threads=10 --events=100000000 --time=300 --mysql-host=10.1.71.41 --mysql-db=sbtest --mysql-user=sbtest --mysql-password=sbtest_pass --mysql-port=3307 --tables=100 --table-size=1000000 --range_selects=off --db-ps-mode=disable --report-interval=1 cleanup
$ sysbench /usr/share/sysbench/oltp_read_write.lua --threads=10 --events=100000000 --mysql-host=10.1.71.41 --mysql-db=sbtest --mysql-user=sbtest --mysql-password=sbtest_pass --mysql-port=3307 --tables=100 --table-size=10000000 prepare
$ sysbench /usr/share/sysbench/oltp_read_write.lua --threads=10 --events=100000000 --time=300 --mysql-host=10.1.71.41 --mysql-db=sbtest --mysql-user=sbtest --mysql-password=sbtest_pass --mysql-port=3307 --tables=100 --delete_inserts=10 --index_updates=10 --non_index_updates=10 --table-size=10000000 --db-ps-mode=disable --report-interval=1 run

Проверяем производительность CPU

Выполнение теста:

$ sysbench --test=cpu --cpu-max-prime=20000 run

Тестируем дисковую подсистему

Подготовка тестовых файлов:

$ sysbench --test=fileio --file-total-size=70G prepare

Выполнение теста:

$ sysbench --test=fileio --file-total-size=70G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 run

Очистка временных файлов:

$ sysbench --test=fileio cleanup

Тест MySQL OLTP

Подготовка к тестированию:

$ sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --mysql-password=pass prepare

Запуск теста:

$ sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --mysql-password=pass --max-time=60 --oltp-read-only=off --max-requests=0 --num-threads=8 run

Очистка:

$ sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --mysql-password=pass cleanup

Тест MySQL oltp_read_write

Подготовка к тестированию:

$ sysbench /usr/share/sysbench/oltp_read_write.lua --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --mysql-password=pass prepare

Запуск теста:

$ sysbench /usr/share/sysbench/oltp_read_write.lua --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --mysql-password=pass --max-time=60 --oltp-read-only=off --max-requests=0 --num-threads=8 run

Очистка:

$ sysbench /usr/share/sysbench/oltp_read_write.lua --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --mysql-password=pass cleanup

Как измерить производительность PostgreSQL?

BEGIN; UPDATE pgbench_accounts SET abalance = abalance + :delta WHERE aid = :aid; SELECT abalance FROM pgbench_accounts WHERE aid = :aid; UPDATE pgbench_tellers SET tbalance = tbalance + :delta WHERE tid = :tid; UPDATE pgbench_branches SET bbalance = bbalance + :delta WHERE bid = :bid; INSERT INTO pgbench_history (tid, bid, aid, delta, mtime) VALUES (:tid, :bid, :aid, :delta, CURRENT_TIMESTAMP); END;

Для создания тестовых данных выполняем команду:

$ pgbench -h localhost -U test_user -i -s 100 test

Выполняем тестирование:

$ pgbench -h localhost -U test_user -t 5000 -c 4 -j 4 test

А как же производительность PHP?

PHP Benchmark tool

Для запуска:

$ wget https://github.com/florinsky/af-php-bench/raw/master/build/phpbm.phar $ php phpbm.phar

Документация / Ссылки

https://github.com/akopytov/sysbench

https://severalnines.com/blog/how-benchmark-performance-mysql-mariadb-using-sysbench/

https://habr.com/ru/companies/simbirsoft/articles/271485/

https://github.com/florinsky/af-php-bench/tree/master