pgbench是一款开源的基准测试工具,支持多线程和多种数据库(包括MySQL、PostgreSQL等);通过测试可衡量操作系统的CPU、磁盘IO、内存、POSIX线程性能和数据库性能。
一、安装
下载sysbench,当前最新版本是1.0.15
cd /tmp/install wget https://github.com/akopytov/sysbench/archive/1.0.15.zip -O "sysbench-1.0.15.zip" unzip sysbench-1.0.15.zip cd sysbench-1.0.15
执行安装
yum install automake libtool mysql-devel postgresql-devel –y ./autogen.sh ./configure --with-pgsql --with-pgsql-includes=/appdb/atlasdb/pg11beta2/include --with-pgsql-libs=/appdb/atlasdb/pg11beta2/lib make make install
安装成功
[root@localhost sysbench-1.0.15]# sysbench --version sysbench 1.0.15
二、参数说明
通过sysbench --help命令可以查看详细的参数设置.
[root@localhost include]# sysbench --help Usage: sysbench [options]... [testname] [command] Commands implemented by most tests: prepare run cleanup help General options: --threads=N number of threads to use [1] ...
其中:
oltp-tables-count
生成测试数据表数量--threads=N
sysbench使用的工作线程数--time=N
执行时长,以秒为单位--report-interval=N
报告间隔,以秒为单位--config-file=FILENAME
配置文件--db-driver=STRING
数据库驱动mysql/pgsqlpgsql options:
--pgsql-host=STRING PostgreSQL server host [localhost]
--pgsql-port=N PostgreSQL server port [5432]
--pgsql-user=STRING PostgreSQL user [sbtest]
--pgsql-password=STRING PostgreSQL password []
--pgsql-db=STRING PostgreSQL database name [sbtest]
三、基本使用
连接数据库,创建测试数据库sysbench
$createdb sysbench
准备阶段
执行以下命令,sysbench执行自带的测试脚本
sysbench /usr/local/share/sysbench/tests/include/oltp_legacy/oltp.lua \ --oltp-tables-count=10 --oltp-table-size=500000 \ --db-driver=pgsql --pgsql-host=192.168.26.103 --pgsql-port=5432 \ --pgsql-user=atlasdb --pgsql-db=sysbench \ prepare
命令输出
Creating table 'sbtest1'... Inserting 500000 records into 'sbtest1' Creating secondary indexes on 'sbtest1'... Creating table 'sbtest2'... Inserting 500000 records into 'sbtest2' Creating secondary indexes on 'sbtest2'... Creating table 'sbtest3'... Inserting 500000 records into 'sbtest3' Creating secondary indexes on 'sbtest3'... Creating table 'sbtest4'... Inserting 500000 records into 'sbtest4' Creating secondary indexes on 'sbtest4'... Creating table 'sbtest5'... Inserting 500000 records into 'sbtest5' Creating secondary indexes on 'sbtest5'... Creating table 'sbtest6'... Inserting 500000 records into 'sbtest6' Creating secondary indexes on 'sbtest6'... Creating table 'sbtest7'... Inserting 500000 records into 'sbtest7' Creating secondary indexes on 'sbtest7'... Creating table 'sbtest8'... Inserting 500000 records into 'sbtest8' Creating secondary indexes on 'sbtest8'... Creating table 'sbtest9'... Inserting 500000 records into 'sbtest9' Creating secondary indexes on 'sbtest9'... Creating table 'sbtest10'... Inserting 500000 records into 'sbtest10' Creating secondary indexes on 'sbtest10'..
运行基准测试
sysbench /usr/local/share/sysbench/tests/include/oltp_legacy/oltp.lua \ --report-interval=5 \ --threads=4 --time=120 --db-driver=pgsql --pgsql-host=192.168.26.103 --pgsql-port=5432 \ --pgsql-user=atlasdb --pgsql-db=sysbench \ run
执行完毕,4线程的执行过程和结果如下:
sysbench 1.0.15 (using bundled LuaJIT 2.1.0-beta2)
Running the test with following options:
Number of threads: 4
Report intermediate results every 5 second(s)
Initializing random number generator from current time
Initializing worker threads...
Threads started!
[ 5s ] thds: 4 tps: 107.50 qps: 2160.56 (r/w/o: 1513.97/430.79/215.80) lat (ms,95%): 51.94 err/s: 0.00 reconn/s: 0.00
[ 10s ] thds: 4 tps: 80.79 qps: 1611.00 (r/w/o: 1126.26/323.16/161.58) lat (ms,95%): 71.83 err/s: 0.00 reconn/s: 0.00
[ 15s ] thds: 4 tps: 105.45 qps: 2114.74 (r/w/o: 1482.66/421.19/210.89) lat (ms,95%): 61.08 err/s: 0.00 reconn/s: 0.00
...
[ 120s ] thds: 4 tps: 88.00 qps: 1762.33 (r/w/o: 1232.95/353.39/175.99) lat (ms,95%): 77.19 err/s: 0.00 reconn/s: 0.00
SQL statistics:
queries performed:
read: 181496
write: 51856
other: 25928
total: 259280
transactions: 12964 (108.00 per sec.)
queries: 259280 (2160.08 per sec.)
ignored errors: 0 (0.00 per sec.)
reconnects: 0 (0.00 per sec.)
General statistics:
total time: 120.0312s
total number of events: 12964
Latency (ms):
min: 18.34
avg: 37.02
max: 122.90
95th percentile: 58.92
sum: 479962.76
Threads fairness:
events (avg/stddev): 3241.0000/6.96
execution time (avg/stddev): 119.9907/0.01
四、参考资料
How to Benchmark Performance of MySQL & MariaDB using SysBench
How to Benchmark PostgreSQL Performance Using Sysbench
编辑推荐:
- PostgreSQL DBA(8) - sysbench简介03-14
- PostgreSQL 源码解读(60)- 查询语句#45(make_one_rel函数#10-...03-14
- PostgreSQL 源码解读(59)- 查询语句#44(make_one_rel函数#9-B...03-14
- PostgreSQL 源码解读(61)- 查询语句#46(make_one_rel函数#11-...03-14
- PostgreSQL DBA(10) - 统计信息03-14
- PostgreSQL DBA(11) - 统计信息在计算选择率上的应用#103-14
- PostgreSQL tuple alignment padding - 对齐规则,以及如何选择字段顺序03-14
- PostgreSQL pg_top pgcenter - 实时top类工具03-14
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
