Apache压力测试与Mysql服务器的压力测试

这里我介绍Apache的ab测试与Mysql的mysqlslap测试,目的是检测服务器的性能并做相应的优化工作(暂没有此能力)

ab测试

ab测试是Apache自带的测试工具,能够很好的满足对网站的直接测试。

测试步骤
  1. 测试方法
    # /home/Lifangping/Soft/httpd/bin/ab -c100 -n 10000 http://www.mrtg.com/index.html
    
    注释:
    -c:表示同时访问的用户数,也就是并发数
    -n:表示总共访问的次数。
    后面的网址表示你要测试的网站地址。
  2. 结果分析
    This is ApacheBench, Version 2.3 <$Revision: 1843412 $>
    Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
    Licensed to The Apache Software Foundation, http://www.apache.org/
    // 这里为Apache的版本信息,忽略
    Benchmarking www.mrtg.com (be patient)
    Completed 1000 requests
    Completed 2000 requests
    Completed 3000 requests
    Completed 4000 requests
    Completed 5000 requests
    Completed 6000 requests
    Completed 7000 requests
    Completed 8000 requests
    Completed 9000 requests
    Completed 10000 requests
    Finished 10000 requests
    // 这里为测试完成进度  忽略
    Server Software:        Apache/2.4.39	//被测试服务器的信息(这里为本机测试,所以与上面的Apache版本信息一致)
    Server Hostname:        www.mrtg.com
    Server Port:            80
    
    Document Path:          /test.html
    Document Length:        456 bytes
    
    Concurrency Level:      100				//并发级别,也就是并发数,请求中-c参数指定的数量
    Time taken for tests:   2.260 seconds	//测试总时长
    Complete requests:      10000			//测试总请求数 -n参数指定的数量
    Failed requests:        0				//失败的请求数量。因网络原因或服务器性能原因,发起的请求并不一定全部成功,通过该数值和Complete requests相除可以计算请求的失败率,作为测试结果的重要参考
    Total transferred:      6570000 bytes	//总共传输的数据量,指的是ab从被测服务器接收到的总数据量,包括index.html的文本内容和请求头信息。
    HTML transferred:       4560000 bytes	//总共传输的数据量,指的是ab从被测服务器接收到的总数据量,包括index.html的文本内容和请求头信息。Document Length*Complete requests的结果
    Requests per second:    4424.19 [#/sec] (mean)	//平均(mean)每秒完成的请求数:QPS,这是一个平均值
    Time per request:       22.603 [ms] (mean)		//从用户角度看,完成一个请求所需要的时间(因用户数量不止一个,服务器完成100个请求,平均每个用户才接收到一个完整的返回,所以该值是下一项数值的100倍。)
    Time per request:       0.226 [ms] (mean, across all concurrent requests)	// 服务器完成一个请求的时间。
    Transfer rate:          2838.57 [Kbytes/sec] received	//网络传输速度。对于大文件的请求测试,这个值很容易成为系统瓶颈所在。要确定该值是不是瓶颈,需要了解客户端和被测服务器之间的网络情况,包括网络带宽和网卡速度等信息。
    
    Connection Times (ms)
                  min  mean[+/-sd] median   max
    Connect:        0   11   6.1     11      75
    Processing:     2   11   5.5     11      76
    Waiting:        0    9   6.1      9      74
    Total:          8   23   6.7     21      85
    
    Percentage of the requests served within a certain time (ms)
      50%     21
      66%     22
      75%     22
      80%     23
      90%     24
      95%     27
      98%     37
      99%     83
     100%     85 (longest request)
     //这个表第一行表示有50%的请求都是在21ms内完成的,可以看到这个值是比较接近平均系统响应
     时间(第一个Time per request:       22.603 [ms] (mean) )
    
    //以此类推,90%的请求是小于等于83ms的。刚才我们看到响应时间最长的那个请求是85ms,
    那么显然所有请求(100%)的时间都是小于等于85毫秒的,也就是表中最后一行的数据肯定是
    时间最长的那个请求(longest request)。
    
    参考:Apache ab性能测试结果分析

mysqlslap测试

mysql5.1之后的版本才自带的mysqlslap软件
mysqlslap 是 Mysql 自带的压力测试工具,可以模拟出大量客户端同时操作数据库的情况,通过结果信息来了解数据库的性能状况.
数据库服务器硬件升级后,可以通过mysqlslap查看响应速度。
当我们对数据库进行操作,发现速度很慢的时候可以检测是我们sql语句的问题还是mysql数据库的性能问题。
对数据库性能配置进行修改后,查看对数据库服务器的性能影响。

测试步骤
  1. 测试方法

    /etc/mysqslap  -uroot -p123456 -a --concurrency=50,100 --number-of-queries 3000 --iterations=5 --engine=myisam,innodb
    

    注释:
    -a:自动生成测试表和数据,表示用mysqlslap工具自己生成的SQL脚本来测试并发压力。
    –concurrency:模拟多少个客户端同时执行select。可指定多个值,以逗号或者–delimiter参数指定的值做为分隔符
    –iterations:测试执行的迭代次数,代表要在不同并发环境下,各自运行测试多少次。
    –engine: 代表要测试的引擎,可以有多个,用分隔符隔开

  2. 测试结果
    在这里插入图片描述参考:
    MySQL自带的性能压力测试工具mysqlslap详解

结论

本人对服务器的性能测试也是了解甚少,现在只知道简单的点操作,如果有什么不对的地方,一定及时修正。
如果您对这个文章有任何异议,那么请在文章评论处写上你的评论。
愿大家都能在编程这条路,越走越远。

只要你每天坚持自习,认真刻苦,态度端正,忍受孤独,最终的胜利肯定是属于那些考场上发挥好的人。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值