[转帖]PostgreSQL 压测工具pgbench
1.命令
-
pgbench --help
-
-
pgbench is a benchmarking tool for PostgreSQL.
-
-
Usage:
-
pgbench [OPTION]... [DBNAME]
-
-
Initialization options:
-
-i, --initialize invokes initialization mode 初始化模式
-
-F, --fillfactor=NUM set fill factor
-
-n, --no-vacuum do not run VACUUM after initialization
-
-q, --quiet quiet logging (one message each 5 seconds)
-
-s, --scale=NUM scaling factor
-
--foreign-keys create foreign key constraints between tables
-
--index-tablespace=TABLESPACE
-
create indexes in the specified tablespace
-
--tablespace=TABLESPACE create tables in the specified tablespace
-
--unlogged-tables create tables as unlogged tables
-
-
Options to select what to run:
-
-b, --builtin=NAME[@W] add builtin script NAME weighted at W (default: 1)
-
(use "-b list" to list available scripts)
-
-f, --file=FILENAME[@W] add script FILENAME weighted at W (default: 1) 测试脚本位置(可以自定义)
-
-N, --skip-some-updates skip updates of pgbench_tellers and pgbench_branches
-
(same as "-b simple-update")
-
-S, --select-only perform SELECT-only transactions
-
(same as "-b select-only")
-
-
Benchmarking options:
-
-c, --client=NUM number of concurrent database clients (default: 1) 模拟客户端个数,相当于并发量
-
-C, --connect establish new connection for each transaction 设定为每一个事务建一个新连接
-
-D, --define=VARNAME=VALUE
-
define variable for use by custom script
-
-j, --jobs=NUM number of threads (default: 1) 启动线程数
-
-l, --log write transaction times to log file
-
-L, --latency-limit=NUM count transactions lasting more than NUM ms as late
-
-M, --protocol=simple|extended|prepared
-
protocol for submitting queries (default: simple)
-
-n, --no-vacuum do not run VACUUM before tests
-
-P, --progress=NUM show thread progress report every NUM seconds 每隔数秒显示线程进度报告
-
-r, --report-latencies report average latency per command 报告每个命令的平均延迟
-
-R, --rate=NUM target rate in transactions per second
-
-s, --scale=NUM report this scale factor in output
-
-t, --transactions=NUM number of transactions each client runs (default: 10)
-
-T, --time=NUM duration of benchmark test in seconds 测试时间,单位:秒
-
-v, --vacuum-all vacuum all four standard tables before tests
-
--aggregate-interval=NUM aggregate data over NUM seconds
-
--progress-timestamp use Unix epoch timestamps for progress
-
--sampling-rate=NUM fraction of transactions to log (e.g., 0.01 for 1%)
-
-
Common options:
-
-d, --debug print debugging output
-
-h, --host=HOSTNAME database server host or socket directory
-
-p, --port=PORT database server port number
-
-U, --username=USERNAME connect as specified database user
-
-V, --version output version information, then exit
-
-?, --help show this help, then exit
2.初始化
-
su - postgres
-
-
# 使用postgres作为测试库
-
pgbench -i -d postgres
-
-
# 使用默认参数创造的测试表,各表的数据量:
-
pgbench_accounts:100000
-
pg_branches:1
-
pg_tellers:10
pgbench -i -F 100 -s 100 -d postgres
3.压力测试
(1)测试一个客户端session(用户)
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);
-
vi test.sql
-
\set id random(1,100000000)
-
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 压测工具pgbench的更多相关文章
- super-smack压测工具
简介 super-smack是一款开源压测工具,支持MySQL.PostgreSQL.Oracle.本篇主要介绍一下使用super-smack压测MySQL体会. 1.SQL定义 2.数据字典定义 3 ...
- Http压测工具wrk使用指南
用过了很多压测工具,却一直没找到中意的那款.最近试了wrk感觉不错,写下这份使用指南给自己备忘用,如果能帮到你,那也很好. 安装 wrk支持大多数类UNIX系统,不支持windows.需要操作系统支持 ...
- web压测工具http_load原理分析
一.前言 http_load是一款测试web服务器性能的开源工具,从下面的网址可以下载到最新版本的http_load: http://www.acme.com/software/http_load/ ...
- [软件测试]网站压测工具Webbench源码分析
一.我与webbench二三事 Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能.Webbench ...
- Http压测工具wrk使用指南【转】
用过了很多压测工具,却一直没找到中意的那款.最近试了wrk感觉不错,写下这份使用指南给自己备忘用,如果能帮到你,那也很好. 安装 wrk支持大多数类UNIX系统,不支持windows.需要操作系统支持 ...
- python服务端多进程压测工具
本文描述一个python实现的多进程压测工具,这个压测工具的特点如下: 多进程 在大多数情况下,压测一般适用于IO密集型场景(如访问接口并等待返回),在这种场景下多线程多进程的区分并不明显(详情请参见 ...
- 内存压测工具Memtester
在做压力测试时,发现一个内存压测工具Memtester,可以随意设置内存占用大小,非常方便 下载地址:http://pyropus.ca/software/memtester/old-versions ...
- Http 压测工具 wrk 基本使用
Http 压测工具 wrk 基本使用 Intro wrk 是一款现代HTTP基准测试工具,能够在单个多核CPU上运行时产生显着负载.它将多线程设计与可扩展事件通知系统(如epoll和kqueue)结合 ...
- 压测工具使用(vegeta)
一.压测工具vegeta 1.介绍 Vegeta 是一个用 Go 语言编写的多功能的 HTTP 负载测试工具,它提供了命令行工具和一个开发库. 官方地址:https://github.com/tsen ...
- 003_ab http压测工具
一. ab -r -k -c 20000 -n 25000000 https://www.uuwatch.me/abtest #ab压测工具单机最大并发为20000,可以在多台机器上执行以增大并发 y ...
随机推荐
- 图片标注-----labelimage
本人用的环境是 win10 + python3.6 pip install labelimg 安装成功之后,找到 Anaconda 安装目录下的 Lib , 然后找到 site-pa ...
- springboot的启动器
前言 ~ 面试的时候,被问到springboot 官方提供的启动器常见的有哪些?(头大) 正文 ~ 启动器作用: 启动器是为了 适应 一个特定的场景的,里面定义了 这个场景下 需要用到的依赖. 启动器 ...
- (Dnc系列)借助Dnc.Events.InMemory在三分钟实现一个内存级别的事件驱动处理模型
前言 Dnc.Events是在借鉴领域驱动设计大佬daxnet的博客基础上做的基于内存级别的EDA处理模型,不清楚EDA的童鞋请自行百度. 第一分钟 安装Nuget Dnc.Events.InMemo ...
- Java中ArrayList的遍历与删除元素方式总结
在Java编程中,我们经常需要对数据结构进行遍历操作,并根据业务需求删除部分元素.而数组列表(ArrayList)是集合类中的一种,它可以动态地添加和删除元素,非常适合在程序中使用.本篇博客将总结Ar ...
- Docker、pre-commit 导致的 git commit 报错:找不到 python 3.8
到这个问题的原因可能有很多,这里只是记录下针对我遇到这这跟题的原因及解决方法 问题描述 执行 git commit 命令,报错 /usr/bin/env: 'python3.8': No such f ...
- Cesium渲染一帧中用到的图形技术
译者注:本文翻译自Cesium官方博文<Graphics Tech in Cesium - Rendering a Frame>,May 14, 2015 by Patrick Cozzi ...
- 用AI技术推动西安民俗文化,斗鱼超管团队有一套
摘要:AI成为传统文化发展的助推器,助力传统文化朝着大众化.数字化.个性化.精准化方向发展,赋予传统文化新的生机,延续传统文化新的生命."斗鱼团队"从五个方面进行阐述"纵 ...
- 玩转云上数据湖,解析Serverless 技术落地
导读: 本文主要介绍Serverless计算相关技术与其在华为云数据湖探索服务(后文简称DLI)中的技术落地.Serverless是DLI将计算能力服务化和产品化关键技术,与传统IAAS和PAAS技术 ...
- 企业新道路怎么走?火山引擎AB测试助力决策选择
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 乐刻是一家创立8年的企业,除了消费者熟悉的乐刻健身房可办月卡.24小时营业等,其还有比外界了解更多元的业务.目 ...
- SrpingBoot 集成 xxl-job 部署在 Docker 上碰到的坑
如果不指定 xxl.job.executor.ip,默认会用 Docker 的IP,注册到 xxl-job 里面,这时候无法回调 如果xxl.job.executor.ip.xxl.job.execu ...