How to use pgbench to test performance for PostgreSQL?

pgbench 是一個用于測試 PostgreSQL 數據庫性能的基準測試工具。通過模擬多個客戶端并發執行 SQL 查詢,它可以幫助你評估數據庫的性能。以下是使用 pgbench 的基本步驟:

安裝 pgbench

pgbench 是 PostgreSQL 的一部分,因此在安裝 PostgreSQL 時通常也會包含它。在大多數 Linux 發行版上,你可以通過包管理器安裝 PostgreSQL:

# 對于 Ubuntu/Debian 系統
sudo apt-get install postgresql-contrib# 對于 CentOS/RHEL 系統
sudo yum install postgresql-contrib

基本用法

  1. 初始化測試數據庫:首先,必須初始化一個測試數據庫。在進行這個步驟之前,請確保數據庫服務器正在運行,并且你具有足夠的權限創建數據庫。

    export PGPASSWORD='<dbpassword>'
    pgbench -i -s <scaling factor> -h <server_ip> -p <port> -U <username> -d <dbname>例如:
    export PGPASSWORD='pgbench'
    pgbench -i -s 10 -h 192.168.0.1 -p 5432 -U pgbench -d pgbench_test

  2. 運行基準測試:初始化后,可以運行基準測試。以下是一些常用選項:

    export PGPASSWORD='<dbpassword>'
    pgbench -h <server_ip> -p <port> -U <username> -d <dbname> -c 10 -j 2 -T 60例如:
    export PGPASSWORD='pgbench'
    pgbench -h 192.168.0.1 -p 5432 -U pgbench -d pgbench_test -c 10 -j 2 -T 60-h <server_ip>:服務器 A 的 IP 地址。
    -p <port>:PostgreSQL 服務器的端口號(默認是 5432)。
    -U <username>:連接到數據庫的用戶名。
    -d <dbname>:數據庫名稱。
    -c 10:使用 10 個客戶端。
    -j 2:使用 2 個線程。
    -T 60:測試運行時間為 60 秒。

    示例輸出

  3. 運行 pgbench 命令后,類似的輸出信息如下:

    starting vacuum...end.
    transaction type: TPC-B (sort of)
    scaling factor: 10
    query mode: simple
    number of clients: 10
    number of threads: 2
    duration: 60 s
    number of transactions actually processed: 28290
    latency average = 21.230 ms
    latency stddev = 3.119 ms
    initial connection time = 1.506 ms
    tps = 471.200 (without initial connection time)transaction type: 測試使用的事務類型,通常是 TPC-B 風格的基準測試。
    scaling factor: 數據的規模因子。在初始化數據庫時使用的,影響了數據集的大小。
    query mode: 查詢模式(simple 或 extended)。
    number of clients: 模擬的客戶端數量。決定了并發加載的水平。
    number of threads: 使用的線程數。線程數可以優化性能,尤其在多核機器上。
    duration: 測試的運行時間(秒)。
    number of transactions actually processed: 實際處理的事務總數。
    latency average: 每個事務的平均延遲時間(毫秒)。延遲時間越低,性能越好。
    latency stddev: 延遲時間的標準差,反映出延遲的波動性或一致性。
    initial connection time: 測試開始時與數據庫的初始連接時間。
    tps (transactions per second): 每秒事務數,不包含初始連接時間。在評估數據庫的事務處理能力時,TPS 是一個重要指標,數值越高表示性能越好。
    

    注意事項

  • TPS (事務處理能力) 是非常重要的指標。通常希望在負載增加時 TPS 能夠線性增加。如果 TPS 隨著負載增加而下降,則可能存在瓶頸。

  • 延遲 (Latency) 也需要關注,尤其在需要低延遲的應用中。

  • 如果需要產生更詳細的分析(如 per-client latency 報告),可使用 --progress 選項來獲取按間隔時間的中間統計數據。也可以選用 --log 選項使 pgbench 保存詳細日志以供進一步分析。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/73523.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/73523.shtml
英文地址,請注明出處:http://en.pswp.cn/web/73523.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

應用服務接口第二次請求一直pending問題

