昨天介紹什麼是 pgbench ,以及 pgbench 的功能和實際用途,今天就來聊聊如何使用吧!要進行測試的話,需要有資料和執行測試腳本,所以下面會介紹如何初始化資料庫和執行效能測試。
在進行測試前,需要測試數據,如果沒有資料可以供測試,可以選擇使用指令建立一些預設的測試資料表(例如: pgbench_accounts
)和測試數據,當然也可以選擇使用現有的資料表。如果要使用預設的測試資料表,可以使用下面的指令初始化測試資料表:
pgbench -i -s <scale_factor> -d <database_name>
-i
:初始化資料表和數據。-s <scale_factor>
:指定測試數據數量(每個 scale factor 生成約 100,000 筆資料)。-d <database_name>
:目標資料庫名稱。完整範例會像下面那樣
pgbench -i -s 10 -d test
如果要使用 pgbench 預設的腳本執行測試,可以使用下面的指令
pgbench -c <clients> -j <threads> -T <duration> -d <database_name>
-c <clients>
:指定併發用戶端數量。-j <threads>
:指定使用的執行緒數量。-T <duration>
:測試執行的時間(以秒為單位)。-d <database_name>
:目標資料庫名稱。完整範例會像下面範例一樣,模擬 10 個用戶端,使用 2 個執行緒執行測試,持續 30 秒。
pgbench -c 10 -j 2 -T 30 -d test
如果要使用自訂腳本,可以對上面指令加 -f
這個參數,並在後面指定要執行的 sql script 。舉例來說,有個 my_script.sql
檔案裡面的 sql 指令是
BEGIN;
SELECT * from locations
COMMIT;
只要在後面加 -f my_script.sql
就可以使用自訂的測試腳本
pgbench -c 10 -j 2 -T 30 -d test -f my_script.sql
這會模擬 10 個用戶端執行腳本中的查詢,並持續 30 秒。測試完成後,pgbench 會輸出每秒交易數(TPS)和平均延遲時間等指標。
執行完之後, pgbench 會列出一些指標和數字給使用者參考。
pgbench 是一個功能強大且靈活的基準測試工具,能夠幫助你深入了解在不同硬體規格(CPU、記憶體)、不同腳本和不同參數設定下,PostgreSQL 的效能表現。但在使用時需要注意,避免在生產環境直接進行壓力測試。