PolarDB-X 1.0 TPC-C測(cè)試說明

背景信息

TPC-C是業(yè)界常用的一套Benchmark,由TPC委員會(huì)制定發(fā)布很泊,用于評(píng)測(cè)數(shù)據(jù)庫的聯(lián)機(jī)交易處理(偏向OLTP能力)角虫。主要涉及10張表,包含了NewOrder(新訂單的生成)撑蚌、Payment(訂單付款)上遥、OrderStatus(最近訂單查詢)搏屑、Delivery(配送)和StockLevel(庫存缺貨狀態(tài)分析)等五類業(yè)務(wù)事務(wù)模型争涌。TPC-C使用tpmC值(Transactions per Minute)來衡量系統(tǒng)最大有效吞吐量(MQTh,Max Qualified Throughput)辣恋,其中Transactions以NewOrder Transaction為準(zhǔn)亮垫,即最終衡量單位為每分鐘處理的新訂單數(shù)模软。

說明 本文的TPC-C的實(shí)現(xiàn)基于TPC-C的基準(zhǔn)測(cè)試,并不能與已發(fā)布的TPC-C基準(zhǔn)測(cè)試結(jié)果相比較饮潦,本文中的測(cè)試并不符合TPC-C基準(zhǔn)測(cè)試的所有要求燃异。

測(cè)試設(shè)計(jì)

  • 測(cè)試數(shù)據(jù)量
    • 針對(duì)普通實(shí)例性能測(cè)試,TPC-C測(cè)試結(jié)果主要基于1000 Warehouse继蜡,其中主要的表數(shù)據(jù)量如下:
      • bmsql_order_line 3億行
      • bmsql_stock 1億行
      • bmsql_customer回俐、bmsql_history、bmsql_oorder各3000萬行
    • 為了驗(yàn)證PolarDB-X 1.0的水平擴(kuò)展能力稀并,還引入了超大規(guī)格實(shí)例的TPC-C測(cè)試仅颇,相比于普通實(shí)例擴(kuò)展了近10倍的資源。在超大規(guī)格壓測(cè)設(shè)計(jì)上碘举,構(gòu)建了10000 Warehouse忘瓦,同時(shí)TPC-C施壓機(jī)需要增加到3臺(tái)32核的ECS機(jī)器,避免壓測(cè)本身成為了瓶頸點(diǎn)引颈。
  • 測(cè)試所用實(shí)例規(guī)格
    • 企業(yè)版測(cè)試環(huán)境:PolarDB-X 1.0計(jì)算資源實(shí)例企業(yè)版32核128 GB(單節(jié)點(diǎn)16核64 GB)耕皮、4臺(tái)RDS MySQL 5.7實(shí)例(8核32 GB獨(dú)享型)。
    • 標(biāo)準(zhǔn)版測(cè)試環(huán)境:PolarDB-X 1.0計(jì)算資源實(shí)例標(biāo)準(zhǔn)版16核64 GB(單節(jié)點(diǎn)8核32 GB)蝙场、4臺(tái)RDS MySQL 5.7實(shí)例(4核32 GB獨(dú)享型)凌停。
    • 超大規(guī)格測(cè)試環(huán)境:PolarDB-X 1.0計(jì)算資源實(shí)例企業(yè)版256核1024 GB(單節(jié)點(diǎn)16核64 GB)、12臺(tái)RDS MySQL 5.7實(shí)例(32核128 GB獨(dú)享型)售滤。

