1.命令


  1. pgbench --help
  2. pgbench is a benchmarking tool for PostgreSQL.
  3. Usage:
  4.   pgbench [OPTION]... [DBNAME]
  5. Initialization options:
  6.   -i, --initialize         invokes initialization mode 初始化模式
  7.   -F, --fillfactor=NUM     set fill factor
  8.   -n, --no-vacuum          do not run VACUUM after initialization
  9.   -q, --quiet              quiet logging (one message each 5 seconds)
  10.   -s, --scale=NUM          scaling factor
  11.   --foreign-keys           create foreign key constraints between tables    
  12.   --index-tablespace=TABLESPACE    
  13.                            create indexes in the specified tablespace    
  14.   --tablespace=TABLESPACE  create tables in the specified tablespace    
  15.   --unlogged-tables        create tables as unlogged tables    
  16.     
  17. Options to select what to run:    
  18.   -b, --builtin=NAME[@W]   add builtin script NAME weighted at W (default: 1)    
  19.                            (use "-b list" to list available scripts)    
  20.   -f, --file=FILENAME[@W]  add script FILENAME weighted at W (default: 1)  测试脚本位置(可以自定义)    
  21.   -N, --skip-some-updates  skip updates of pgbench_tellers and pgbench_branches    
  22.                            (same as "-b simple-update")    
  23.   -S, --select-only        perform SELECT-only transactions    
  24.                            (same as "-b select-only")    
  25.     
  26. Benchmarking options:    
  27.   -c, --client=NUM         number of concurrent database clients (default: 1)  模拟客户端个数,相当于并发量
  28.   -C, --connect            establish new connection for each transaction  设定为每一个事务建一个新连接   
  29.   -D, --define=VARNAME=VALUE    
  30.                            define variable for use by custom script    
  31.   -j, --jobs=NUM           number of threads (default: 1)    启动线程数
  32.   -l, --log                write transaction times to log file    
  33.   -L, --latency-limit=NUM  count transactions lasting more than NUM ms as late    
  34.   -M, --protocol=simple|extended|prepared    
  35.                            protocol for submitting queries (default: simple)    
  36.   -n, --no-vacuum          do not run VACUUM before tests    
  37.   -P, --progress=NUM       show thread progress report every NUM seconds    每隔数秒显示线程进度报告
  38.   -r, --report-latencies   report average latency per command    报告每个命令的平均延迟
  39.   -R, --rate=NUM           target rate in transactions per second    
  40.   -s, --scale=NUM          report this scale factor in output    
  41.   -t, --transactions=NUM   number of transactions each client runs (default: 10)    
  42.   -T, --time=NUM           duration of benchmark test in seconds   测试时间,单位:秒 
  43.   -v, --vacuum-all         vacuum all four standard tables before tests    
  44.   --aggregate-interval=NUM aggregate data over NUM seconds    
  45.   --progress-timestamp     use Unix epoch timestamps for progress    
  46.   --sampling-rate=NUM      fraction of transactions to log (e.g., 0.01 for 1%)    
  47. Common options:
  48.   -d, --debug              print debugging output    
  49.   -h, --host=HOSTNAME      database server host or socket directory    
  50.   -p, --port=PORT          database server port number    
  51.   -U, --username=USERNAME  connect as specified database user    
  52.   -V, --version            output version information, then exit
  53.   -?, --help               show this help, then exit
 

2.初始化


  1. su - postgres
  2. # 使用postgres作为测试库
  3. pgbench -i -d postgres
  4. # 使用默认参数创造的测试表,各表的数据量:
  5. pgbench_accounts:100000
  6. pg_branches:1
  7. pg_tellers:10
 
# 设置自定测试数据量,将测试数据扩大100倍,测试总数1000万,并且实时显示创建数据量
pgbench -i -F 100 -s 100 -d postgres
压测结果:
 
 

3.压力测试

(1)测试一个客户端session(用户)

# 时间20秒,显示每个命令的平均延迟
pgbench -c 1 -T 20 -r -d postgres
 

(2)测试30个客户端session(用户)

pgbench -c 30 -T 20 -r -d postgres

4.自定义脚本压力测试

# 创建测试表
create table test(id int primary key, info text, crt_time timestamp);
 
# 创建脚本


  1. vi test.sql
  2. \set id random(1,100000000)
  3. insert into test (id,info,crt_time) values (:id, md5(random()::text), now()) on conflict (id) do update set info=excluded.info, crt_time=excluded.crt_time;
 
# 压力测试
pgbench -M prepared -r  -f ./test.sql -c 32 -j 32 -T 20 -d postgres
 
  
 

文章知识点与官方知识档案匹配,可进一步学习相关知识
PostgreSQL技能树首页概览6104 人正在系统学习中

