mysql mysqlslap壓力測試用例

來源:互聯網
上載者:User

標籤:mysql mysqlslap壓力測試用例

A 測試案例

1 唯寫壓力測試:

  用例:自動建立表 寫入一百萬條資料 用戶端並發500 測試innodb儲存引擎 

  命令:mysqlslap --auto-generate-sql-add-autoincrement -a --number-of-queries=1000000 --number-char-cols=4 --number-int-cols=4 --engine=innodb --debug-info --concurrency=1000 -uroot -ppass -hmysql_ip --auto-generate-sql-load-type=write 

測試結果:

Benchmark

        Running for engine innodb

        Average number of seconds to run all queries: 65.679 seconds

        Minimum number of seconds to run all queries: 65.679 seconds

        Maximum number of seconds to run all queries: 65.679 seconds

        Number of clients running queries: 1000

        Average number of queries per client: 1000


User time 2.19, System time 8.72

Maximum resident set size 55156, Integral resident set size 0

Non-physical pagefaults 9038, Physical pagefaults 0, Swaps 0

Blocks in 0 out 0, Messages in 0 out 0, Signals 0

Voluntary context switches 1701179, Involuntary context switches 130


2 唯讀壓力測試:

用例:自動建立測試表 (測試表會自動寫入100條資料 )全表查詢(類似select * from testtable;)一百萬次 用戶端並發1000 測試innodb             儲存引擎 

命令:mysqlslap --auto-generate-sql-add-autoincrement -a  --number-char-cols=4 --number-int-cols=4 --engine=innodb --debug-info --concurrency=1000 -urootchar-cols=4 --number-int-cols=4 --engine=innodb --debug-info --concurrency=1000 -es=1000000         [[email protected] ~]# mysqlslap --auto-generate-sql-add-autoincrement -a  --number-char-cols=4 --number-int-cols=4 --engine=innodb --debug-info --concurrency=1000 -uroot -ppass -hhostname  --auto-generate-sql-load-type=read  --number-of-queries=1000000

測試結果:

Benchmark

        Running for engine innodb

        Average number of seconds to run all queries: 472.059 seconds

        Minimum number of seconds to run all queries: 472.059 seconds

        Maximum number of seconds to run all queries: 472.059 seconds

        Number of clients running queries: 1000

        Average number of queries per client: 1000


User time 76.06, System time 79.68

Maximum resident set size 121716, Integral resident set size 0

Non-physical pagefaults 61682, Physical pagefaults 0, Swaps 0

Blocks in 0 out 0, Messages in 0 out 0, Signals 0

Voluntary context switches 15308027, Involuntary context switches 82

   

3 讀寫混合測試:

 用例:讀寫混合測試一百萬條語句, 用戶端並發1000 測試innodb儲存引擎 。select 語句非全表查詢,包含條件表達類似(WHERE id =  ‘xxx‘;)

命令: mysqlslap --auto-generate-sql-add-autoincrement -a  --number-char-cols=4 --number-int-cols=4 --engine=innodb --debug-info --concurrency=1000 -uroot -ppass -hmysql_ip  --auto-generate-sql-load-type=mixed  --number-of-queries=1000000

測試結果:

Benchmark

        Running for engine innodb

        Average number of seconds to run all queries: 45.507 seconds

        Minimum number of seconds to run all queries: 45.507 seconds

        Maximum number of seconds to run all queries: 45.507 seconds

        Number of clients running queries: 1000

        Average number of queries per client: 1000


User time 4.41, System time 7.64

Maximum resident set size 56900, Integral resident set size 0

Non-physical pagefaults 9601, Physical pagefaults 0, Swaps 0

Blocks in 0 out 0, Messages in 0 out 0, Signals 0


總結:讀壓力測試和讀寫混合壓力測試中使用的select語句不一樣,導致結果相差很大。讀壓力測試是全表所有記錄都查詢出來,而讀寫混合測試中的select 語句使用了條件過濾。具體可以再原有命令中增加--only-print參數來列印實際測試過程使用的語句。


B 參數說明:

引用自http://www.ha97.com/5182.html  ,對--number-of-queries解釋進行修正。

--auto-generate-sql, -a 自動產生測試表和資料,表示用mysqlslap工具自己產生的SQL指令碼來測試並發壓力。

--auto-generate-sql-load-type=type 測試語句的類型。代表要測試的環境是讀操作還是寫操作還是兩者混合的。取值包括:read,key,write,update和mixed(預設)。

--auto-generate-sql-add-auto-increment 代表對產生的表自動添加auto_increment列,從5.1.18版本開始支援。

--number-char-cols=N, -x N 自動產生的測試表中包含多少個字元類型的列,預設1

--number-int-cols=N, -y N 自動產生的測試表中包含多少個數字類型的列,預設1

--number-of-queries=N 總的測試的sql語句次數(並發客戶數×每客戶查詢次數)

--query=name,-q 使用自訂指令碼執行測試,例如可以調用自訂的一個預存程序或者sql語句來執行測試。

--create-schema 代表自訂的測試庫名稱,測試的schema,MySQL中schema也就是database。

--commint=N 多少條DML後提交一次。

--compress, -C 如果伺服器和用戶端支援都壓縮,則壓縮資訊傳遞。

--concurrency=N, -c N 表示並發量,也就是類比多少個用戶端同時執行select。可指定多個值,以逗號或者--delimiter參數指定的值做為分隔字元。例如:--concurrency=100,200,500。

--engine=engine_name, -e engine_name 代表要測試的引擎,可以有多個,用分隔字元隔開。例如:--engines=myisam,innodb。

--iterations=N, -i N 測試執行的迭代次數,代表要在不同並發環境下,各自運行測試多少次。

--only-print 只列印測試語句而不實際執行。

--detach=N 執行N條語句後斷開重連。

--debug-info, -T 列印記憶體和CPU的相關資訊。


本文出自 “我博故我在” 部落格,請務必保留此出處http://encoding.blog.51cto.com/1403836/1745390

mysql mysqlslap壓力測試用例

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.