iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >PostgreSQL中pgbench有什么作用
  • 417
分享到

PostgreSQL中pgbench有什么作用

2024-04-02 19:04:59 417人浏览 泡泡鱼
摘要

本篇内容主要讲解“postgresql中pgbench有什么作用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Postgresql中pgbench有什么作用”吧

本篇内容主要讲解“postgresql中pgbench有什么作用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Postgresql中pgbench有什么作用”吧!

pgbench是面向PostgreSQL的一个基准测试工具。默认情况下(工具默认提供),pgbench 测试基于TPC-B场景,每个事务包括5个SELECT、UPDATE 和INSERT命令。可以通过编写自己的事务脚本文件按需进行定制化测试。

一、数据初始化

通过-i参数,初始化基表和数据.创建测试基表pgbench_accounts/pgbench_branches/pgbench_history/pgbench_tellers

[atlasdb@localhost tmp]$ createdb pgbench
[atlasdb@localhost tmp]$ pgbench -i -U atlasdb -p 5432 -d pgbench
dropping old tables...
NOTICE:  table "pgbench_accounts" does not exist, skipping
NOTICE:  table "pgbench_branches" does not exist, skipping
NOTICE:  table "pgbench_history" does not exist, skipping
NOTICE:  table "pgbench_tellers" does not exist, skipping
creating tables...
generating data...
100000 of 100000 tuples (100%) done (elapsed 0.45 s, remaining 0.00 s)
vacuuming...
creating primary keys...
done.

二、参数说明

通过pgbench --help可以查看完整的参数列表.
其中:
-c, --client=NUM
数据库客户端数量,可以理解为数据库会话数量(postgres进程数),默认为1

-C, --connect
每个事务创建一个连接,由于PG使用进程模型,可以测试频繁Kill/Create进程的性能表现

-j, --jobs=NUM
pgbench的工作线程

-T, --time=NUM
以秒为单位的压测时长

-v, --vacuum-all
每次测试前执行vacuum命令,避免"垃圾"空间的影响

-M, --protocol=simple|extended|prepared
提交查询命令到服务器使用的协议,simple是默认选项,prepared是类似绑定

-r, --report-latencies
报告每条命令(SQL语句)的平均延时

-S, --select-only
只执行查询语句

[atlasdb@localhost tmp]$ pgbench --help
pgbench is a benchmarking tool for PostgreSQL.

Usage:
  pgbench [OPTioN]... [DBNAME]

Initialization options:
  -i, --initialize         invokes initialization mode
  -I, --init-steps=[dtgvpf]+ (default "dtgvp")
...

三、基本使用

执行基准测试
执行以下命令,启动4个工作线程,创建8个客户端连接PG:
pgbench -h 192.168.26.103 -U atlasdb -p 5432 -d pgbench -r -M prepared -v -T 120 -c 8 -j 4 --aggregate-interval=5 -l
以下为执行过程中的部分日志输出:

client 5 receiving
client 2 receiving
client 2 sending INSERT INTO pgbench_history (tid, bid, aid, delta, mtime) VALUES (2, 1, 39145, -3294, CURRENT_TIMESTAMP);
client 2 receiving
client 4 receiving
client 4 executing script "<builtin: TPC-B (sort of)>"
client 4 executing \set aid
client 4 executing \set bid
client 4 executing \set tid
client 4 executing \set delta
client 4 sending BEGIN;
client 4 receiving
client 2 receiving
client 2 sending END;
client 2 receiving
client 4 receiving
client 4 sending UPDATE pgbench_accounts SET abalance = abalance + 4608 WHERE aid = 80792;
client 4 receiving
client 4 receiving
client 4 sending SELECT abalance FROM pgbench_accounts WHERE aid = 80792;
client 4 receiving
client 2 receiving

下面是结果输出:

transaction type: <builtin: TPC-B (sort of)>
scaling factor: 1
query mode: prepared
number of clients: 8
number of threads: 4
duration: 120 s
number of transactions actually processed: 27809
latency average = 34.537 ms
tps = 231.635472 (including connections establishing)
tps = 231.685954 (excluding connections establishing)
statement latencies in milliseconds:
         0.035  \set aid random(1, 100000 * :scale)
         0.008  \set bid random(1, 1 * :scale)
         0.007  \set tid random(1, 10 * :scale)
         0.006  \set delta random(-5000, 5000)
         1.588  BEGIN;
         1.987  UPDATE pgbench_accounts SET abalance = abalance + :delta WHERE aid = :aid;
         1.829  SELECT abalance FROM pgbench_accounts WHERE aid = :aid;
         9.305  UPDATE pgbench_tellers SET tbalance = tbalance + :delta WHERE tid = :tid;
        15.904  UPDATE pgbench_branches SET bbalance = bbalance + :delta WHERE bid = :bid;
         1.741  INSERT INTO pgbench_history (tid, bid, aid, delta, mtime) VALUES (:tid, :bid, :aid, :delta, CURRENT_TIMESTAMP);
         2.101  END;

执行查询基准测试
pgbench -h 192.168.26.103 -U atlasdb -p 5432 -d pgbench -S -r -M prepared -v -T 120 -c 8 -j 4 --aggregate-interval=5 -l
最终结果如下:

transaction type: <builtin: select only>
scaling factor: 1
query mode: prepared
number of clients: 8
number of threads: 4
duration: 120 s
number of transactions actually processed: 418458
latency average = 2.294 ms
tps = 3486.766688 (including connections establishing)
tps = 3487.047954 (excluding connections establishing)
statement latencies in milliseconds:
         0.018  \set aid random(1, 100000 * :scale)
         2.266  SELECT abalance FROM pgbench_accounts WHERE aid = :aid;

到此,相信大家对“PostgreSQL中pgbench有什么作用”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

您可能感兴趣的文档:

--结束END--

本文标题: PostgreSQL中pgbench有什么作用

本文链接: https://www.lsjlt.com/news/64944.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PostgreSQL中pgbench有什么作用
    本篇内容主要讲解“PostgreSQL中pgbench有什么作用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PostgreSQL中pgbench有什么作用”吧...
    99+
    2024-04-02
  • PostgreSQL中ReceiveXlogStream有什么作用
    这篇文章主要介绍“PostgreSQL中ReceiveXlogStream有什么作用”,在日常操作中,相信很多人在PostgreSQL中ReceiveXlogStream有什么作用问题上存在疑惑,小编查阅了...
    99+
    2024-04-02
  • PostgreSQL中RecordAndGetPageWithFreeSpace有什么作用
    本篇内容介绍了“PostgreSQL中RecordAndGetPageWithFreeSpace有什么作用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处...
    99+
    2024-04-02
  • PostgreSQL中pgmetrics有什么作用
    本篇内容主要讲解“PostgreSQL中pgmetrics有什么作用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PostgreSQL中pgmetrics有什么...
    99+
    2024-04-02
  • postgresql有什么作用
    小编给大家分享一下postgresql有什么作用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!PostgreSQL 是一个免费的...
    99+
    2024-04-02
  • PostgreSQL中的​Rules有什么作用
    本篇内容介绍了“PostgreSQL中的Rules有什么作用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!...
    99+
    2024-04-02
  • PostgreSQL中commit log有什么作用
    本篇内容主要讲解“PostgreSQL中commit log有什么作用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PostgreSQL中commit log有...
    99+
    2024-04-02
  • PostgreSQL中的Declarations有什么作用
    本篇内容主要讲解“PostgreSQL中的Declarations有什么作用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PostgreSQL中的Declara...
    99+
    2024-04-02
  • PostgreSQL中hash_search_with_hash_value函数有什么作用
    本篇内容主要讲解“PostgreSQL中hash_search_with_hash_value函数有什么作用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Pos...
    99+
    2024-04-02
  • PostgreSQL中的User subroutines有什么作用
    本篇内容介绍了“PostgreSQL中的User subroutines有什么作用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔...
    99+
    2024-04-02
  • PostgreSQL中set_base_rel_pathlists函数有什么作用
    这篇文章主要介绍“PostgreSQL中set_base_rel_pathlists函数有什么作用”,在日常操作中,相信很多人在PostgreSQL中set_base_rel_pathlists函数有什么作...
    99+
    2024-04-02
  • PostgreSQL中grouping_planner函数有什么作用
    这篇文章主要介绍“PostgreSQL中grouping_planner函数有什么作用”,在日常操作中,相信很多人在PostgreSQL中grouping_planner函数有什么作用问题上存在疑惑,小编查...
    99+
    2024-04-02
  • PostgreSQL中fsm_search函数有什么作用
    本篇内容介绍了“PostgreSQL中fsm_search函数有什么作用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能...
    99+
    2024-04-02
  • PostgreSQL中StrategyGetBuffer函数有什么作用
    本篇内容介绍了“PostgreSQL中StrategyGetBuffer函数有什么作用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大...
    99+
    2024-04-02
  • PostgreSQL中heap_insert函数有什么作用
    这篇文章主要讲解了“PostgreSQL中heap_insert函数有什么作用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PostgreSQL中heap_...
    99+
    2024-04-02
  • PostgreSQL中create_index_path函数有什么作用
    本篇内容主要讲解“PostgreSQL中create_index_path函数有什么作用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PostgreSQL中cr...
    99+
    2024-04-02
  • PostgreSQL中mdread函数有什么作用
    本篇内容主要讲解“PostgreSQL中mdread函数有什么作用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PostgreSQL中mdread函数有什么作用...
    99+
    2024-04-02
  • PostgreSQL中RelationGetBufferForTuple函数有什么作用
    这篇文章主要讲解了“PostgreSQL中RelationGetBufferForTuple函数有什么作用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Po...
    99+
    2024-04-02
  • PostgreSQL中BufTableInsert函数有什么作用
    本篇内容介绍了“PostgreSQL中BufTableInsert函数有什么作用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细...
    99+
    2024-04-02
  • PostgreSQL中ReadBuffer_common函数有什么作用
    这篇文章主要介绍“PostgreSQL中ReadBuffer_common函数有什么作用”,在日常操作中,相信很多人在PostgreSQL中ReadBuffer_common函数有什么作用问题上存在疑惑,小...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作