目錄 一、問題背景二、問題排查過程三、解決方案四、總結 一、問題背景 升級內容發布到灰度環境&#xff0c;驗證相關服務&#xff0c;查看接口調用日志&#xff0c;發現第一次請求正常&#xff0c;第二次相同接口請求就一直pending&#xff0c;其他服務也是如此 二、問題排查…

嵌入式八股RTOS與Linux---網絡系統篇

前言 關于計網的什么TCP三次握手 幾層模型啊TCP報文啥的不在這里講,會單獨分成一個計算機網絡模塊 ??這里主要介紹介紹lwip和socket FreeRTOS下的網絡接口–移植LWIP 實際上FreeRTOS并不自帶網絡接口,我們一般會通過移植lwip協議棧讓FreeRTOS可以通過網絡接口收發數據,具體可…

推薦一款好看的 vue3 后臺模板

SoybeanAdmin 項目簡介 SoybeanAdmin 是一個基于最新前端技術棧的清新、優雅、高顏值且功能強大的后臺管理模板。它采用 Vue3, Vite5, TypeScript, Pinia, NaiveUI 和 UnoCSS 構建&#xff0c;為開發者提供了一個現代化、高效且易于擴展的后臺管理系統解決方案。 主要特點&am…

【django】1-1 django構建web程序的基礎知識

文章目錄 1 構建web應用的基礎知識1.1 互聯網相關的概念1.2 互聯網協議DNS(域名系統)IP協議(互聯網絡協議)TCP(傳輸控制協議)HTTP(超文本傳輸協議)SSL(安全套接字層)TLS(傳輸層安全) 1.3 URL 2 web程序2.1 web程序的本質2.2 web框架的設計模式1.2.1 經典的MVC設計模式1.2.2 Dja…

【智能體】從一個聊天工作流了解LangGraph

1. 前言 這篇文章將從如何搭建一個帶網絡搜索功能的聊天機器人工作流&#xff0c;帶你初步了解 LangGraph。 2. 前提條件 已搭建 Python 開發環境&#xff0c;使用 3.11 以上版本。 已熟悉 Python 基礎語法。可參考&#xff1a;【LLM】Python 基礎語法_llm python入門-CSDN博…

JAVA開發:實例成員與靜態成員

判斷Java中的實例成員與靜態成員 在Java中&#xff0c;可以通過以下幾種方式判斷一個成員是實例成員還是靜態成員&#xff1a; 1. 通過聲明方式判斷 靜態成員使用static關鍵字修飾&#xff0c;實例成員不使用&#xff1a; public class MyClass {// 實例成員int instanceVa…

Softmax 回歸 + 損失函數 + 圖片分類數據集

Softmax 回歸 softmax 回歸是機器學習另外一個非常經典且重要的模型&#xff0c;是一個分類問題。 下面先解釋一下分類和回歸的區別&#xff1a; 簡單來說&#xff0c;分類問題從回歸的單輸出變成了多輸出&#xff0c;輸出的個數等于類別的個數。 實際上&#xff0c;對于分…

MySQL-存儲過程

介紹 基本語法 創建 調用 查看 刪除 變量 系統變量 查看 設置 用戶定義變量 賦值 使用 局部變量 聲明 賦值 流程控制 參數 條件結構 IF case 循環結構 while repeat loop 游標 條件處理程序 介紹 舉個簡單的例子&#xff0c;我們先select某數據&…

使用 Go 和 Gin 實現高可用負載均衡代理服務器

前言 在現代分布式系統中,負載均衡是保障服務高可用性和性能的核心技術。本文將基于 Go 語言和 Gin 框架實現一個支持動態路由、健康檢查、會話保持等特性的企業級負載均衡代理服務器,并提供完整的壓力測試方案和優化建議。 通過本方案實現的負載均衡代理具備以下優勢: 單…

在 Linux(Ubuntu / CentOS 7)上快速搭建我的世界 MineCraft 服務器,并實現遠程聯機,詳細教程

Linux 部署 MineCraft 服務器 詳細教程&#xff08;丐版&#xff0c;無需云服務器&#xff09; 一、虛擬機 Ubuntu 部署二、下載 Minecraft 服務端三、安裝 JRE 21四、安裝 MCS manager 面板五、搭建服務器六、本地測試連接七、下載櫻花&#xff0c;實現內網穿透&#xff0c;邀…

