- VisualStudio2022插件的安装及使用-编程手把手系列文章
- pprof-在现网场景怎么用
- C#实现的下拉多选框,下拉多选树,多级节点
- 【学习笔记】基础数据结构:猫树
pgbench是一种在postgres上进行基准测试的简单程序,一般安装后就会自带。pgbench可以再并发的数据库绘画中一遍遍地进行相同序列的SQL语句,并且计算平均事务率.
既然要测postgres,肯定要先有个postgres。安装过程略过.
一些环境信息:
运行pgbench --help查看帮助文档 。
pgbench is a benchmarking tool for PostgreSQL.
Usage:
pgbench [OPTION]... [DBNAME]
Initialization options:
-i, --initialize 调用初始化模式
-I, --init-steps=[dtgGvpf]+ (default "dtgvp")
运行选定的初始化步骤
-F, --fillfactor=NUM 设置填充因子
-n, --no-vacuum 初始化期间不运行 VACUUM
-q, --quiet 安静日志记录(每 5 秒一条消息)
-s, --scale=NUM 缩放因子
--foreign-keys 在表之间创建外键约束
--index-tablespace=TABLESPACE
在指定的表空间中创建索引
--partition-method=(range|hash)
使用此方法对 pgbench_accounts 进行分区(默认:range)
--partitions=NUM 将 pgbench_accounts 分成 NUM 个部分(默认:0)
--tablespace=TABLESPACE 在指定的表空间中创建表
--unlogged-tables 将表创建为非记录表
Options to select what to run:
-b, --builtin=NAME[@W] 添加内置脚本 NAME,权重为 W(默认:1)
(使用 "-b list" 列出可用脚本)
-f, --file=FILENAME[@W] 添加脚本 FILENAME,权重为 W(默认:1)
-N, --skip-some-updates 跳过 pgbench_tellers 和 pgbench_branches 的更新
(与 "-b simple-update" 相同)
-S, --select-only 仅执行 SELECT 类型事务
(与 "-b select-only" 相同)
Benchmarking options:
-c, --client=NUM 并发数据库客户端数(默认:1)
-C, --connect 为每个事务建立新连接
-D, --define=VARNAME=VALUE
为自定义脚本定义变量
-j, --jobs=NUM 线程数(默认:1)
-l, --log 将事务时间写入日志文件
-L, --latency-limit=NUM 计数超过 NUM 毫秒的事务为延迟
-M, --protocol=simple|extended|prepared
提交查询的协议(默认:simple)
-n, --no-vacuum 在测试前不运行 VACUUM
-P, --progress=NUM 每 NUM 秒显示线程进度报告
-r, --report-per-command 每个命令报告延迟、失败和重试
-R, --rate=NUM 目标事务每秒速率
-s, --scale=NUM 在输出中报告此缩放因子
-t, --transactions=NUM 每个客户端运行的事务数(默认:10)
-T, --time=NUM 基准测试持续时间(秒)
-v, --vacuum-all 测试前清理所有四个标准表
--aggregate-interval=NUM 将数据汇总在 NUM 秒内
--failures-detailed 按基本类型分组报告失败情况
--log-prefix=PREFIX 事务时间日志文件的前缀
(默认:"pgbench_log")
--max-tries=NUM 运行事务的最大尝试次数(默认:1)
--progress-timestamp 使用 Unix 纪元时间戳作为进度
--random-seed=SEED 设置随机种子("time", "rand", 整数)
--sampling-rate=NUM 日志记录的事务比例(例如,0.01 代表 1%)
--show-script=NAME 显示内置脚本代码,然后退出
--verbose-errors 打印所有错误的消息
Common options:
-d, --debug 打印调试输出
-h, --host=HOSTNAME 数据库服务器主机或套接字目录
-p, --port=PORT 数据库服务器端口号
-U, --username=USERNAME 以指定的数据库用户身份连接
-V, --version 输出版本信息,然后退出
-?, --help 显示此帮助信息,然后退出
Report bugs to <pgsql-bugs@lists.postgresql.org>.
PostgreSQL home page: <https://www.postgresql.org/>
pgbench_accounts
中创建200000行数据。再次初始化的话,pgbench会先把旧表删除,然后再建测试表。pgbench -i -s 2
$ pgbench
pgbench (15.3)
starting vacuum...end.
transaction type: <builtin: TPC-B (sort of)> # 本次测试所使用的测试类型
scaling factor: 2 # 用于记录在初始化设置的数据量比例因子
query mode: simple # 测试是指定的查询类型
number of clients: 1 # 客户端数量
number of threads: 1 # 每个客户端的线程数
maximum number of tries: 1
number of transactions per client: 10 # 每个客户端的事务数
number of transactions actually processed: 10/10 # 实际完成的事务数量和计划完成的事务数量
number of failed transactions: 0 (0.000%)
latency average = 7.501 ms # 平均响应时间
initial connection time = 1.650 ms
tps = 133.317335 (without initial connection time)
删除测试数据 。
DROP TABLE IF EXISTS pgbench_accounts;
DROP TABLE IF EXISTS pgbench_branches;
DROP TABLE IF EXISTS pgbench_history;
DROP TABLE IF EXISTS pgbench_tellers;
500w数据量,postgres为默认配置 。
序号 | 测试命令 | 平均响应时间 | TPS | 总事务数 |
---|---|---|---|---|
1 | pgbench -T60 |
6.857 ms | 145.833890 | 8750 |
2 | pgbench -j2 -c4 -T60 |
11.505 ms | 347.677286 | 20858 |
3 | pgbench -j4 -c8 -T60 |
13.721 ms | 583.052560 | 34987 |
最后此篇关于[postgres]使用pgbench进行基准测试的文章就讲到这里了,如果你想了解更多关于[postgres]使用pgbench进行基准测试的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在使用 (PostgreSQL) 9.2.1 并使用 pgbench 测试数据库。 pgbench -h 192.168.39.38 -p 5433 -t 1000 -c 40 -j 8 -C -
我需要用 java(Windows) 编写一个应用程序,该应用程序将使用 -P 参数运行 pgbench 命令并从控制台读取输出。 我编写了.bat文件“windowsPostgr.bat”: set
我正在尝试编写自定义 pgbench 脚本来对我正在设置的新 postgres 集群进行基准测试。官方文档使它看起来很简单,但是看起来如果定义的变量缺少尾随空格(或其他一些未记录的字符),则并不总是被
我正在 Digital Ocean 的 8gb Ram/4 CPUs/80gb SSD 云服务器上测试 PostgreSQL。我最初使用 postgresql.conf 中的默认设置运行 PgBenc
请帮我澄清一下,pgbench 工具是否可以并行执行我自己的 sql 场景?谷歌搜索和本地搜索没有带来积极的结果。 我运行的脚本没有错误。但是在执行之后我没有看到任何迹象表明我的脚本实际上已经被执行了
如何为 postgresql 9.3 安装 pgbench? 我基本上已经在 centos 64 位上设置了我的 postgresql9.3,它运行良好。完全没问题。 然后我在我的 centos 机器
我是一名优秀的程序员,十分优秀!