qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          基準測試工具之tpcc-mysql

           TPC(Tracsaction Processing Performance Council) 事務處理性能協會是一個評價大型數據庫系統軟硬件性能的非盈利的組織,TPC-C是TPC協會制定的,用來測試典型的復雜OLTP系統的性能。Tpcc-mysql是percona基于tpcc衍生出來的產品,專用于mysql基準測試,其源碼放在bazaar上,因此需要先安裝bazaar客戶端。

            一 下載工具

            安裝rpm包 ,根據系統的不同選擇合適的rpm

            rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

            rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm

            安裝bzr 客戶端

            yum install bzr

            下載tpcc-mysql

          [root@rac1 markbench]# bzr branch lp:~percona-dev/perconatools/tpcc-mysql
          You have not informed bzr of your Launchpad ID, and you must do this to
          write to Launchpad or access privatedata.  See "bzr help launchpad-login".
          Branched 48 revision(s).
          bzr: warning: some compiled extensions could not be loaded; see <https://answers.launchpad.net/bzr/+faq/703>
          [root@rac1 markbench]#

            遇到的問題

          [root@rac1 markbench]# bzr branch lp:~percona-dev/perconatools/tpcc-mysql
          bzr: ERROR: Couldn't import bzrlib and dependencies.
          Please check the directory containing bzrlib is on yourPYTHONPATH.
          Traceback (most recent call last):
          File "/usr/bin/bzr", line 102, in <module>
          import bzrlib
          ImportError: No module named bzrlib

            python安裝環境,建議使用python2.6的版本,提示找不到 bzrlib 模塊

            解決方法:

          [root@rac1 markbench]#   find / -name bzrlib -print
          /usr/lib64/python2.4/site-packages/bzrlib
          [root@rac1 markbench]# exportPYTHONPATH=/usr/lib64/python2.4/site-packages

            再次下載ok.

           二 編譯安裝

            進入源碼目錄

          cdtpcc-mysql/src
          !!!!make之前一定要修改src下面makefile的mysql_config
          make
          [root@rac1src]#make
          cc-w-O2-g-I.`mysql_config--include`-cload.c
          cc-w-O2-g-I.`mysql_config--include`-csupport.c
          ccload.osupport.o`mysql_config--libs_r`-lrt-o../tpcc_load
          cc-w-O2-g-I.`mysql_config--include`-cmain.c
          cc-w-O2-g-I.`mysql_config--include`-cspt_proc.c
          cc-w-O2-g-I.`mysql_config--include`-cdriver.c
          cc-w-O2-g-I.`mysql_config--include`-csequence.c
          cc-w-O2-g-I.`mysql_config--include`-crthist.c
          cc-w-O2-g-I.`mysql_config--include`-cneword.c
          cc-w-O2-g-I.`mysql_config--include`-cpayment.c
          cc-w-O2-g-I.`mysql_config--include`-cordstat.c
          cc-w-O2-g-I.`mysql_config--include`-cdelivery.c
          cc-w-O2-g-I.`mysql_config--include`-cslev.c
          ccmain.ospt_proc.odriver.osupport.osequence.orthist.oneword.opayment.oordstat.odelivery.oslev.o`mysql_config--libs_r`-lrt-o../tpcc_start

            三 初始化測試庫環境

            make命令會在tpcc-mysql目錄下生成 tpcc 命令行工具 tpcc_load ,tpcc_start

            tpcc_load  提供初始化數據的功能

            tpcc_start 進行壓力測試

            用法:

          # ./tpcc_load –help
          tpcc_load [server] [DB] [user] [pass] [warehouse]
          server :    服務器名
          DB     :    數據庫名
          user   :    用戶名
          pass   :    密碼
          warehouse: 倉庫的數量
          # ./tpcc_start –help
          tpcc_start -h server_host -P port -d database_name -u mysql_user -p mysql_password -w warehouses -c connections -r warmup_time -l running_time -i report_interval -f report_file

            介紹一下各個參數的用法

          -h server_host:      服務器名
          -P port :             端口號,默認為3306
          -d database_name:     數據庫名
          -u mysql_user :        用戶名
          -p mysql_password :    密碼
          -w warehouses:        倉庫的數量
          -c connections :       線程數,默認為1
          -r warmup_time :       熱身時間,單位:s,默認為10s ,熱身是為了將數據加載到內存。
          -l running_time:      測試時間,單位:s,默認為20s
          -i report_interval     指定生成報告間隔時長
          -f report_file :       測試結果輸出文件

            注意

            tpcc 默認會讀取/var/lib/mysql/mysql.sock 這個socket位置,如果你的測試環境的mysql socket不在相應路徑的話,就需要做個軟連接,或者通過TCP/IP的方式連接測試服務器。

            準備工作:

            mysqladmin  -uroot -h127.0.0.1 create tpcc          # 創建測試用的數據庫

            mysql -uroot -h127.0.0.1  tpcc < create_table.sql   # 創建測試用的表

            mysql -uroot -h127.0.0.1  tpcc < add_fkey_idx.sql   # 創建FK和索引

            1 創建五個數據倉庫

          ./tpcc_load  127.0.0.1 tpcc root "" 5
          *************************************
          *** ###easy### TPC-C Data Loader  ***
          *************************************
          <Parameters>
          [server]: 127.0.0.1
          [port]: 3306
          [DBname]: tpcc
          [user]: root
          [pass]:
          [warehouse]: 5
          TPCC Data Load Started...
          Loading Item
          .................................................. 5000
          .................................................. 10000

            忽略部分輸出結果


            四、進行測試

            #使用tpcc_start 進行5個線程的測試,熱身時間為120秒, 測試時間為1小時 !

          [root@rac1 tpcc-mysql]# tpcc_start  -hlocalhost  -d tpcc  -u root  -p '' -w 5  -c  5  -r 120   -l  300 -f tpcc_mysql_20130331.xls
          ***************************************
          *** ###easy### TPC-C Load Generator ***
          ***************************************
          option h with value 'localhost'
          option d with value 'tpcc'
          option u with value 'root'
          option p with value ''
          option w with value '5'
          option c with value '5'
          option r with value '120'
          option l with value '300'
          option f with value 'tpcc_mysql_20130331.xls'
          <Parameters>
          [server]: localhost
          [port]: 3306
          [DBname]: tpcc
          [user]: root
          [pass]:
          [warehouse]: 5
          [connection]: 5
          [rampup]: 120 (sec.)
          [measure]: 300 (sec.)
          RAMP-UP TIME.(120 sec.)
          MEASURING START. ---每隔10s 輸出一次結果
          10, 812(1):1.509|5.419, 814(0):0.447|1.575, 81(0):0.241|0.539, 82(0):2.270|2.824, 81(0):4.571|6.648
          ......
          290, 851(0):1.582|2.949, 849(0):0.441|0.630, 85(0):0.199|0.235, 86(0):1.937|2.000, 85(0):4.178|4.226
          300, 820(0):1.451|2.321, 822(0):0.443|0.718, 82(0):0.201|0.284, 81(0):1.922|2.972, 82(0):4.409|5.245
          STOPPING THREADS.....
          <Raw Results>
          [0] sc:25485  lt:1  rt:0  fl:0
          [1] sc:25487  lt:0  rt:0  fl:0
          [2] sc:2548  lt:0  rt:0  fl:0
          [3] sc:2549  lt:0  rt:0  fl:0
          [4] sc:2549  lt:0  rt:0  fl:0
          in 300 sec.
          <Raw Results2(sum ver.)>
          [0] sc:25485  lt:1  rt:0  fl:0
          [1] sc:25487  lt:0  rt:0  fl:0
          [2] sc:2548  lt:0  rt:0  fl:0
          [3] sc:2549  lt:0  rt:0  fl:0
          [4] sc:2549  lt:0  rt:0  fl:0
          <Constraint Check> (all must be [OK])
          [transaction percentage]
          Payment: 43.48% (>=43.0%) [OK]
          Order-Status: 4.35% (>= 4.0%) [OK]
          Delivery: 4.35% (>= 4.0%) [OK]
          Stock-Level: 4.35% (>= 4.0%) [OK]
          [response time (at least 90% passed)]
          New-Order: 100.00%  [OK]
          Payment: 100.00%  [OK]
          Order-Status: 100.00%  [OK]
          Delivery: 100.00%  [OK]
          Stock-Level: 100.00%  [OK]
          <TpmC>
          5097.200 TpmC


          posted on 2013-09-13 11:36 順其自然EVO 閱讀(1776) 評論(0)  編輯  收藏 所屬分類: 數據庫

          <2013年9月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 扬州市| 和静县| 喀喇| 根河市| 壶关县| 静安区| 子长县| 武陟县| 龙岩市| 石棉县| 昌黎县| 吉安县| 石泉县| 香港| 平山县| 郧西县| 泸西县| 冷水江市| 新津县| 栾城县| 宁武县| 华池县| 浦东新区| 河北省| 梓潼县| 武义县| 津南区| 江北区| 东至县| 定州市| 鲁山县| 高阳县| 永泰县| 紫阳县| 扎鲁特旗| 婺源县| 太康县| 杂多县| 辽阳县| 霞浦县| 开化县|