pgbench进行postgres的压力测试

举报
鲲鹏小玩家 发表于 2020/03/31 17:28:32 2020/03/31
【摘要】 pgbench是基于tpc-b模型的postgresql测试工具。它属于开源软件,主要为对 PostgreSQL 进行压力测试的一款简单程序, SQL命令可以在一个连接中顺序地执行,通常会开多个数据库 Session, 并且在测试最后形成测试报告,得出每秒平均事务数,pgbench可以测试 select,update,insert,delete 命令,用户可以编写自己的脚本进行测试。 利用p...

pgbench是基于tpc-b模型的postgresql测试工具。它属于开源软件,主要为对 PostgreSQL 进行压力测试的一款简单程序, SQL命令可以在一个连接中顺序地执行,通常会开多个数据库 Session, 并且在测试最后形成测试报告,得出每秒平均事务数,pgbench可以测试 select,update,insert,delete 命令,用户可以编写自己的脚本进行测试。

 

利用pgbenchpostgresql进行性能测试

1、  安装准备

华为云购买一台鲲鹏服务器

本文以云服务器KC1实例搭建,云服务器配置如表1-1所示。

1-1 云服务器配置

项目

说明

规格

kc1.large.2 | 2vCPUs | 4GB

磁盘

系统盘:高IO40GB

操作系统要求如表1-2所示。

1-2 操作系统要求

项目

说明

下载地址

CentOS

7.6

在公共镜像中已提供。

Kernel

4.14.0-115

在公共镜像中已提供。

 

2、  部署postgresql

鲲鹏社区软件栈已经有部署文档,请参考

https://www.huaweicloud.com/kunpeng/software/postgresql.html

3、  测试之前当然还要建立一个测试数据库,这里就使用pgbench这个数据库名

image.png

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条数据

执行结果如下:

image.png

5、  pgbenchpostgresql进行压力测试

在不使用-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下,tps0

image.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。