pgbench进行postgres的压力测试
【摘要】 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 命令,用户可以编写自己的脚本进行测试。
利用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。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)