背景: postgresq部署在A服务器上,提供ip,端口,数据库,账号密码。
但是,无法登录该服务器,只能远程使用pgbench做简单的压测
pgbench使用教程
一、pgbench简介
pgbench是一种在PostgreSQL上运行基准测试的简单程序, 它是pg自带的工具; 它可能在并发的数据库会话中一遍一遍地运行相同序列的 SQL 命令,并且计算平均事务率(每秒的事务数); 默认情况下,pgbench会测试一种基于 TPC-B 但是要更宽松的场景,其中在每个事务中涉及五个SELECT、UPDATE以及INSERT命令。 通过编写自己的事务脚本文件很容易用来测试其他情况; 测试的目的是了解硬件的处理能力;通过调整参数优化数据库事务处理性能
二、安装
注1:如果直接能登录相关的虚拟机或进入容器,在安装目录的bin目录自带此工具,无需安装
注2:如果不提供的话,此处以redhat安装举例,安装pgbench 14
官网安装如下包:
rpm -ivh postgresql14-14.6-1PGDG.rhel7.x86_64.rpm
rpm -ivh postgresql14-libs-14.6-1PGDG.rhel7.x86_64.rpm
rpm -ivh postgresql14-contrib-14.6-1PGDG.rhel7.x86_64.rpm
# 此包非必须,可不用安装,安装需要依赖,省略
rpm -ivh postgresql14-server-14.6-1PGDG.rhel7.x86_64.rpm</pre>
# 验证
# 进入下面目录查看有无pgbench文件
cd /usr/pgsql-14/bin</pre>
三、压测
1.压测命令
# 1\. 首次,初始化数据库和表(命令执行后要输入远程pg服务器密码)
./pgbench -h 10.219.108.54 -p 5439 -U owdevice -d device -i
# 2\. 5个客户端,查和saql权重1:1,基准压测(命令执行后要输入远程pg服务器密码)
./pgbench -h 10.219.108.54 -p 5439 -U owdevice -d device -c 5 -f select.sql@1 -f insert.sql@1
2.通用参数详解
注:此处只讲解通用参数,压测细节参数查询官网,比较灵活,随机应变
官网地址:https://postgresql.ac.cn/docs/current/pgbench.html
-i:初始化模式
-s: 插入的倍数,默认是1,即插入100000条;也就是执行多少次generate_series(1,100000)
-h: 数据库服务器的主机名
-p:端口
-U: 登录名
-d: 数据库名
-f:指定的压测sql
@ :权重
-t: 客户端数目
3.注意事项
1.数据库中不得存在如下表,否则清空!!!!
pgbench_branches 1
pgbench_tellers 10
pgbench_accounts 100000
pgbench_history 0</pre>
2.select.sql和insert.sql来源
实际上这两个文件是自己写的和命名的,用来替换内置的默认sql。可以随意命名和修改内部的sql,以符合自己的压测场景。