<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          作為DBA,你不得不掌握的壓測工具

          共 4773字,需瀏覽 10分鐘

           ·

          2021-09-14 16:17


          mysqlslap


              mysqlslapMySQL自帶的一個用于實現(xiàn)負載性能測試和壓力測試的工具。它可以模擬多個客戶端對數(shù)據(jù)庫進行施壓,并生成報告來了解數(shù)據(jù)庫的性能狀況。
          mysqlslap的運行過程主要分三步:
          1. 創(chuàng)建庫、表,導(dǎo)入數(shù)據(jù)用于測試。此過程由單線程完成。

          2. 開始進行壓力測試。該步驟可以使用多線程完成。

          3. 清理測試數(shù)據(jù)。此過程由單線程完成。

          下面舉幾個例子來說明下如何使用mysqlslap。
          1. 自動生成測試表,其中會生成自增列,采用單線程進行測試。
          [root@node1 ~]# mysqlslap -uroot -p --auto-generate-sql --auto-generate-sql-load-type=mixed --auto-generate-sql-add-autoincrementEnter password:Benchmark#運行所有語句的平局時間,單位秒Average number of seconds to run all queries: 0.018 seconds#運行所有語句的最小秒數(shù)Minimum number of seconds to run all queries: 0.018 seconds#運行所有語句的最大秒數(shù)Maximum number of seconds to run all queries: 0.018 seconds#客戶端數(shù)量Number of clients running queries: 1#每個客戶端運行查詢的平均數(shù)Average number of queries per client: 0
          參數(shù)解釋:

          --auto-generate-sql:自動生成測試表和數(shù)據(jù),mysqlslap工具自己生成sql腳本進行測試。

          --auto-generate-sql-load-type:指定測試語句的類型。取值包括:read,key,write,update和mixed(默認)。

          --auto-generate-sql-add-autoincrement:生成的表中會添加自增列。

          2. 指定客戶端的數(shù)量以及總的查詢次數(shù)
          mysqlslap -uroot -p --auto-generate-sql --auto-generate-sql-load-type=mixed --concurrency=100 --number-of-queries=1000

          --concurrency=100:指定同時有100個客戶端連接
          --number-of-queries=1000:指定總的測試查詢次數(shù),該值除以concurrency的值就是每個客戶端執(zhí)行的查詢次數(shù)。

          3. 自定義表結(jié)構(gòu)以及SQL語句,指定50個客戶端,運行測試200次
          mysqlslap --delimiter=";" --create="CREATE TABLE a (b int);INSERT INTO a VALUES (23)" --query="SELECT * FROM a" --concurrency=50 --iterations=200
          --iterations代表要運行測試多少次。
          4. 使用參數(shù)指定列的數(shù)量和類型,比如int類型的字段兩列,varchar類型的字段3列。
          mysqlslap -uroot -p --concurrency=5 --iterations=20 --number-int-cols=2 --number-char-cols=3 --auto-generate-sql
          5. 從指定文件中加載create、insert、和select語句,當(dāng)文件中有多條語句時用”;”隔開。
          mysqlslap --concurrency=5 --iterations=5 --query=query.sql --create=create.sql --delimiter=";"

          sysbench


              sysbench是一款非常強大的數(shù)據(jù)庫測試工具,它可以執(zhí)行多種類型的基準(zhǔn)測試,目前主要支持MySQL、PostgreSQL、Oracle3種數(shù)據(jù)庫。
          它可以從https://github.com/akopytov/sysbench下載源碼包。
          安裝
          cd sysbench-0.5./autogen.sh./configure --prefix=/usr/local/sysbench --build=x86_64make && make installcp /usr/local/sysbench/bin/sysbench /usr/bin/驗證sysbench安裝是否成功。[root@node1 ~]# sysbench --versionsysbench 0.5
          針對CPU的基準(zhǔn)測試
          測試計算素數(shù)直到某個最大值所需要的時間。
          [root@node1 ~]# sysbench --test=cpu --cpu-max-prime=2000 runsysbench 0.5:  multi-threaded system evaluation benchmarkRunning the test with following options:Number of threads: 1Random number generator seed is 0 and will be ignored…………………………General statistics:total time:                          1.1302s…………………………….
          針對內(nèi)存的基準(zhǔn)測試
          sysbench --test=memory --memory-block-size=8k --memory-total-size=100G run
          針對文件IO的基準(zhǔn)測試
          1. 首先生成測試文件:隨機寫128個文件,共計2G
          sysbench --test=fileio --num-threads=20 --file-total-size=2G --file-test-mode=rndrw prepare
          2. 隨機讀取測試?件,查看耗費的時間
          sysbench --test=fileio --num-threads=20 --file-total-size=2G --file-test-mode=rndrw run
          其中--file-test-mode的選項如下:
          seqwr:順序?qū)懭?/span>
          seqrewr:順序重寫
          seqrd:順序讀取
          rndrd:隨機讀取
          rndwr:隨機寫入
          rndrw:混合隨機讀寫
          3. 測試完成,清理測試數(shù)據(jù)
          sysbench --test=fileio --num-threads=20 --file-total-size=2G --file-test-mode=rndrw cleanup
          針對OLTP的基準(zhǔn)測試
          1. 首先生成測試數(shù)據(jù),下面生成一張數(shù)據(jù)量百萬行記錄的表。
          sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --mysql-password=root prepare
          查詢生成的測試數(shù)據(jù):
          mysql> select count(*) from sbtest1;+----------+| count(*) |+----------+|  1000000 |+----------+
          2. 進行讀取驗證,采用8個并發(fā)線程,開啟只讀模式
          sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --mysql-password=root --max-time=60 --oltp-read-only=on --max-requests=0 --num-threads=8 run
          測試結(jié)果如下:
          OLTP test statistics:    queries performed:        read:                            407498        write:                           0        other:                           58214        total:                           465712    transactions:                        29107  (485.07 per sec.)    read/write requests:                 407498 (6790.91 per sec.)    other operations:                    58214  (970.13 per sec.)    ignored errors:                      0      (0.00 per sec.)    reconnects:                          0      (0.00 per sec.)General statistics:    total time:                          60.0064s    total number of events:              29107    total time taken by event execution: 479.9865s    response time:         min:                                  1.55ms         avg:                                 16.49ms         max:                                539.30ms         approx.  95 percentile:              25.98msThreads fairness:    events (avg/stddev):           3638.3750/42.84    execution time (avg/stddev):   59.9983/0.00
          其中transactions代表了測試結(jié)果的主要評判標(biāo)準(zhǔn),即TPS,上述測試結(jié)果中的tps485.7response time中展示了響應(yīng)時間的統(tǒng)計信息,展示了最小、最大、平均響應(yīng)時間,以及95%百分比的響應(yīng)時間。
          3. 清理測試數(shù)據(jù)
          sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --mysql-password=root cleanup
          瀏覽 54
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  澳门操逼视频 | 一区二区自拍偷拍0519 | a线视频免费观看:中文字幕 | 国产1234在线观看 | 大粗鸡巴久久久久 |