postgresql:pgbench基準效能測試
一、pgbench介紹
pgbench -- 在PostgreSQL上執行一個基準測試
pgbench是一種在PostgreSQL上執行基準測試的簡單程式。它可能在併發的資料庫會話中一遍一遍地執行相同序列的 SQL 命令,並且計算平均事務率(每秒的事務數)。預設情況下,pgbench會測試一種基於 TPC-B 但是要更寬鬆的場景,其中在每個事務中涉及五個 SELECT 、 UPDATE 以及 INSERT 命令。但是,透過編寫自己的事務指令碼檔案很容易用來測試其他情況。
pgbench的典型輸出像這樣:
transaction type: <builtin: TPC-B (sort of)>
scaling factor: 10
query mode: simple
number of clients: 10
number of threads: 1
number of transactions per client: 1000
number of transactions actually processed: 10000/10000
tps = 85.184871 (including connections establishing)
tps = 85.296346 (excluding connections establishing)
前六行報告一些最重要的引數設定。接下來的行報告完成的事務數以及預期的事務數(後者就是客戶端數量與每個客戶端事務數的乘積),除非執行在完成之前失敗,這些值應該是相等的(在
-T
模式中,只有實際的事務數會被列印出來)。最後兩行報告每秒的事務數,分別代表包括和不包括開始資料庫會話所花時間的情況。
二、pg基準測試過程
pgbench初始化測試庫
pgbench -i會建立四個表pgbench_accounts、 pgbench_branches、pgbench_history以及pgbench_tellers,如果同名表已經存在會被先刪除。如果你已經有同名表,一定注意要使用另一個資料庫!
pgbench -i -s 1000 postgres -Ut_user
在預設的情況下 "比例因子" 為 1,這些表初始包含的行數為:
table # of rows
---------------------------------
pgbench_branches 1
pgbench_tellers 10
pgbench_accounts 100000
pgbench_history 0
#32個併發32個執行緒
pgbench -Ut_user -M prepared -r -P 1 -c 32 -j 32 -T 300 postgres
#64個併發64個執行緒
pgbench -Ut_user -M prepared -r -P 1 -c 64 -j 64 -T 300 postgres
#100個併發100個執行緒
pgbench -Ut_user -M prepared -r -P 1 -c 100 -j 100 -T 300 postgres
#200個併發200個執行緒
pgbench -Ut_user -M prepared -r -P 1 -c 200 -j 200 -T 300 postgres
三、測試結果
經過5輪場景測試結果反應不理想,事務延遲較高,200個併發使用者磁碟讀等待8ms,導致TPS上不去,IO等待原因可能是儲存效能瓶頸。主機側反饋當前儲存採用的RAID5,導致儲存效能下降。常規資料庫使用的儲存raid都採用的raid10,建議調整儲存的raid方式。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28833846/viewspace-2740262/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【PG效能測試】pgbench效能測試工具簡單使用
- PostgreSQL TPROC-C基準測試:PostgreSQL 12與PostgreSQL 13效能對比SQL
- MYSQL 效能測試方法 - 基準測試(benchmarking)MySql
- Java基準效能測試--JMH使用介紹Java
- hadoop基準測試_Hadoop TeraSort基準測試Hadoop
- PostgreSQL DBA(7) - pgbench簡介SQL
- MySQL效能基準測試對比:5.7 VS 8.0MySql
- Python 3.11效能基準測試看起來很棒 - PhoronixPython
- 基準測試
- postgresql無序uuid效能測試SQLUI
- 基於TPC-C基準的Python ORM的效能測試PythonORM
- TGI 基準測試
- benchmark 基準測試
- MinkowskiEngine基準測試
- Go 高效能系列教程之一:基準測試Go
- 基準測試:FastAPI效能與 Node.js相差不多ASTAPINode.js
- php8.0 及php7.2效能基準簡單測試PHP
- pgbench 壓力測試指令碼作為參考.指令碼
- [轉帖]sysbench基準測試
- 【基準測試】BenchmarkDotNet介紹
- MySQL學習 - 基準測試MySql
- JMH- benchmark基準測試
- 痞子衡嵌入式:微處理器CPU效能測試基準(Dhrystone)
- Lettuce和Jedis的基準測試
- ubuntu 快速測試 cpu 基準水平Ubuntu
- Linkerd和Istio基準測試 - linkerd
- MQTT 開放基準測試規範:全面評估你的 MQTT Broker 效能MQQT
- 衡量量子計算機效能的新型基準測試法出爐LTJ計算機
- 技術基礎 | Apache Cassandra 4.0基準測試Apache
- 公有云RDS-MySQL基準測試MySql
- 使用 JMH 做 Kotlin 的基準測試Kotlin
- 高通SNPE - 基準測試概述(3)
- 資料庫基準測試工具 sysbench資料庫
- Go 語言基準測試入門Go
- 基準測試:HTTP/3 有多快? - requestmetricsHTTP
- 一鍵獲取測試指令碼,輕鬆驗證“TSBS 時序資料庫效能基準測試報告”指令碼資料庫測試報告
- 【效能調優】效能測試、分析與調優基礎
- 基於jmeter的效能全流程測試JMeter