Heim > Datenbank > MySQL-Tutorial > Hauptteil

MySQL压力测试工具_MySQL

WBOY
Freigeben: 2016-06-01 13:41:36
Original
1234 Leute haben es durchsucht

bitsCN.com
MySQL压力测试工具 mysqlslap --create-schema=example --query="SELECT * FROM group_message force index(group_message_author_subject) WHERE author = '3' subject LIKE 'weiurazs%'" --iterations=10000测试的过程需要生成测试表,插入测试数据,这个mysqlslap可以自动生成,默认生成一个mysqlslap的schema,如果已经存在则先删除,这里要注意了,不要用–create-schema指定已经存在的库,否则后果可能很严重。可以用–only-print来打印实际的测试过程:   $mysqlslap -a –only-printDROP SCHEMA IF EXISTS mysqlslap;CREATE SCHEMA mysqlslap;use mysqlslap;CREATE TABLE g_user (user_id INT(32) ,user_name VARCHAR(128));INSERT INTO g_user VALUES (1,'liuxiaobin');…SELECT user_id,user_name FROM g_user;INSERT INTO g_user VALUES (2,'liudabin');DROP SCHEMA IF EXISTS mysqlslap; 可以看到最后由删除一开始创建的schema的动作,整个测试完成后不会在数据库中留下痕迹。假如我们执行一次测试,分别50和100个并发,执行1000次总查询,那么: $mysqlslap -a –concurrency=50,100 –number-of-queries 1000 –debug-infoBenchmarkAverage number of seconds to run all queries: 0.375 secondsMinimum number of seconds to run all queries: 0.375 secondsMaximum number of seconds to run all queries: 0.375 secondsNumber of clients running queries: 50Average number of queries per client: 20   BenchmarkAverage number of seconds to run all queries: 0.453 secondsMinimum number of seconds to run all queries: 0.453 secondsMaximum number of seconds to run all queries: 0.453 secondsNumber of clients running queries: 100Average number of queries per client: 10 User time 0.29, System time 0.11Maximum resident set size 0, Integral resident set size 0Non-physical pagefaults 4032, Physical pagefaults 0, Swaps 0Blocks in 0 out 0, Messages in 0 out 0, Signals 0Voluntary context switches 7319, Involuntary context switches 681 上结果可以看出,50和100个并发分别得到一次测试结果(Benchmark),并发数越多,执行完所有查询的时间越长。为了准确起见,可以多迭代测试几次: $ mysqlslap -a –concurrency=50,100 –number-of-queries 1000 –iterations=5 –debug-infoBenchmarkAverage number of seconds to run all queries: 0.380 secondsMinimum number of seconds to run all queries: 0.377 secondsMaximum number of seconds to run all queries: 0.385 secondsNumber of clients running queries: 50Average number of queries per client: 20 BenchmarkAverage number of seconds to run all queries: 0.447 secondsMinimum number of seconds to run all queries: 0.444 secondsMaximum number of seconds to run all queries: 0.451 secondsNumber of clients running queries: 100Average number of queries per client: 10   User time 1.44, System time 0.67Maximum resident set size 0, Integral resident set size 0Non-physical pagefaults 17922, Physical pagefaults 0, Swaps 0Blocks in 0 out 0, Messages in 0 out 0, Signals 0Voluntary context switches 36796, Involuntary context switches 4093 测试同时不同的存储引擎的性能进行对比: $ mysqlslap -a –concurrency=50,100 –number-of-queries 1000 –iterations=5 –engine=myisam,innodb –debug-infoBenchmarkRunning for engine myisamAverage number of seconds to run all queries: 0.200 secondsMinimum number of seconds to run all queries: 0.188 secondsMaximum number of seconds to run all queries: 0.210 secondsNumber of clients running queries: 50Average number of queries per client: 20 BenchmarkRunning for engine myisamAverage number of seconds to run all queries: 0.238 secondsMinimum number of seconds to run all queries: 0.228 secondsMaximum number of seconds to run all queries: 0.251 secondsNumber of clients running queries: 100Average number of queries per client: 10 BenchmarkRunning for engine innodbAverage number of seconds to run all queries: 0.375 secondsMinimum number of seconds to run all queries: 0.370 secondsMaximum number of seconds to run all queries: 0.379 secondsNumber of clients running queries: 50Average number of queries per client: 20   BenchmarkRunning for engine innodbAverage number of seconds to run all queries: 0.443 secondsMinimum number of seconds to run all queries: 0.440 secondsMaximum number of seconds to run all queries: 0.447 secondsNumber of clients running queries: 100Average number of queries per client: 10 User time 2.83, System time 1.66Maximum resident set size 0, Integral resident set size 0Non-physical pagefaults 34692, Physical pagefaults 0, Swaps 0Blocks in 0 out 0, Messages in 0 out 0, Signals 0Voluntary context switches 87306, Involuntary context switches 10326 MySQL从5.1.4版开始带有一个压力测试工具mysqlslap,通过模拟多个并发客户端访问mysql来执行测试,使用起来非常的简单。通过mysqlslap –help可以获得可用的选项, –auto-generate-sql, -a自动生成测试表和数据   –auto-generate-sql-load-type=type测试语句的类型。取值包括:read,key,write,update和mixed(默认)。 –number-char-cols=N, -x N自动生成的测试表中包含多少个字符类型的列,默认1 –number-int-cols=N, -y N自动生成的测试表中包含多少个数字类型的列,默认1 –number-of-queries=N总的测试查询次数(并发客户数×每客户查询次数) –query=name,-q使用自定义脚本执行测试,例如可以调用自定义的一个存储过程或者sql语句来执行测试。 –create-schema测试的schema,MySQL中schema也就是database –commint=N多少条DML后提交一次 –compress, -C如果服务器和客户端支持都压缩,则压缩信息传递 –concurrency=N, -c N并发量,也就是模拟多少个客户端同时执行select。可指定多个值,以逗号或者–delimiter参数指定的值做为分隔符   –engine=engine_name, -e engine_name创建测试表所使用的存储引擎,可指定多个 –iterations=N, -i N测试执行的迭代次数 –detach=N执行N条语句后断开重连 –debug-info, -T打印内存和CPU的信息 –only-print只打印测试语句而不实际执行  作者 bengda bitsCN.com

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!