对apache和memcache进行压力测试
工作中经常使用的软件之二:apache和memcache
以前经常听说memcache的TPS能达到几万,但一直也不知道apache的性能到底如何,所以在闲暇之余,就自己做了一下压力测试。
环境:两台开发机,一台施压,一台被压
过程如下:
1,下载、安装并启动apache 2.2.26
2,使用一个简单的网页作为测试目标
<html><body><h1>It works!</h1></body></html>
3,使用apache自带的ab命令,进行压力测试
time ab -n -c "http://10.210.215.145/"
结果:
并发数100,请求50000次,试验2次,两次平均时间14.4855s,TPS=50000/14.4855 = 3452
详情如下:
Server Software: Apache/2.2.
Server Hostname: 10.210.215.145
Server Port: Document Path: /
Document Length: bytes Concurrency Level:
Time taken for tests: 14.333 seconds
Complete requests:
Failed requests:
Write errors:
Total transferred: bytes
HTML transferred: 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: 1.3
Processing: 7.7
Waiting: 5.7
Total: 7.7 Percentage of the requests served within a certain time (ms)
%
%
%
%
%
%
%
%
% (longest request) real 0m14.393s
user 0m0.846s
sys 0m4.538s
下面开始测试memcache
1,下载、安装并且启动memcached-1.4.16
2,设置一个key,如下:
set abc
<html><body><h1>It works!</h1></body></html>
STORED
get abc
VALUE abc
<html><body><h1>It works!</h1></body></html>
END
3,使用我自己编写的压力测试脚本进行压力测试,见博客:用epoll进行压力测试
结果:并发数100,请求500*100 = 50000次,试验2次,两次平均时间7.031s,TPS=50000/7.031 = 7111
详情如下:
time ./epoll 10.210.215.145 >abc >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
对apache和memcache进行压力测试的更多相关文章
- 4分钟apache自带ab压力测试工具使用: 2015.10.4
2015.10.44分钟apache自带ab压力测试工具使用:win8.1 wampserver2.5 -Apache-2.4.9-Mysql-5.6.17-php5.5.12-64b 可以参考一下部 ...
- win8.1上wamp环境中利用apache自带ab压力测试工具使用超简单讲解
2015.10.4apache自带ab压力测试工具使用:本地环境:win8.1 wampserver2.5 -Apache-2.4.9-Mysql-5.6.17-php5.5.12-64b 可以参考一 ...
- 使用Apache的ab进行压力测试
概述 ab是apache自带的压力测试工具,当安装完apache的时候,就可以在bin下面找到ab然后进行apache 负载压力测试. 后台测试开发中,常用的压力测试服务,php一般选择xampp,下 ...
- Apache ab并发负载压力测试(python+django+mysql+apache)
如标题,大家都知道秒杀中存在高并发使库存骤然为0,但在我们个人PC或小区域内是模拟不出这样的情景 现在利用 Apache ab并发负载压力测试 1,数据库建入库存字段并映射模型 2,view编写脚本 ...
- 【Apache】 ab进行压力测试
前言: ab是apache自带的压力测试工具,当安装完apache的时候,就可以在bin下面找到ab然后进行apache 负载压力测试. 工具: Apache ab压测工具 一.安装 (1) 下载 : ...
- 网站服务器压力Web性能测试(1):Apache Bench:Apache自带服务器压力测试工具
一个网站或者博客到底能够承受多大的用户访问量经常是我们在用VPS或者独立服务器搭建网站了最关心的问题,还有不少人喜欢对LNMP或者LAMP进行一些优化以便提高Web性能,而优化后到底有多大的效果,就需 ...
- ab使用详解—如何使用apache性能测试工具进行压力测试
作为后端工程师,除了实现业务需求之外,需要考虑的就是自己写的服务,在大并发下是否能正常运行了.但是,在一般开发情况下,没那么多大并发情况让你测试,那该怎么办呢? 这时候,我们就可以用到apache的压 ...
- Apache ab并发负载压力测试
由于现在网站都需要能够承受高并发要求的能力,所以当我们写完代码后,如果需要上线,最好都经过压力测试后,这样比较好 运行: 在Windows系统下,打开cmd命令行窗口,定位到apache安装目录的bi ...
- PHP测试与优化(1)-- Apache自带的压力测试工具ab(apache bench) - 简单使用
ab是apache自带的网站压力测试工具,能够测试网站在一定时间内的发生高并发时的反应. 使用 1.进入apache的bin文件夹 2.模拟并发级别为100,请求数为1000个的api数据请求数量测试 ...
随机推荐
- thinkphp 文件上传
form表单中 enctype="multipart/form-data" public function upload() { import('ORG.Net.U ...
- 在网页中插入qq连接
<a href="tencent://message/?uin=这里写qq号 &Site=这里随便七个名字 &Menu=要为yes">显示出来的名字&l ...
- LESS语法备忘
变量 很容易理解: @nice-blue: #5B83AD; @light-blue: @nice-blue + #111; #header { color: @light-blue; } 输出: # ...
- JavaScript的语法要点 1 - Lexically Scoped Language
作为从一开始接触C.C++.C#的程序员而言,JavaScript的语法对我来说有些古怪,通过最近一年的接触,对它有了一定的了解,于是想把它的一些语法要点记录下来. 1. Block Scope vs ...
- 51nod贪心算法入门-----任务分配问题
任务执行顺序 有N个任务需要执行,第i个任务计算时占R[i]个空间,而后会释放一部分,最后储存计算结果需要占据O[i]个空间(O[i] < R[i]). 分析: 可以抽象成,从一个整数开始,每次 ...
- [PHP]htmlentities() 函数
定义和用法 htmlentities() 函数把字符转换为 HTML 实体. 语法 htmlentities(string,quotestyle,character-set) 参数 描述 string ...
- Python设计模式——观察者模式
需求:员工上班在偷偷看股票,拜托前台一旦老板进来,就通知他们,让他们停止看股票. 这里有两类人,一类是观察者,即员工,一类是通知者,即前台,员工在观察前台的状态,前台负责通知员工最新的动态. #enc ...
- 【JSF框架】 是一种标准
典型的JSF应用程序包含下列部分: 一组JSP页面 一组后台bean(为在一个页面上的UI组件定义的属性和函数的JavaBean组件) 应用程序配置资源文件(定义页面导航规则.配置bean和其它的自定 ...
- 8.MVC框架开发(URL路由配置和URL路由传参空值处理)
1.ASP.NET和MVC的路由请求处理 1)ASP.NET的处理 请求---------响应请求(HttpModule)--------处理请求(HttpHandler)--------把请求的资源 ...
- 常用javascript代码片段集锦
常用方法的封装 根据类名获取DOM元素 var $$ = function (className, element) { if (document.getElementsByClassName) { ...