pgbench进行postgres的压力测试
pgbench是基于tpc-b模型的postgresql测试工具。它属于开源软件,主要为对 PostgreSQL 进行压力测试的一款简单程序, SQL命令可以在一个连接中顺序地执行,通常会开多个数据库 Session, 并且在测试最后形成测试报告,得出每秒平均事务数,pgbench可以测试 select,update,insert,delete 命令,用户可以编写自己的脚本进行测试。
利用pgbench对postgresql进行性能测试
1、 安装准备
华为云购买一台鲲鹏服务器
本文以云服务器KC1实例搭建,云服务器配置如表1-1所示。
表1-1 云服务器配置
项目 | 说明 |
规格 | kc1.large.2 | 2vCPUs | 4GB |
磁盘 | 系统盘:高IO(40GB) |
操作系统要求如表1-2所示。
表1-2 操作系统要求
项目 | 说明 | 下载地址 |
CentOS | 7.6 | 在公共镜像中已提供。 |
Kernel | 4.14.0-115 | 在公共镜像中已提供。 |
2、 部署postgresql
鲲鹏社区软件栈已经有部署文档,请参考
https://www.huaweicloud.com/kunpeng/software/postgresql.html
3、 测试之前当然还要建立一个测试数据库,这里就使用pgbench这个数据库名
4、 初始化测试数据
初始化数据库中的测试数据,使用pgbench -i进入初始化模式。
pgbench -i --unlogged-tables -s 2 -U postgres -p 5432 -d pgbench
以上参数中:
-i表示初始化模式,
--unlogged-tables表示创建没有log的表,
-s 2表示默认的数据的几倍,默认是100000条数据,其他是postgres连接的参数。每次测试默认会清除之前的表,创建完之后可以发现,pgbench_accounts表中有了200000条数据
执行结果如下:
5、 pgbench对postgresql进行压力测试
在不使用-i参数的时候,pgbench都是表示在进行压力测试,如下命令表示一个压力测试的案例。
pgbench -M prepared -r -c 8 -j 2 -T 10 -U postgres -p 5432 -d pgbench -l
以上参数中,
-M prepared表示绑定变量形式的调用SQL,
-r表示报告测试文件中每条SQL的平均执行延迟,
-c 8表示模拟8个客户端,-j 2表示pgbench的工作线程是2个,
-T 10表示压力测试的时间是10秒,
-l表示把事务统计写入log,其余的是postgres连接相关的参数。
执行上述命令后,屏幕上开始显示执行过程,最后给出测试总结,可以看出在这个testcase下,tps是0。
- 点赞
- 收藏
- 关注作者
评论(0)