夜色av网/黄色aa级片/84pao国产成人高清在线/免费av资源

大數(shù)據(jù)就業(yè)實(shí)戰(zhàn)培訓(xùn) Oracle就業(yè)實(shí)戰(zhàn)培訓(xùn)

CUUG,以就業(yè)為導(dǎo)向,讓學(xué)員學(xué)到真正實(shí)用的技術(shù)

當(dāng)前位置: CUUG培訓(xùn)-優(yōu)技培訓(xùn) >> 關(guān)于我們 >

PolarDB(PostgreSQL版) TPC-C 性能測(cè)試

PolarDB(PostgreSQL版) TPC-C 性能測(cè)試

來(lái)源:CUUG培訓(xùn)-優(yōu)技培訓(xùn)    更新時(shí)間:2023/6/19 15:58:18    閱讀次數(shù):

TPC-C 測(cè)試

TPC-C 是一種衡量 OLTP 性能的基準(zhǔn)測(cè)試。TPC-C 混合了五種不同類型和復(fù)雜程度的并發(fā)交易,這五種并發(fā)交易又包括了在線執(zhí)行以及排隊(duì)延遲執(zhí)行。TPC-C 數(shù)據(jù)庫(kù)由九種類型的表組成,以每分鐘交易量(tmpC)來(lái)衡量具體性能。


前期準(zhǔn)備

部署 PolarDB-PG

在運(yùn)行前默認(rèn)已經(jīng)通過(guò)文檔 PolarDB 編譯部署:?jiǎn)螜C(jī)文件系統(tǒng) 部署好 PolarDB-PG 的本地實(shí)例。


安裝 Java 和 Ant

由于 TPC-C 測(cè)試工具 benchmarksql 需要通過(guò) Ant 來(lái)編譯,所以需要安裝 Java 和 Ant。這里安裝的 Java 版本為 8.0java-install,Ant 版本為 1.9.7ant-install。

::: tip 安裝 Java 和 Ant 的后需要修改環(huán)境變量。 :::

# 配置環(huán)境變量

vim /etc/profile

# 以下是本人機(jī)器上的配置,可以參考,路徑需要根據(jù)自己機(jī)器進(jìn)行調(diào)整

JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.332.b09-1.el7_9.x86_64

JRE_HOME=$JAVA_HOME/jre

CLASSPATH=.:$JRE_HOME/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

export JAVA_HOME JRE_HOME CLASSPATH PATH

#ant environment

export ANT_HOME=/home/postgres/apache-ant-1.9.16

export PATH=$PATH:$ANT_HOME/bin

# 生效

source /etc/profile

驗(yàn)證 Java 和 Ant 安裝成功。

# java

$ java -version

openjdk version "1.8.0_332"

OpenJDK Runtime Environment (build 1.8.0_332-b09)

OpenJDK 64-Bit Server VM (build 25.332-b09, mixed mode)

# ant

$ ant -version

Apache Ant(TM) version 1.9.16 compiled on July 10 2021


安裝 benchmarksql

我們將通過(guò) benchmarksql 工具來(lái)進(jìn)行 TPC-C 測(cè)試。

::: tip 下面鏈接中的 benchmarksql 采用的是 5.1 版本。相較于 5.0 版本,5.1 版本可以使用 Procedures,性能表現(xiàn)較好。推薦使用 5.1 版本。 :::

# 下載 benchmarksql

git clone https://github.com/petergeoghegan/benchmarksql

# 編譯

cd benchmarksql

ant


進(jìn)行 TPC-C 測(cè)試

TPC-C 測(cè)試主要分為四個(gè)步驟:載入數(shù)據(jù)、預(yù)熱數(shù)據(jù)、進(jìn)行測(cè)試、結(jié)果分析。下面將分別進(jìn)行說(shuō)明。

通過(guò)如下命令進(jìn)入到指定目錄:

cd run


TPC-C 配置文件

在使用 benchmarksql 運(yùn)行 TPC-C 測(cè)試的時(shí)候,需要指定配置參數(shù),配置包括要連接的數(shù)據(jù)庫(kù)類型(Oracle、PG)、IP、端口等。如下代碼塊說(shuō)明了具體的配置字段名以及含義:

::: tip 后續(xù)的載入數(shù)據(jù)、預(yù)熱數(shù)據(jù)、進(jìn)行測(cè)試都可以采用該配置文件,后續(xù)該配置文件的名稱都為 PolarDB_PG_Run.conf。 :::

# 要連接的數(shù)據(jù)庫(kù)類型,下面都以 postgres 為例

db=postgres

# 驅(qū)動(dòng)程序

driver=org.postgresql.Driver

# 連接的 IP 為 localhost, 端口為 5432, 數(shù)據(jù)庫(kù)為 tpcc

conn=jdbc:postgresql://localhost:5432/tpcc

# 數(shù)據(jù)庫(kù)用戶名

user=postgres

# 數(shù)據(jù)庫(kù)密碼

password=postgres

# 倉(cāng)庫(kù)數(shù)量,相當(dāng)于測(cè)試數(shù)據(jù)量

warehouses=10

# 裝載數(shù)據(jù)的進(jìn)程數(shù)量,可根據(jù)機(jī)器核數(shù)動(dòng)態(tài)調(diào)整

loadWorkers=20

# 運(yùn)行測(cè)試時(shí)的并發(fā)客戶端數(shù)量,一般設(shè)置為 CPU 線程總數(shù)的 2~6 倍。注意不能超過(guò)數(shù)據(jù)庫(kù)的最大連接數(shù)。 最大連接數(shù)可以通過(guò) show max_connections; 查看

terminals=20

# 每個(gè)終端運(yùn)行的事務(wù)數(shù),如果該值非 0,則運(yùn)行總事務(wù)數(shù)為 runTxnsPerTerminal * terminals。注意,runTxnsPerTerminal 不能和 runMins 同時(shí)非 0

runTxnsPerTerminal=0

# 運(yùn)行時(shí)間數(shù),單位為分鐘。注意,runTxnsPerTerminal 不能和 runMins 同時(shí)非 0

runMins=1

# 每分鐘執(zhí)行的最大事務(wù)數(shù),設(shè)置為0,則表示不加限制 ( Number of total transactions per minute )

limitTxnsPerMin=0

# 終端和倉(cāng)庫(kù)的綁定模式,設(shè)置為 true 時(shí)說(shuō)明每個(gè)終端有一個(gè)固定倉(cāng)庫(kù)。 一般采用默認(rèn)值 true

terminalWarehouseFixed=true

# 是否采用存儲(chǔ)過(guò)程,為 true 則說(shuō)明使用

useStoredProcedures=false

該配置的部分中文解釋說(shuō)明參考 benchmarksql 使用指南。


載入數(shù)據(jù)

腳本 runDatabaseBuild.sh 用來(lái)裝載數(shù)據(jù)。在裝載數(shù)據(jù)前,需要通過(guò) psql 命令 create database tpcc 創(chuàng)建 tpcc 數(shù)據(jù)庫(kù)。

執(zhí)行如下 bash 命令,執(zhí)行裝載數(shù)據(jù):

./runDatabaseBuild.sh PolarDB_PG_Run.conf

執(zhí)行成功的結(jié)果如下所示:

-- ----

-- Extra commands to run after the tables are created, loaded,

-- indexes built and extra\'s created.

-- PostgreSQL version.

-- ----

vacuum analyze;


預(yù)熱數(shù)據(jù)

腳本 runBenchmark.sh 用來(lái)執(zhí)行 TPC-C 測(cè)試。通常,在正式壓測(cè)前會(huì)進(jìn)行一次數(shù)據(jù)預(yù)熱。

數(shù)據(jù)預(yù)熱的命令如下:

./runBenchmark.sh PolarDB_PG_Run.conf


可能會(huì)出現(xiàn)的錯(cuò)誤以及解決方法

錯(cuò)誤日志:

ERROR jTPCC : Term-00, This session ended with errors!

解決方法:

該錯(cuò)誤說(shuō)明會(huì)話斷連,需要通過(guò)數(shù)據(jù)庫(kù)的日志來(lái)定位問(wèn)題,打印數(shù)據(jù)庫(kù)的錯(cuò)誤日志命令如下:

