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
- Java基準效能測試--JMH使用介紹Java
- hadoop基準測試_Hadoop TeraSort基準測試Hadoop
- MySQL效能基準測試對比:5.7 VS 8.0MySql
- Java JSON解析器效能基準測試JavaJSON
- MySQL基準測試MySql
- TGI 基準測試
- postgresql無序uuid效能測試SQLUI
- PostgreSQL DBA(7) - pgbench簡介SQL
- 基於TPC-C基準的Python ORM的效能測試PythonORM
- Go 高效能系列教程之一:基準測試Go
- Python 3.11效能基準測試看起來很棒 - PhoronixPython
- Google 推出 C++ Go Java Scala的基準效能測試GoC++Java
- 效能測試準備工作例項
- 測試基準資料的準備
- 基準測試:FastAPI效能與 Node.js相差不多ASTAPINode.js
- php8.0 及php7.2效能基準簡單測試PHP
- MySQL學習 - 基準測試MySql
- 固態硬碟基準測試硬碟
- TPCC-MySQL基準測試MySql
- 【MYSQL 基準測試結果】MySql
- MySQL基準測試工具sysbenchMySql
- 《Redis官方教程》-基準測試Redis
- 【Mysql】sysbench基準測試工具MySql
- [轉帖]sysbench基準測試
- JMH- benchmark基準測試
- pgbench 壓力測試指令碼作為參考.指令碼
- hadoop-2.6.0基準測試Hadoop
- 【工具】基準測試工具之sysbench
- 痞子衡嵌入式:微處理器CPU效能測試基準(Dhrystone)
- 技術基礎 | Apache Cassandra 4.0基準測試Apache
- 資料庫基準測試工具 sysbench資料庫
- 公有云RDS-MySQL基準測試MySql
- 基準測試:HTTP/3 有多快? - requestmetricsHTTP
- 【MySQL】利用sysbench進行基準測試MySql
- Hadoop TeraSort 基準測試實驗Hadoop
- MySQL基準壓力測試工具MySQLSlapMySql