基准测试工具和案例

  • 基准测试工具
    • 集成式测试工具
    • 单组件测试工具
  • 基准测试案例
    • 1.使用http_load进行基准测试
    • 2.sysbench

基准测试工具

集成式测试工具

  • ab:Apache Http服务器基准测试工具。它可以测试HTTP服务器每秒最多可以处理多少请求。如果测试的是WEB应用服务,这个结果可以转换成整个应用每秒可以满足多少请求。只能对单个URL进行尽可能快的压力测试。ab详细信息
  • http_load:这个工具概念上和ab类似,也被设计为对web服务器进行测试,但比ab要更加灵活。可以通过一个输入文件提供多个URL,http_load在这些URL中随机选择进行测试。也可以定制http_load,使其按照时间比率进行测试,而不仅仅是测试最大请求处理能力。详细信息
  • Jmeter:Jmeter是一个java应用程序,可以加载其他应用并测试其性能。可以进行web应用、FTP服务器、或者通过jdbc进行数据库查询测试。它可以通过控制预热时间等参数更加灵活地模拟真实用户的访问。同时拥有绘图接口,可以对测试进行记录,然后离线重演测试结果。详细信息

单组件测试工具

  • mysqlslap:可以模拟服务器的负载,并输出计时信息。
  • mysql benchmark suite:在mysql的发行包中也提供了一款自己的基准测试套件,可以用于在不同数据库服务器上进行比较测试。它是单线程的,主要用于测试服务器执行查询的速度。结果会显示哪种类型的操作在服务器上执行得更快。
  • super smack:是一款用于mysql和postgresql的基准测试工具。可以提供压力测试和负载生成。可以模拟多用户访问,可以加载测试数据到数据库,并支持使用随机数据填充测试表。
  • sysbench:是一款多线程系统压测工具。它可以根据影响数据库服务器性能的各种因素来评估系统的性能。例如:可以用来测试文件i/o、操作系统调度器、内存分配和传输速度、POSIX线程,以及数据库服务器等。

基准测试案例

1.使用http_load进行基准测试

基准测试工具和案例_第1张图片
基准测试工具和案例_第2张图片
基准测试工具和案例_第3张图片
基准测试工具和案例_第4张图片
参数说明:
./http_load -rate 5 -seconds 10 urls

-parallel 简写-p :含义是并发的用户进程数。
-fetches 简写-f :含义是总计的访问次数
-rate 简写-p :含义是每秒的访问频率
-seconds简写-s :含义是总计的访问时间
测试结果说明:
1.49 fetches, 1 max parallel, 5.72993e+06bytes, in 10.0007 seconds
说明在上面的测试中运行了49个请求,最大的并发进程数是1,总计传输的数据是5.72993e+06bytes,运行的时间是10.0007秒
2.116937 mean bytes/connection
说明每一连接平均传输的数据量5.72993e+06/49=116937
3.4.89966 fetches/sec, 572953 bytes/sec
说明每秒的响应请求为4.89966,每秒传递的数据为572953 bytes/sec
4.msecs/connect: 7.74088 mean, 13.0111 max, 6.809 min
说明每连接的平均响应时间是7.74088 msecs,最大的响应时间13.0111 msecs,最小的响应时间6.809 msecs
5.msecs/first-response: 8.50069 mean, 9.773 max, 7.964 min
6、HTTP response codes: code 200 – 49
说明打开响应页面的类型,如果403的类型过多,那可能要注意是否系统遇到了瓶颈。
特殊说明:这里,我们一般会关注到的指标是fetches/sec、msecs/connect
他们分别对应的常用性能指标参数
Qpt-每秒响应用户数和response time,每连接响应用户时间。
测试的结果主要也是看这两个值。当然仅有这两个指标并不能完成对性能的分析,我们还需要对服务器的cpu、men进行分析,才能得出结论

4.常见错误
1)byte count wrong
http_load在处理时会去关注每次访问同一个URL返回结果(即字节数)是否一致,若不一致就会抛出byte count wrong

2)too many open files
系统限制的open files太小,ulimit -n 修改open files值即可

3)无法发送大请求 (请求长度>600个字符)
默认接受请求的buf大小 http_load.c

4)Cannot assign requested address
客户端频繁的连服务器,由于每次连接都在很短的时间内结束,导致很多的TIME_WAIT,以至于用光了可用的端口号,所以新的连接没办法绑定端口,所以要改客户端机器的配置.

2.sysbench

参考《MySQL高性能》中的sysbench性能测试例子。

你可能感兴趣的:(MySQL,MySQL高性能)