天天看點

Mysql 壓力測試工具-mysqlslap

MySQL從5.1.4版開始帶有一個壓力測試工具mysqlslap,通過模拟多個并發用戶端通路mysql來執行測試,使用起來非常的簡單。通過mysqlslap -help可以獲得可用的選項,這裡列一些主要的參數,更詳細的說明參考官方手冊。

man mysqlslap 也可以看到有下面一條示例:

  1. mysqlslap --delimiter=";" --create="CREATE TABLE a (b int);INSERT INTO a VALUES (23)" --query="SELECT * FROM a" --concurrency=50 --iterations=200 
  1. -a, --auto-generate-sql  自動生成測試表和資料 
  2. --auto-generate-sql-load-type=name  測試語句的類型。取值包括:read,key,write,update和mixed(多種混合,預設)。 
  3. -C, --compress  如果伺服器和用戶端支援都壓縮,則壓縮資訊傳遞 
  4. --commit=N  多少條DML後送出一次 
  5. --create-schema=name 指定資料庫測試,不要和:auto-generate-sql 參數一起使用!
  6. --detach=N  執行N條語句後斷開重連 
  7. --concurrency  指定并發數 
  8. -T, --debug-info  列印記憶體和CPU的資訊 
  9. --number-of-queries=1000  指定查詢總次數 
  10. -i, --iterations=5  重複多次(疊代多次) 
  11. -e, --engine=name  指定引擎  
  12. --only-print  隻輸出測試語句而不實際執行 
  13. -q, --query=name  使用自定義腳本執行測試,例如可以調用自定義的一個存儲過程或者sql語句來執行測試。 
  1. [root@localhost ~]# mysqlslap --auto-generate-sql --concurrency=50,100,500 --number-of-queries=1000 --iterations=5 --debug-info --engine=myisam,innodb -uroot -p
  2. Enter password:
  3. Benchmark 
  4.     Running for engine myisam 
  5.     Average number of seconds to run all queries: 0.108 seconds 
  6.     Minimum number of seconds to run all queries: 0.083 seconds 
  7.     Maximum number of seconds to run all queries: 0.119 seconds 
  8.     Number of clients running queries: 50 
  9.     Average number of queries per client: 20 
  10. Benchmark 
  11.     Running for engine myisam 
  12.     Average number of seconds to run all queries: 0.127 seconds 
  13.     Minimum number of seconds to run all queries: 0.094 seconds 
  14.     Maximum number of seconds to run all queries: 0.150 seconds 
  15.     Number of clients running queries: 100 
  16.     Average number of queries per client: 10 
  17. Benchmark 
  18.     Running for engine myisam 
  19.     Average number of seconds to run all queries: 0.182 seconds 
  20.     Minimum number of seconds to run all queries: 0.161 seconds 
  21.     Maximum number of seconds to run all queries: 0.204 seconds 
  22.     Number of clients running queries: 500 
  23.     Average number of queries per client: 2 
  24. Benchmark 
  25.     Running for engine innodb 
  26.     Average number of seconds to run all queries: 0.305 seconds 
  27.     Minimum number of seconds to run all queries: 0.294 seconds 
  28.     Maximum number of seconds to run all queries: 0.322 seconds 
  29.     Number of clients running queries: 50 
  30.     Average number of queries per client: 20 
  31. Benchmark 
  32.     Running for engine innodb 
  33.     Average number of seconds to run all queries: 0.315 seconds 
  34.     Minimum number of seconds to run all queries: 0.304 seconds 
  35.     Maximum number of seconds to run all queries: 0.338 seconds 
  36.     Number of clients running queries: 100 
  37.     Average number of queries per client: 10 
  38. Benchmark 
  39.     Running for engine innodb 
  40.     Average number of seconds to run all queries: 0.515 seconds 
  41.     Minimum number of seconds to run all queries: 0.485 seconds 
  42.     Maximum number of seconds to run all queries: 0.548 seconds 
  43.     Number of clients running queries: 500 
  44.     Average number of queries per client: 2 
  45. User time 2.48, System time 2.47 
  46. Maximum resident set size 27284, Integral resident set size 0 
  47. Non-physical pagefaults 55681, Physical pagefaults 0, Swaps 0 
  48. Blocks in 0 out 0, Messages in 0 out 0, Signals 0 
  49. Voluntary context switches 101688, Involuntary context switches 95927 

繼續閱讀