測(cè)試方法

  • 步驟1:準(zhǔn)備壓力機(jī)ECS

    需準(zhǔn)備一個(gè)ECS苦锨,后續(xù)操作步驟中涉及的數(shù)據(jù)準(zhǔn)備、運(yùn)行壓測(cè)等使用的都是這臺(tái)ECS機(jī)器趴泌。

    說明 建議將測(cè)試所用ECS部署在VPC網(wǎng)絡(luò)內(nèi)(如選擇經(jīng)典網(wǎng)絡(luò)可能出現(xiàn)RDS某些規(guī)格沒有庫存的情況)舟舒。請(qǐng)記住該VPC的名稱和ID,后續(xù)的所有實(shí)例都將部署在該VPC內(nèi)嗜憔。

  • 步驟2:準(zhǔn)備壓測(cè)所用PolarDB-X 1.0實(shí)例

    1. 創(chuàng)建PolarDB-X 1.0實(shí)例秃励,詳細(xì)操作步驟請(qǐng)參見步驟一:購買PolarDB-X 1.0計(jì)算層資源創(chuàng)建實(shí)例
    2. 在實(shí)例中創(chuàng)建一個(gè)待壓測(cè)的數(shù)據(jù)庫(本測(cè)試中數(shù)據(jù)庫名為tpcc吉捶,詳細(xì)操作步驟請(qǐng)參見步驟二:在私有定制RDS實(shí)例之上構(gòu)建PolarDB-X 1.0數(shù)據(jù)庫

    說明 需保證ECS和在同一個(gè)VPC中夺鲜。

  • 步驟3:壓測(cè)數(shù)據(jù)準(zhǔn)備

    1. 準(zhǔn)備壓測(cè)工具

      說明

      1. 下載改造好的壓測(cè)包tpcc.tar.gz食呻,并在ECS中執(zhí)行如下命令將其解壓到tpcc目錄:

        mkdir tpcc 
        tar zxvf tpcc.tar.gz -C tpcc        
        
      2. 按如下說明修改壓縮包內(nèi)的對(duì)應(yīng)文件:

        src/client/jTPCC.java(增加一個(gè)MySQL的type)
        src/client/jTPCCConnection.java(支持MySQL的語法,加一個(gè)別名)
        src/LoadData/LoadData.java(關(guān)閉loader數(shù)據(jù)時(shí)的大事務(wù)機(jī)制)
        src/LoadData/LoadDataWorker.java(關(guān)閉loader數(shù)據(jù)時(shí)的大事務(wù)機(jī)制)
        run/funcs.sh(腳本增加一個(gè)MySQL的type)
        run/runDatabaseBuild.sh(去掉不必要的階段)
        run/runBenchmark.sh(調(diào)整默認(rèn)jvm參數(shù))
        run/runLoader.sh(調(diào)整默認(rèn)jvm參數(shù))
        run/sql.common/foreignKeys.sql (注釋全部外鍵創(chuàng)建,PolarDB-X 1.0不支持外鍵)
        run/sql.common/indexCreates.sql (注釋掉全部主鍵創(chuàng)建仅胞,只留2個(gè)索引創(chuàng)建每辟,MySQL默認(rèn)在建表時(shí)直接創(chuàng)建索引)
        run/sql.common/indexDrops.sql(注釋全部主鍵刪除)
        run/sql.common/tableCreates.sql(添加主鍵和拆分鍵,PolarDB-X 1.0需要指定拆分鍵)
        
    2. 準(zhǔn)備壓測(cè)配置

      在ECS中執(zhí)行如下命令干旧,在tpcc/run目錄下創(chuàng)建props.mysql文件:

      // --------- env config --------- // 
      db=mysql
      driver=com.mysql.jdbc.Driver
      conn=jdbc:mysql://drdsxxxx:3306/tpcc?
      useSSL=false&useServerPrepStmts=false&useConfigs=maxPerformance&rewriteBatchedStatements=true
      user=tpcc
      password=tpcc
      
      // warehouse 數(shù)量
      warehouses=1000
      // 導(dǎo)入數(shù)據(jù)的并發(fā)數(shù)渠欺,每100并發(fā)預(yù)計(jì)產(chǎn)生2萬TPS,可以結(jié)合目標(biāo)TPS能力調(diào)整并發(fā)
      // runLoader.sh的jvm內(nèi)存椎眯,100并發(fā)默認(rèn)為4 GB挠将,500并發(fā)建議設(shè)置為16 GB
      loadWorkers=100
      
      // TPC-C 壓測(cè)并發(fā)數(shù)
      terminals=1000
      // 壓測(cè)時(shí)間,單位分鐘
      runMins=10
      // ---------- default config ------- //
      //To run specified transactions per terminal- runMins must equal zero
      runTxnsPerTerminal=0
      //Number of total transactions per minute
      limitTxnsPerMin=0
      
      //Set to true to run in 4.x compatible mode. Set to false to use the
      //entire configured database evenly.
      terminalWarehouseFixed=true
      
      //The following five values must add up to 100
      //The default percentages of 45, 43, 4, 4 & 4 match the TPC-C spec
      newOrderWeight=45
      paymentWeight=43
      orderStatusWeight=4
      deliveryWeight=4
      stockLevelWeight=4
      
      // Directory name to create for collecting detailed result data.
      // Comment this out to suppress.
      resultDirectory=my_result_%tY-%tm-%td_%tH%tM%tS
      
      // osCollectorScript=./misc/os_collector_linux.py
      // osCollectorInterval=1
      // osCollectorSSHAddr=user@dbhost
      // osCollectorDevices=net_eth0 blk_sda
      

      說明

      • 導(dǎo)入壓測(cè)數(shù)據(jù)時(shí)编整,需要關(guān)注warehouses(倉庫數(shù))和loadWorkers(并發(fā)數(shù))捐名。
      • TPC-C壓測(cè)時(shí),需要關(guān)注terminals(并發(fā)數(shù))和runMins(運(yùn)行時(shí)間)闹击。
    3. 壓測(cè)執(zhí)行

      1. 在ECS中執(zhí)行如下命令準(zhǔn)備壓測(cè)數(shù)據(jù):

        cd tpcc/run
        nohup ./runDatabaseBuild.sh props.mysql &
        

        說明 默認(rèn)按照100并發(fā)導(dǎo)入镶蹋,總共5億多記錄,整體導(dǎo)入時(shí)間在小時(shí)級(jí)別赏半,建議通過nohup推到后臺(tái)運(yùn)行贺归,避免ssh命令行斷開導(dǎo)致導(dǎo)入中斷。

      2. 執(zhí)行如下命令運(yùn)行TPC-C測(cè)試:

        cd tpcc/run
        ./runBenchmark.sh props.mysql
        

        運(yùn)行之后可以看到如下測(cè)試結(jié)果:

        08:56:16,844 [Thread-883] INFO   jTPCC : Term-00, Measured tpmC (NewOrders) = 104230.88
        08:56:16,844 [Thread-883] INFO   jTPCC : Term-00, Measured tpmTOTAL = 231664.49
        08:56:16,844 [Thread-883] INFO   jTPCC : Term-00, Session Start     = 2019-09-19 08:54:16
        08:56:16,845 [Thread-883] INFO   jTPCC : Term-00, Session End       = 2019-09-19 08:56:16
        08:56:16,845 [Thread-883] INFO   jTPCC : Term-00, Transaction Count = 465440
        

        說明 tpmC值即為對(duì)應(yīng)壓測(cè)場(chǎng)景下的結(jié)果断箫。更多測(cè)試結(jié)果詳情拂酣,請(qǐng)參見測(cè)試結(jié)果

      3. 執(zhí)行如下命令清理壓測(cè)數(shù)據(jù):

        cd tpcc/run
        ./runDatabaseDestroy.sh props.mysql
        

測(cè)試結(jié)果

<caption style="padding: 0px; margin: 0px; box-sizing: border-box; font-style: normal; font-weight: 500; text-align: left;"></caption><colgroup style="padding: 0px; margin: 0px; box-sizing: border-box;"><col style="padding: 0px; margin: 0px; box-sizing: border-box; width: 202.25px;"><col style="padding: 0px; margin: 0px; box-sizing: border-box; width: 202.25px;"><col style="padding: 0px; margin: 0px; box-sizing: border-box; width: 202.25px;"><col style="padding: 0px; margin: 0px; box-sizing: border-box; width: 202.25px;"></colgroup>

并發(fā)度 標(biāo)準(zhǔn)版實(shí)例tpmC 企業(yè)版實(shí)例tpmC 超大規(guī)格實(shí)例tpmC
1個(gè)客戶端x 1000并發(fā) 65,735.14 101,620.8 /
6個(gè)客戶端x 1000并發(fā) / / 821,547.97

[圖片上傳失敗...(image-8ee409-1648452478887)]

</article>

</main>

上一篇:性能白皮書下一篇:TPC-H測(cè)試說明

猜你想看

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末仲义,一起剝皮案震驚了整個(gè)濱河市婶熬,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌埃撵,老刑警劉巖赵颅,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異暂刘,居然都是意外死亡饺谬,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門谣拣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來募寨,“玉大人,你說我怎么就攤上這事森缠“斡ィ” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵贵涵,是天一觀的道長(zhǎng)列肢。 經(jīng)常有香客問我恰画,道長(zhǎng),這世上最難降的妖魔是什么例书? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任锣尉,我火速辦了婚禮刻炒,結(jié)果婚禮上茂嗓,老公的妹妹穿的比我還像新娘替蔬。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布魁兼。 她就那樣靜靜地躺著,像睡著了一般沟使。 火紅的嫁衣襯著肌膚如雪愚争。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天访敌,我揣著相機(jī)與錄音凉敲,去河邊找鬼。 笑死寺旺,一個(gè)胖子當(dāng)著我的面吹牛爷抓,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播阻塑,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼蓝撇,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了陈莽?” 一聲冷哼從身側(cè)響起渤昌,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎走搁,沒想到半個(gè)月后独柑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡私植,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年群嗤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片兵琳。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡狂秘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出躯肌,到底是詐尸還是另有隱情者春,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布清女,位于F島的核電站钱烟,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜拴袭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一读第、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧拥刻,春花似錦怜瞒、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蒸眠,卻和暖如春漾橙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背楞卡。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來泰國打工霜运, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蒋腮。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓淘捡,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親徽惋。 傳聞我的和親對(duì)象是個(gè)殘疾皇子案淋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容