greenplum性能测试工具-pgbench

查看服务器上是否安装pgbench

[root@gsgp60 ~]# find / -name pgbench
[root@gsgp60 ~]# pgbench--version
bash: postgres: 未找到命令...
[root@gsgp60 ~]# yum install postgresql-contrib
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
 * base: mirrors.bupt.edu.cn
 * extras: mirrors.bupt.edu.cn
 * updates: mirrors.jlu.edu.cn
base                                                                                                    
.....

#安装完成验证
[gpadmin@gsgp60 bin]$ pgbench --version
pgbench (PostgreSQL) 9.2.24

 pgbench参数解读

-h或--host=<主机名或IP地址>:指定要连接的PostgreSQL服务器的主机名或IP地址。

-p或--port=<端口号>:指定要连接的PostgreSQL服务器的端口号。

-U或--username=<用户名>:指定要连接的PostgreSQL服务器的用户名。

-d或--dbname=<数据库名>:指定要连接的PostgreSQL服务器的数据库名。

-f或--file=<脚本文件>:指定要执行的SQL脚本文件。

-i或--initialize:初始化测试数据库。如果指定此参数,则会在测试前创建一个新的数据库,并执行初始化脚本。初始化脚本必须包含pgbench所需的表和数据。

-s或--scale=<数据规模>:指定测试数据的规模。数据规模越大,测试的负载越大。例如,如果指定-s 10,则表示测试数据的规模是原始大小的10倍。

-t或--transactions=<事务数>:指定要执行的事务数。每个事务执行一组SQL语句,并递增一个计数器。

-c或--clients=<并发用户数>:指定要模拟的并发用户数。每个并发用户都会执行一组SQL语句。

-j或--jobs=<线程数>:指定要使用的线程数。线程数应该等于或小于并发用户数。

-n或--no-vacuum:禁用测试后的自动清理。如果指定此参数,则测试完成后,表中的数据将保留在数据库中。

-q或--quiet:只输出测试结果,不输出每个事务的详细信息。

-v或--verbose:输出详细的测试信息。

-r或--rate=<每秒事务数>:指定每秒要执行的事务数。如果指定此参数,则并发用户数将被忽略,并且测试将尽可能接近指定的每秒事务数。

-P或--progress=<进度输出间隔>:指定测试进度输出的间隔时间。

-S或--select-only:指定只执行SELECT查询。

-T或--time=<测试时间>:指定测试的持续时间。如果指定此参数,则测试将在指定时间内尽可能地执行尽可能多的事务。

--client=<客户端程序>:指定要使用的客户端程序。

--log:指定测试结果输出的日志文件名。

--aggregate-interval=<统计时间间隔>:指定测试结果输出的统计时间间隔。

--latency-limit=<延迟限制>:指定测试结果输出的延迟限制。

--progress-timestamp:在测试进度输出中包含时间戳。

创建测试目录并测试,生成测试log文件

[gpadmin@gsgp60 gp_ops]$ mkdir pressureTest
[gpadmin@gsgp60 gp_ops]$ cd pressureTest/

#第一次测试
[gpadmin@gsgp60 pressureTest]$ nohup pgbench -c 1 -T 20 -r pgbench > file-1.out  2>&1
#第二次测试
[gpadmin@gsgp60 pressureTest]$ nohup pgbench -c 50 -T 200 -r pgbench > file-50.out  2>&1
#第三次测试
[gpadmin@gsgp60 pressureTest]$ nohup pgbench -c 200 -T 200 -r pgbench > file-200.out  2>&1

查看测试文件

[gpadmin@gsgp60 pressureTest]$ vi file-1.out


#以下是对测试文件的解读
nohup: 忽略输入
starting vacuum...end.
transaction type: TPC-B (sort of) #测试使用的是TPC-B事务类型
scaling factor: 1  #测试的规模为1倍(scaling factor: 1)
query mode: simple #测试的查询模式为simple,即每个客户端执行的都是相同的查询。
number of clients: 1 #测试使用了1个客户端
number of threads: 1 #测试使用了1个线程
duration: 20 s  #测试持续时间为20秒。
number of transactions actually processed: 520 #实际处理的事务数为520个
tps = 25.914746 (including connections establishing) #(TPS)为25.91(包括连接建立时间)
tps = 25.932584 (excluding connections establishing) #(TPS)为25.93(不包括连接建立时间)
statement latencies in milliseconds:
        0.006560        \set nbranches 1 * :scale
        0.001196        \set ntellers 10 * :scale
        0.001019        \set naccounts 100000 * :scale
        0.001779        \setrandom aid 1 :naccounts
        0.000879        \setrandom bid 1 :nbranches
        0.001033        \setrandom tid 1 :ntellers
        0.001067        \setrandom delta -5000 5000
        0.240248        BEGIN;
        6.408771        UPDATE pgbench_accounts SET abalance = abalance + :delta WHERE aid = :aid;
        4.876235        SELECT abalance FROM pgbench_accounts WHERE aid = :aid;
        5.945294        UPDATE pgbench_tellers SET tbalance = tbalance + :delta WHERE tid = :tid;
        5.904960        UPDATE pgbench_branches SET bbalance = bbalance + :delta WHERE bid = :bid;
        6.209535        INSERT INTO pgbench_history (tid, bid, aid, delta, mtime) VALUES (:tid, :bid, :aid, :delta, CURRENT_TIMESTAMP);
        8.940862        END;

---调不下去了。。等待修改

你可能感兴趣的:(postgresql,运维,数据库架构,测试工具,数据库)