设为首页 收藏本站
查看: 673|回复: 0

[经验分享] 对apache和memcache进行压力测试

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-7-31 11:58:38 | 显示全部楼层 |阅读模式
  工作中经常使用的软件之二:apache和memcache
  以前经常听说memcache的TPS能达到几万,但一直也不知道apache的性能到底如何,所以在闲暇之余,就自己做了一下压力测试。
  环境:两台开发机,一台施压,一台被压
  过程如下:
  1,下载、安装并启动apache 2.2.26
  2,使用一个简单的网页作为测试目标



It works!
  3,使用apache自带的ab命令,进行压力测试



time ab -n 50000 -c 100 "http://10.210.215.145/"
  结果:
  并发数100,请求50000次,试验2次,两次平均时间14.4855s,TPS=50000/14.4855 = 3452
  详情如下:



Server Software:        Apache/2.2.26
Server Hostname:        10.210.215.145
Server Port:            80
Document Path:          /
Document Length:        44 bytes
Concurrency Level:      100
Time taken for tests:   14.333 seconds
Complete requests:      50000
Failed requests:        0
Write errors:           0
Total transferred:      14750295 bytes
HTML transferred:       2200044 bytes
Requests per second:    3488.39 [#/sec] (mean)
Time per request:       28.667 [ms] (mean)
Time per request:       0.287 [ms] (mean, across all concurrent requests)
Transfer rate:          1004.98 [Kbytes/sec] received
Connection Times (ms)
min  mean[+/-sd] median   max
Connect:        0    2   1.3      1       6
Processing:     1   27   7.7     25     753
Waiting:        1   26   5.7     25     382
Total:          2   29   7.7     27     756
Percentage of the requests served within a certain time (ms)
50%     27
66%     32
75%     33
80%     33
90%     35
95%     36
98%     37
99%     38
100%    756 (longest request)
real    0m14.393s
user    0m0.846s
sys     0m4.538s
  下面开始测试memcache
  1,下载、安装并且启动memcached-1.4.16
  2,设置一个key,如下:



set abc 1 0 44
It works!
STORED
get abc
VALUE abc 1 44
It works!
END
  3,使用我自己编写的压力测试脚本进行压力测试,见博客:用epoll进行压力测试
  结果:并发数100,请求500*100 = 50000次,试验2次,两次平均时间7.031s,TPS=50000/7.031 = 7111
  详情如下:



time ./epoll 10.210.215.145 8888 100 500 1>abc 2>abc
real    0m7.099s
user    0m0.292s
sys     0m6.364s
  结论:
  memorycache的性能远远高于apache的性能,在我的实验中,是两倍在关系,当然实验可能会有误差。
  memorycache使用的是libevent,libevent使用了epoll,而apache使用的是select
  个人觉得epoll的出现正是为了克服select和poll的不足,所以memorycache性能远远高于apache的性能也不足为怪。
  
  插曲:
  当使用我自己的压力测试工具时,老是出现Cannot assign requested错误,原因如下:
  我的压力测试脚本进行了50000次连接,也使用了50000个socket,也就是需要50000个端口,但系统的可用端口数是有限制的
  我使用的开发机中,可用端口数只有30000多个,所以会造成实验失败。
  但可以通过echo 10000 61000 > /proc/sys/net/ipv4/ip_local_port_range来进行修改。
  参考文献:
  造成socket.error: [Errno 99] Cannot assign requested
  TIME_WAIT是什么?

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-92714-1-1.html 上篇帖子: Google Guava vs Apache Commons for Argument Validation 下篇帖子: 推荐前端开发使用的服务器环境开源项目 D2Server 可替代Apache
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表