mysqlslap執行基準測試的代碼詳情介紹

查看mysqlslap所支持的主要參數配置及說明如下

<span style="color: #000000">-a, --auto-generate-sql 由系統自動生成SQL腳本進行測試<br> ? ? ? ? ? ? ? ? ? ? ?Generate SQL where not supplied by file or command line.<br> ?--auto-generate-sql-add-autoincrement 生成的表中增加自增的ID<br> ? ? ? ? ? ? ? ? ? ? ?Add an AUTO_INCREMENT column to auto-generated tables.--auto-generate-sql-load-type=name 制定測試過程中使用的查詢類型<br> ? ? ? ? ? ? ? ? ? ? ?Specify test load type: mixed, update, write, key, or<br> ? ? ? ? ? ? ? ? ? ? ?read; default is mixed.--auto-generate-sql-write-number=# 制定所生成的初始化數據的條數<br> ? ? ? ? ? ? ? ? ? ? ?Number of row inserts to perform for each thread (default<br> ? ? ? ? ? ? ? ? ? ? ?is 100).-c, --concurrency=name 制定并發線程的數量<br> ? ? ? ? ? ? ? ? ? ? ?Number of clients to simulate for query to run.<br> ?--create=name ? ? ? File or string to use create tables.<br> ?--create-schema=name 創建一個測試數據庫的schema名稱<br> ? ? ? ? ? ? ? ? ? ? ?Schema to run tests in.-T, --debug-info ? ?This is a non-debug version. Catch this and exit.指定輸出額外的內存及CPU統計信息-e,<br> ? ? ? ? ? ? ? ? ? ? ? --engine=name ? Storage engine to use for creating the table. 指定所測試的存儲引擎,用逗號可以分割以便測試多個引擎<br> ?-h, --host=name ? ? Connect to host. 鏈接遠程主機的IP<br> ?-i, --iterations=# ?Number of times to run the tests. 指定本次測試需要運行的次數<br> ?--no-drop ? ? ? ? ? Do not drop the schema after the test. 指定測試完成后,不清理過程數據<br> ?-x, --number-char-cols=name 指定測試表中生成的varchar類型的數據數量<br> ? ? ? ? ? ? ? ? ? ? ?Number of VARCHAR columns to create in table if<br> ? ? ? ? ? ? ? ? ? ? ?specifying --auto-generate-sql.<br> ?-y, --number-int-cols=name 指定測試表中生成的int類型的數據數量<br> ? ? ? ? ? ? ? ? ? ? ?Number of INT columns to create in table if specifying<br> ? ? ? ? ? ? ? ? ? ? ?--auto-generate-sql.<br> ?--number-of-queries=# 指定每一個線程所執行的查詢數量<br> ? ? ? ? ? ? ? ? ? ? ?Limit each client to this number of queries (this is not<br> ? ? ? ? ? ? ? ? ? ? ?exact).<br> ?--only-print ? ? ? ?Do not connect to the databases, but instead print out 并不運行測試腳本,而是把生成的腳本打印出來<br> ? ? ? ? ? ? ? ? ? ? ?what would have been done.<br> ?-p, --password[=name] 指定測試所用的鏈接數據庫的密碼<br> ? ? ? ? ? ? ? ? ? ? ?Password to use when connecting to server. If password is<br> ? ? ? ? ? ? ? ? ? ? ?not given it's asked from the tty.-q, --query=name ? ?Query to run or file containing query to run.自定義測試用的sql<br> ?-u, --user=name ? ? User for login if not current user. 指定測試所用的鏈接數據庫的用戶名<br></span>

其中,完整的運行腳本如下

mysqlslap?-S?/tmp/mysql3306.sock?--concurrency=1,50,100,200?--iterations=3?--number-int-cols=5?--number-char-cols=5?  --auto-generate-sql?--auto-generate-sql-add-autoincrement?--engine=innodb?--number-of-queries=10  ?--create-schema=test?-uroot?-p

待輸入密碼后,測試信息如下

Enter password:   Benchmark          Running for engine innodb          Average number of seconds to run all queries: 0.097 seconds          Minimum number of seconds to run all queries: 0.093 seconds          Maximum number of seconds to run all queries: 0.107 seconds          Number of clients running queries: 1          Average number of queries per client: 10Benchmark          Running for engine innodb          Average number of seconds to run all queries: 0.506 seconds          Minimum number of seconds to run all queries: 0.447 seconds          Maximum number of seconds to run all queries: 0.570 seconds          Number of clients running queries: 50          Average number of queries per client: 0Benchmark          Running for engine innodb          Average number of seconds to run all queries: 2.204 seconds          Minimum number of seconds to run all queries: 1.595 seconds          Maximum number of seconds to run all queries: 3.257 seconds          Number of clients running queries: 100          Average number of queries per client: 0mysqlslap: Error when connecting to server: 1040 Too many connections  mysqlslap: Error when connecting to server: 1040 Too many connections  mysqlslap: Error when connecting to server: 1040 Too many connections  mysqlslap: Error when connecting to server: 1040 Too many connections

此時可以看出來,當并發達到了200的時候,出現了Too many connections的異常,這是因為mysql默認配置的最大鏈接數為100,故需要對my.cnf做如下的修改

添加max_connections=1024,之后運行正常

Benchmark  ????????Running?for?engine?innodb  ????????Average?number?of?seconds?to?run?all?queries:?0.093?seconds  ????????Minimum?number?of?seconds?to?run?all?queries:?0.087?seconds  ????????Maximum?number?of?seconds?to?run?all?queries:?0.098?seconds  ????????Number?of?clients?running?queries:?1  ????????Average?number?of?queries?per?client:?10Benchmark  ????????Running?for?engine?innodb  ????????Average?number?of?seconds?to?run?all?queries:?0.514?seconds  ????????Minimum?number?of?seconds?to?run?all?queries:?0.462?seconds  ????????Maximum?number?of?seconds?to?run?all?queries:?0.545?seconds  ????????Number?of?clients?running?queries:?50  ????????Average?number?of?queries?per?client:?0Benchmark  ????????Running?for?engine?innodb  ????????Average?number?of?seconds?to?run?all?queries:?1.209?seconds  ????????Minimum?number?of?seconds?to?run?all?queries:?1.173?seconds  ????????Maximum?number?of?seconds?to?run?all?queries:?1.241?seconds  ????????Number?of?clients?running?queries:?100  ????????Average?number?of?queries?per?client:?0Benchmark  ????????Running?for?engine?innodb  ????????Average?number?of?seconds?to?run?all?queries:?2.174?seconds  ????????Minimum?number?of?seconds?to?run?all?queries:?1.978?seconds  ????????Maximum?number?of?seconds?to?run?all?queries:?2.402?seconds  ????????Number?of?clients?running?queries:?200  ????????Average?number?of?queries?per?client:?0

?以上就是mysqlslap執行基準測試的代碼詳情介紹的內容,更多相關內容請關注PHP中文網(www.php.cn)!

?

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享