批量取消 PDF 文檔中的所有超鏈接

在 PDF 文檔中我們可以插入各種各樣的文本也可以給文本設置字體&#xff0c;顏色等多種樣式&#xff0c;同時還可以給文字或者圖片添加上超鏈接&#xff0c;當我們點擊超鏈接之后&#xff0c;就會跳轉到對應的網頁。有時候這會對我們的閱讀或者使用形成一定的干擾&#xff0c;今…

Ubuntu xinference部署本地模型bge-large-zh-v1.5、bge-reranker-v2-m3

bge-large-zh-v1.5 下載模型到指定路徑&#xff1a; modelscope download --model BAAI/bge-large-zh-v1.5 --local_dir ./bge-large-zh-v1.5自定義 embedding 模型&#xff0c;custom-bge-large-zh-v1.5.json&#xff1a; {"model_name": "custom-bge-large…

Vue的實例

Every Vue application starts with a single Vue component instance as the application root. Any other Vue component created in the same application needs to be nested inside this root component. 每個 Vue 應用都以一個 Vue 組件實例作為應用的根開始。在同一個應…

Linux學習筆記(應用篇三)

基于I.MX6ULL-MINI開發板 LED學習GPIO應用編程輸入設備 開發板中所有的設備&#xff08;對象&#xff09;都會在/sys/devices 體現出來&#xff0c;是 sysfs 文件系統中最重要的目錄結構 /sys下的子目錄說明/sys/devices這是系統中所有設備存放的目錄&#xff0c;也就是系統中…

【圖論】網絡流算法入門

&#xff08;決定狠狠加訓圖論了&#xff0c;從一直想學但沒啟動的網絡流算法開始。&#xff09; 網絡流問題 ? 問題定義&#xff1a;在帶權有向圖 G ( V , E ) G(V, E) G(V,E) 中&#xff0c;每條邊 e ( u , v ) e(u, v) e(u,v) 有容量 c ( u , v ) c(u, v) c(u,v)&am…

遞歸、搜索與回溯第四講:floodfill算法

遞歸、搜索與回溯第四講&#xff1a;floodfill算法 1.Floodfill算法介紹2.圖像渲染3.島嶼數量4.島嶼的最大面積5.被圍繞的區域6.太平洋大西洋水流問題7.掃雷游戲8.衣櫥整理 1.Floodfill算法介紹 2.圖像渲染 3.島嶼數量 4.島嶼的最大面積 5.被圍繞的區域 6.太平洋大西洋水流問題…

【深度學習與實戰】2.3、線性回歸模型與梯度下降法先導案例--最小二乘法(向量形式求解)

為了求解損失函數 對 的導數&#xff0c;并利用最小二乘法向量形式求解 的值? 這是?線性回歸?的平方誤差損失函數&#xff0c;目標是最小化預測值 與真實值 之間的差距。 ?損失函數?&#xff1a; 考慮多個樣本的情況&#xff0c;損失函數為所有樣本的平方誤差之和&a…

氣象可視化衛星云圖的方式:方法與架構詳解

氣象衛星云圖是氣象預報和氣候研究的重要數據來源。通過可視化技術,我們可以將衛星云圖數據轉化為直觀的圖像或動畫,幫助用戶更好地理解氣象變化。本文將詳細介紹衛星云圖可視化的方法、架構和代碼實現。 一、衛星云圖可視化方法 1. 數據獲取與預處理 衛星云圖數據通常來源…

瀏覽器渲染原理與優化詳解

一、瀏覽器渲染基礎原理 瀏覽器渲染流程主要包括以下步驟&#xff08;也稱為"關鍵渲染路徑"&#xff09;&#xff1a; 構建DOM樹&#xff1a;將HTML解析為DOM&#xff08;文檔對象模型&#xff09;樹構建CSSOM樹&#xff1a;將CSS解析為CSSOM&#xff08;CSS對象模…

基于Spring Boot的成績管理系統后臺實現

下面是一個完整的成績管理系統后臺實現&#xff0c;使用Spring Boot框架&#xff0c;包含學生管理、課程管理和成績管理功能。 1. 項目結構 src/main/java/com/example/grademanagement/ ├── config/ # 配置類 ├── controller/ # 控制器 ├── dto/ …