[转帖]PostgreSQL 压测工具pgbench的更多相关文章

  1. super-smack压测工具

    简介 super-smack是一款开源压测工具,支持MySQL.PostgreSQL.Oracle.本篇主要介绍一下使用super-smack压测MySQL体会. 1.SQL定义 2.数据字典定义 3 ...

  2. Http压测工具wrk使用指南

    用过了很多压测工具,却一直没找到中意的那款.最近试了wrk感觉不错,写下这份使用指南给自己备忘用,如果能帮到你,那也很好. 安装 wrk支持大多数类UNIX系统,不支持windows.需要操作系统支持 ...

  3. web压测工具http_load原理分析

    一.前言 http_load是一款测试web服务器性能的开源工具,从下面的网址可以下载到最新版本的http_load: http://www.acme.com/software/http_load/ ...

  4. [软件测试]网站压测工具Webbench源码分析

    一.我与webbench二三事 Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能.Webbench ...

  5. Http压测工具wrk使用指南【转】

    用过了很多压测工具,却一直没找到中意的那款.最近试了wrk感觉不错,写下这份使用指南给自己备忘用,如果能帮到你,那也很好. 安装 wrk支持大多数类UNIX系统,不支持windows.需要操作系统支持 ...

  6. python服务端多进程压测工具

    本文描述一个python实现的多进程压测工具,这个压测工具的特点如下: 多进程 在大多数情况下,压测一般适用于IO密集型场景(如访问接口并等待返回),在这种场景下多线程多进程的区分并不明显(详情请参见 ...

  7. 内存压测工具Memtester

    在做压力测试时,发现一个内存压测工具Memtester,可以随意设置内存占用大小,非常方便 下载地址:http://pyropus.ca/software/memtester/old-versions ...

  8. Http 压测工具 wrk 基本使用

    Http 压测工具 wrk 基本使用 Intro wrk 是一款现代HTTP基准测试工具,能够在单个多核CPU上运行时产生显着负载.它将多线程设计与可扩展事件通知系统(如epoll和kqueue)结合 ...

  9. 压测工具使用(vegeta)

    一.压测工具vegeta 1.介绍 Vegeta 是一个用 Go 语言编写的多功能的 HTTP 负载测试工具,它提供了命令行工具和一个开发库. 官方地址:https://github.com/tsen ...

  10. 003_ab http压测工具

    一. ab -r -k -c 20000 -n 25000000 https://www.uuwatch.me/abtest #ab压测工具单机最大并发为20000,可以在多台机器上执行以增大并发 y ...

随机推荐

  1. Ubuntu 安装Nvidia 显卡驱动

    在Nvidia官网下载对应驱动:https://www.nvidia.cn/geforce/drivers/ sudo vim /etc/modprobe.d/blacklist.conf black ...

  2. 2021-01-04:mysql里的innodb引擎的数据结构,你有看过吗?

    福哥答案2021-01-04: 面试官刚开始问我看过mysql源码没,然后问了这个问题.回答B+树,过不了面试官那关. 答案来自<MySQL技术内幕 InnoDB存储引擎 第2版>第四章, ...

  3. 手把手教您在PyCharm中连接云端资源进行代码调试

    摘要:ModelArts提供了一个PyCharm插件工具PyCharm ToolKit,协助用户完成代码上传.提交训练作业.将训练日志获取到本地展示等,用户只需要专注于本地的代码开发即可. 本文分享自 ...

  4. 基于OpenHarmony L2设备,如何用IoTDeviceSDKTiny对接华为云

    摘要:本文主要讲解如何基于L2设备对接华为云IoTDA,以DAYU200开发板,采用IoTDeviceSDKTiny对接华为云IoTDA,当然这里也可以采用其他OpenHarmony的富设备. 本文分 ...

  5. 云图说|每个成功的业务系统都离不开APIG的保驾护航

    摘要:华为云API网关(APIG)是为企业开发者及合作伙伴提供的高性能.高可用.高安全的API托管服务, 帮助企业轻松构建.管理和部署不同规模的API. 本文分享自华为云社区<[云图说]第243 ...

  6. 云图说丨初识数据工坊DWR

    摘要:数据工坊DWR是一款近数据处理服务,通过易用的工作流编排和开放生态的数据处理算子,能够在云上实现图像.视频.文档.图片等数据处理业务. 本文分享自华为云社区<[云图说]第236期 初识数据 ...

  7. 应用数仓ODBC前,这些问题你需要先了解一下

    摘要:ODBC为解决异构数据库间的数据共享而产生的,现已成为WOSA的主要部分和一种数据库访问接口标准. 本文分享自华为云社区<GaussDB(DWS) ODBC 问题定位指南>,作者: ...

  8. Go语言逆向技术:恢复函数名称算法

    摘要:在对程序做安全审计.漏洞检测时,通常都需要对程序做逆向分析,本文在没有符号表的情况下,提出了一种恢复函数名称的算法,方便对go语言二进制文件进行逆向分析,提升分析效率. 本文分享自华为云社区&l ...

  9. 100天搞定机器学习|Day60 遇事不决,XGBoost

    XGBoost 是一种集大成的机器学习算法,可用于回归,分类和排序等各种问题,在机器学习大赛及工业领域被广泛应用.成功案例包括:网页文本分类.顾客行为预测.情感挖掘.广告点击率预测.恶意软件分类.物品 ...

  10. web应用模式 api接口 接口测试工具postman restful规范

    目录 web应用模式 前后端混合开发 流程说明(重要) 前后端分离开发 流程说明(重要) api接口 接口测试工具postman 基本介绍 编码格式 restful规范(重要) 简介 主要内容 练习 ...