# 文件名需要替換成目錄中帶 error 的文件名

cat /home/postgres/tmp_master_dir_polardb_pg_1100_bld/pg_log/postgresql-2022-06-29_101344_error.log


進(jìn)行測(cè)試

數(shù)據(jù)預(yù)熱完,就可以進(jìn)行正式測(cè)試。正式測(cè)試的命令如下:

./runBenchmark.sh PolarDB_PG_Run.conf


結(jié)果分析

壓測(cè)結(jié)束后,結(jié)果如下所示:

11:49:15,896 [Thread-9] INFO jTPCC : Term-00, Measured tpmC (NewOrders) = 71449.03

11:49:15,896 [Thread-9] INFO jTPCC : Term-00, Measured tpmTOTAL = 164116.88

11:49:15,896 [Thread-9] INFO jTPCC : Term-00, Session Start = 2022-06-29 11:48:15

11:49:15,896 [Thread-9] INFO jTPCC : Term-00, Session End = 2022-06-29 11:49:15

11:49:15,896 [Thread-9] INFO jTPCC : Term-00, Transaction Count = 164187

Running Average tpmTOTAL / Measured tpmTOTAL:每分鐘平均執(zhí)行事務(wù)數(shù)(所有事務(wù))

Memory Usage:客戶端內(nèi)存使用情況

Measured tpmC (NewOrders) :每分鐘執(zhí)行的事務(wù)數(shù)(只統(tǒng)計(jì) NewOrders 事務(wù))

Transaction Count:執(zhí)行的交易總數(shù)量

該結(jié)果的部分解釋參考 benchmarksql 使用指南。


如何在不同場(chǎng)景下測(cè)試

本文檔主要提供了 PolarDB-PG 通用的 TPC-C 測(cè)試方式,如果需要進(jìn)行不同場(chǎng)景下的測(cè)試,比如:三節(jié)點(diǎn)、PFS 文件系統(tǒng)、Ceph 共享存儲(chǔ)等。需要通過(guò)對(duì)應(yīng)文檔創(chuàng)建數(shù)據(jù)庫(kù)實(shí)例,然后修改數(shù)據(jù)庫(kù)的配置。修改配置方式有兩個(gè):

可以通過(guò) psql 命令 alter system set ...; 和 select pg_reload_conf(); 來(lái)修改配置。

二是修改數(shù)據(jù)庫(kù)配置文件來(lái)實(shí)現(xiàn)修改配置,命令如下:

# 修改配置文件

vim /home/postgres/tmp_master_dir_polardb_pg_1100_bld/postgresql.auto.conf

# 重啟數(shù)據(jù)庫(kù)

/home/postgres/tmp_basedir_polardb_pg_1100_bld/bin/pg_ctl -D /home/postgres/tmp_master_dir_polardb_pg_1100_bld restart

后續(xù),再根據(jù)該文檔進(jìn)行 TPC-C 測(cè)試。

071考試
大數(shù)據(jù)課程
WDP
oracle機(jī)構(gòu)
oracle認(rèn)證
oracle課程
oracle視頻
CUUG就業(yè)實(shí)戰(zhàn)培訓(xùn)
CUUG與ORACLE公司建立最核心、最權(quán)威、最深層次的戰(zhàn)略合作伙伴關(guān)系;
CUUG是唯一一家只做DBA就業(yè)培訓(xùn)和oracle認(rèn)證的授權(quán)機(jī)構(gòu),28年培養(yǎng)數(shù)萬(wàn)名oracle技術(shù)人才;
CUUG金牌講師授課,來(lái)自一線的資深ORACLE OCM技術(shù)專家團(tuán)隊(duì);
CUUG頂尖完善的學(xué)習(xí)體系,以甲骨文原廠ORACLE數(shù)據(jù)庫(kù)核心技術(shù)為教學(xué)課程;

報(bào)名入口 點(diǎn)擊進(jìn)入

課程咨詢:400-0909-964

考試咨詢:400-0909-964

QQ:點(diǎn)擊獲取

E-mail:yuezt@cuug.com