apache2.4.1 pk nginx1.1.17 在线性能对比测试文档
- 格式:pdf
- 大小:296.82 KB
- 文档页数:30
服务器性能测试的方法和工具选择指南简介:在当今数字化时代,服务器扮演着企业信息系统的核心角色。
为了确保服务器的稳定运行和高性能,对其进行性能测试显得尤为重要。
本文将提供服务器性能测试的方法和工具选择指南,帮助读者全面了解如何进行有效的服务器性能测试。
一、性能测试方法1. 负载测试负载测试是服务器性能测试中最常用的方法之一。
它通过模拟和测量服务器在正常负载条件下的性能,以确定服务器能够处理多少并发用户和请求。
负载测试可帮助企业评估服务器的能力是否足够满足其业务需求。
2. 压力测试压力测试是一种以极限负载条件下测试服务器性能的方法。
通过模拟高并发用户和大量请求,压力测试可以测试服务器在负载超出正常条件下的表现。
它可以帮助确定服务器在峰值负载下是否会出现性能瓶颈和故障。
3. 稳定性测试稳定性测试是测试服务器长时间连续运行时能否保持稳定的方法。
通过在持续运行服务器的同时,逐渐增加负载和请求,稳定性测试可以帮助企业评估服务器在长时间运行中的稳定性和可靠性。
二、性能测试工具选择指南1. Apache JMeterApache JMeter是一款免费且功能强大的性能测试工具,被广泛应用于服务器性能测试领域。
它支持多种协议和技术,可以模拟大量的用户和请求,并提供详细的测试报告和图表分析,方便用户评估服务器性能。
2. LoadRunner作为市场上最流行的性能测试工具之一,LoadRunner提供了全面的负载和压力测试功能。
它可以模拟各种应用程序和协议,并具备强大的分析和报告功能,帮助用户快速识别服务器性能问题。
3. GatlingGatling是一款开源的高性能负载测试工具,适用于Web应用程序和服务器的性能测试。
它具有简单易用的界面和脚本语言,并可以生成可视化的测试报告,帮助用户轻松监控服务器的性能指标。
4. LocustLocust是另一个开源的性能测试工具,具有简单的脚本编写和可扩展性。
它支持Python编程语言,并可以模拟大量用户和请求,帮助用户发现服务器性能瓶颈和故障。
注意到有这款服务器nginx。
没听过,一查有了下文。
其中有一个还是听过的。
对照翻译了下文。
Apache and IIS are the most common web servers in use today, but they are far from alone. There is a huge amount of web server software out there, both free and commercial.到目前,Apache和IIS是用的最为普遍的Web服务器,但是它们太过单一,在此之外这里还有许多Web服务器软件,或是免费的或是商业的。
In this article we present four popular alternative web servers: Lighttpd, Nginx, LiteSpeed and Zeus. The first two are free and open source while the other two are commercial, closed-source alternatives. What they all have in common is that they focus on high performance.本文我们介绍四种最受欢迎的Web服务器:Lighttpd, Nginx, LiteSpeed和Zeus。
前两个都是免费且开源的,而另两种都是商业的,闭源的。
它们的共同点在于都着重于高性能上。
We will also take a look at how many websites are actually using these web servers. 我们看看有多少网站实际上在使用它们。
But first a brief presentation of each of one:首先一个简短的介绍其中之一:Lighttpd∙Brief info:Pronounced “Lighty”, Lighttpd is as the name implies a small, lightweight web server which has a low memory footprint and light CPU load.Lighttpd is a good alternative to serve static content but it has also gained recognition in the Ruby on Rails and PHP communities.Lighttpd 的名称暗示小,轻量级web服务器,占用内存小且cpu负荷低。
三大WEB服务器对比分析(apache ,lighttpd,nginx)一.软件介绍(apache lighttpd nginx)1. lighttpdLighttpd是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。
lighttpd 是众多OpenSource轻量级的web server中较为优秀的一个。
支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能。
Lighttpd使用fastcgi方式运行php,它会使用很少的PHP进程响应很大的并发量。
Fastcgi的优点在于:·从稳定性上看, fastcgi是以独立的进程池运行来cgi,单独一个进程死掉,系统可以很轻易的丢弃,然后重新分配新的进程来运行逻辑.·从安全性上看, fastcgi和宿主的server完全独立, fastcgi怎么down也不会把server搞垮,·从性能上看, fastcgi把动态逻辑的处理从server中分离出来, 大负荷的IO处理还是留给宿主server, 这样宿主server可以一心一意作IO,对于一个普通的动态网页来说, 逻辑处理可能只有一小部分, 大量的图片等静态IO处理完全不需要逻辑程序的参与(注1)·从扩展性上讲, fastcgi是一个中立的技术标准, 完全可以支持任何语言写的处理程序(php,java,python...)2.apacheapache是世界排名第一的web服务器, 根据netcraft()所作的调查,世界上百分之五十以上的web服务器在使用apache.1995年4月, 最早的apache(0.6.2版)由apache group公布发行. apache group 是一个完全通过internet进行运作的非盈利机构, 由它来决定apache web服务器的标准发行版中应该包含哪些内容. 准许任何人修改隐错, 提供新的特征和将它移植到新的平台上, 以及其它的工作. 当新的代码被提交给apache group时, 该团体审核它的具体内容, 进行测试, 如果认为满意, 该代码就会被集成到apache的主要发行版中.apache 的特性:1) 几乎可以运行在所有的计算机平台上.2) 支持最新的http/1.1协议3) 简单而且强有力的基于文件的配置(httpd.conf).4) 支持通用网关接口(cgi)5) 支持虚拟主机.6) 支持http认证.7) 集成perl.8) 集成的代理服务器9) 可以通过web浏览器监视服务器的状态, 可以自定义日志.10) 支持服务器端包含命令(ssi).11) 支持安全socket层(ssl).12) 具有用户会话过程的跟踪能力.13) 支持fastcgi(只在apache1.3时支持,apache2以后的版本不再支持了)14) 支持java servlets15) 不支持epoll(这年头,epoll几乎是性能的必备,这也是为什么apache的并发性能比其他两款web软件差的主要原因吧)16) 非常好用的proxy和proxy_ajp(很多人用它作为tomcat的前端)3.nginxNginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器.Nginx是由俄罗斯人Igor Sysoev为俄罗斯访问量第二的 Rambler.ru站点开发.Nginx以事件驱动的方式编写,所以有非常好的性能,同时也是一个非常高效的反向代理、负载平衡。
一.软件介绍(apache lighttpdnginx)1. lighttpdLighttpd是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。
lighttpd是众多OpenSource轻量级的web server中较为优秀的一个。
支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能。
Lighttpd使用fastcgi方式运行php,它会使用很少的PHP进程响应很大的并发量。
Fastcgi的优点在于:·从稳定性上看, fastcgi是以独立的进程池运行来cgi,单独一个进程死掉,系统可以很轻易的丢弃,然后重新分配新的进程来运行逻辑.·从安全性上看, fastcgi和宿主的server完全独立,fastcgi怎么down也不会把server搞垮,·从性能上看, fastcgi把动态逻辑的处理从server中分离出来, 大负荷的IO处理还是留给宿主server, 这样宿主server可以一心一意作IO,对于一个普通的动态网页来说, 逻辑处理可能只有一小部分, 大量的图片等静态IO处理完全不需要逻辑程序的参与(注1)·从扩展性上讲, fastcgi是一个中立的技术标准, 完全可以支持任何语言写的处理程序(php,java,python...)2.apacheapache是世界排名第一的web服务器, 根据netcraft()所作的调查,世界上百分之五十以上的web服务器在使用apache.1995年4月, 最早的apache(0.6.2版)由apache group公布发行. apache group 是一个完全通过internet进行运作的非盈利机构, 由它来决定apache web服务器的标准发行版中应该包含哪些内容. 准许任何人修改隐错, 提供新的特征和将它移植到新的平台上, 以及其它的工作. 当新的代码被提交给apache group 时, 该团体审核它的具体内容, 进行测试, 如果认为满意, 该代码就会被集成到apache的主要发行版中.apache 的特性:1) 几乎可以运行在所有的计算机平台上.2) 支持最新的http/1.1协议3) 简单而且强有力的基于文件的配置(httpd.conf).4) 支持通用网关接口(cgi)5) 支持虚拟主机.6) 支持http认证.7) 集成perl.8) 集成的代理服务器9) 可以通过web浏览器监视服务器的状态, 可以自定义日志.10) 支持服务器端包含命令(ssi).11) 支持安全socket层(ssl).12) 具有用户会话过程的跟踪能力.13) 支持fastcgi14) 支持java servlets3.nginxNginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器.Nginx是由俄罗斯人Igor Sysoev 为俄罗斯访问量第二的Rambler.ru站点开发.Nginx以事件驱动的方式编写,所以有非常好的性能,同时也是一个非常高效的反向代理、负载平衡。
主要文档Nginx功能概述Nginx功能概述HTTP基础功能:处理静态文件,索引文件以及自动索引;反向代理加速(无缓存),简单的负载均衡和容错;FastCGI,简单的负载均衡和容错;模块化的结构。
过滤器包括gzipping, byte ranges, chunked responses, 以及 SSI-filter 。
在SSI过滤器中,到同一个 proxy 或者 FastCGI 的多个子请求并发处理;SSL 和 TLS SNI 支持;IMAP/POP3 代理服务功能:使用外部 HTTP 认证服务器重定向用户到 IMAP/POP3 后端;使用外部 HTTP 认证服务器认证用户后连接重定向到内部的 SMTP 后端;认证方法:POP3: POP3 USER/PASS, APOP, AUTH LOGIN PLAIN CRAM-MD5;IMAP: IMAP LOGIN;SMTP: AUTH LOGIN PLAIN CRAM-MD5;SSL 支持;在 IMAP 和 POP3 模式下的 STARTTLS 和 STLS 支持;支持的操作系统:FreeBSD 3.x, 4.x, 5.x, 6.x i386; FreeBSD 5.x, 6.x amd64;Linux 2.2, 2.4, 2.6 i386; Linux 2.6 amd64;Solaris 8 i386; Solaris 9 i386 and sun4u; Solaris 10 i386;MacOS X (10.4) PPC;结构与扩展:一个主进程和多个工作进程。
工作进程是单线程的,且不需要特殊授权即可运行;kqueue (FreeBSD 4.1+), epoll (Linux 2.6+), rt signals (Linux 2.2.19+), /dev/poll (Solaris 711/99+), select, 以及 poll 支持;kqueue支持的不同功能包括 EV_CLEAR, EV_DISABLE (临时禁止事件), NOTE_LOWAT, EV_EOF,有效数据的数目,错误代码;sendfile (FreeBSD 3.1+), sendfile (Linux 2.2+), sendfile64 (Linux 2.4.21+), 和 sendfilev (Solaris 8 7/01+) 支持;输入过滤 (FreeBSD 4.1+) 以及 TCP_DEFER_ACCEPT (Linux 2.4+) 支持;10,000 非活动的 HTTP keep-alive 连接仅需要 2.5M 内存。
nginx 替代方案替代方案:Apache HTTP Server一、简介Nginx替代方案:Apache HTTP Server(以下简称Apache)。
二、概述Nginx是一个高性能、开源的HTTP和反向代理服务器,广泛用于构建高并发、高可靠性的Web服务。
然而,在某些情况下,Apache可以作为Nginx的替代方案,提供类似的功能和性能。
本文将介绍如何使用Apache来取代Nginx,以满足一些特定的需求。
三、安装和配置1. 下载Apache最新版本并进行安装。
2. 根据实际需求,配置Apache的基本设置,如监听端口、虚拟主机等。
3. 配置Apache的模块,以支持所需的功能,如SSL、代理等。
4. 优化Apache的性能,包括调整各类参数、使用缓存等。
四、优点1. 成熟稳定:Apache作为一个经过多年发展和优化的HTTP服务器,非常成熟和稳定,具备强大的兼容性和可靠性。
2. 强大的模块支持:Apache拥有庞大的第三方模块,可以满足各种功能需求,如URL重写、反向代理、文件压缩等。
3. 容易上手:相对于Nginx,Apache的配置相对更容易理解和掌握,对于初学者或者刚开始接触服务器的人来说更友好。
五、适用场景1. 静态网站:如果你的网站主要是提供静态内容,且并发访问量不是很大,使用Apache作为HTTP服务器是一个不错的选择。
2. 虚拟主机:Apache支持配置多个虚拟主机,每个主机有独立的域名和目录,方便管理和扩展。
3. 动态脚本语言支持:Apache对各种动态脚本语言(如PHP、Python等)提供了广泛的支持,并且易于配置和使用。
六、性能优化1. 外部缓存:与Nginx类似,Apache也可以通过设置适当的缓存策略来提升性能,包括缓存静态文件、页面片段等。
2. 缩减模块和插件:只加载必要的模块和插件,减少不必要的资源占用和IO操作。
3. 调整连接数:根据服务器配置和实际需求,合理调整Apache的最大连接数和线程数,以充分利用服务器资源。
Nginx与httpd对比作为一个运维的学习者,对nginx和apache了解的很浅,但是作为以后运维过程中非常重要的两款服务器软件,静态web服务提供者,还是相当有必要深入的了解一下他们俩个的区别。
那么,我开始尝试从几个方面来分析他们的区别之处。
所有的观点都为本人持有,一家之言而已。
生存环境(操作系统)、不同的地域的使用情况、存在或者一般使用者的规模、主要作用、源代码情况(如果有时间的话)、使用亲民度、对php等的支持。
下面开始我的菜鸟学习之路一、生存环境各类种子的发育离不开肥沃的土壤,同样,谈到应用程序,我们不得不提到的就是操作系统环境,毕竟不同系统对他们的影响还是不小的apache 这个老牌了,在几乎任何系统下都有对应的支持,无论时Windows还是Linux还是其他系统,都有支持截至目前,最新版本是2.4.20,可见官网下载可以直接获得Win以及NetWare的二进制安装包,而Linux需要自行编译使用(当然使用源最好)进入下载页面,可以发现,nginx只提供Linux相关源码和Windows版本,没有其他的支持,搜索一番,Windows下Nginx的相关信息寥寥无几所以总结说Windows下Apache占用率使用率是霸主地位的,Linux两者尚不知晓顺便借鉴一下前人的经验,各种测试各种评测,很明确的OS区别就是,Apache 在Linux下的(LAMP)效率远超过在同样硬件配置的Windows Server下(Linux大法好,嘿嘿)二、使用地域实话说我并不知道中国与外国在服务器使用上有何区别,由于我的梦想是在中国当运维,所以外国怎么样对我也不重要。
听说中国的运维技术,远超过外国普通公司(淘宝在线人数峰值),所以或许关注中国是对的。
那么就贴一个图2015年中旬左右的服务器市场占有率,可以看到,nginx对比apache还是要低上不少的。
至于微软的为啥那么多?呵呵,不是所有开网站的都会用Linux的。
测试报告2.4pk N ginxApacheApache2.4测试文档目录1引言 (1)2测试环境 (1)3为啥选择tcpcopy (5)3.1.ab压力测试结果 (5)3.2.选择tcpcopy的原因 (10)4apache性能优化测试 (12)4.1.MaxRequestWorkers5000对apache的影响 (12)4.2.MaxRequestWorkers8000对apache的影响 (15)4.3.sysctl参数对apache的影响 (20)5apache pk nginx性能测试 (24)6总结 (26)1引言Apache是目前最流行的web服务器,功能齐全,稳定,历史悠久;nginx是目前增长最快的服务器,吞吐量高,性能优越。
关于apache最新版本和nginx之间的性能对比,apache 相关负责人宣称apache比nginx还要快,针对这一言论,网上有一些对比测试,但我认为这些测试还不值得作为上线参考。
为了给开放人员或者运维人员一个较为准确的答案,我们对网易的广告投放系统进行了实际压力测试,我们发现测试结果并不像apache相关负责人所宣传的那样,因为无论在吞吐量还是cpu负载方面,apache均落后于nginx,我们得出的这个结论是经过实践检验的。
为了表达我们的观点,我们安排本文的结构如下:第一章引言第二章测试环境第三章为啥选择tcpcopy第四章apache性能优化测试第五章apache pk nginx性能测试第六章总结2测试环境我们的测试架构图如下:我们会在实际在线的广告投放机器上部署tcpcopy程序,用来复制在线的广告投放请求到代理服务器中去(其中我们在测试机器a部署了apache2.4.1代理,测试机器b部署了nginx 1.1.17代理,代理服务器上面会部署interception程序,用来截断代理服务器的响应信息,并在截断之前传递响应包头信息给在线的tcpcopy,以完成web交互),代理服务器会通过http 代理转发这些请求到广告投放测试服务器中去,在在线的一台服务器上和广告投放测试服务器上面我们会记录access log,用来进行吞吐量的对比。
代理服务器各种软硬件如下:[测试机器a]$uname–aLinux2.6.18-164.el5#1SMP Tue Aug1815:51:48EDT2009x86_64x86_64x86_64GNU/Linux[测试机器b]$uname-aLinux2.6.18-164.el5#1SMP Tue Aug1815:51:48EDT2009x86_64x86_64x86_64GNU/Linux[测试机器a]$grep"model\name"/proc/cpuinfomodel name:AMD Opteron(tm)Processor246model name:AMD Opteron(tm)Processor246测试报告[测试机器b]$grep"model\name"/proc/cpuinfomodel name:AMD Opteron(tm)Processor246model name:AMD Opteron(tm)Processor246[测试机器a]$free-mtotal used free shared buffers cached Mem:404401691208431319320117016140240-/+buffers/cache:6548283389188Swap:419292404192924[测试机器b]$free–mtotal used free shared buffers cached Mem:40440166631963380820048376186752-/+buffers/cache:4280683615948Swap:419292404192924[测试机器a]$cat/etc/security/limits.conf*soft nofile65536*hard nofile65536[测试机器b]$cat/etc/security/limits.conf*soft nofile65536*hard nofile65536Nginx代理服务器的主要配置如下:worker_processes4;worker_rlimit_nofile65536;events{use epoll;epoll_events4096;worker_connections8192;accept_mutex off;}sendfile on;access_log off;keepalive_timeout12;//因为在线广告投放程序设置了keepalive12supstream ad_test_system{server广告投放测试程序ip地址:18080;keepalive1024;}server{listen18080;location/{proxy_http_version1.1;proxy_set_header Connection keepalive;proxy_pass http://ad_test_system;}}代理服务器Apache2.4.1主要配置如下:ListenBackLog5000ServerLimit100StartServers100ThreadLimit100ThreadsPerChild100MinSpareThreads500MaxSpareThreads1000MaxRequestWorkers10000MaxRequestsPerChild10000KeepAliveTimeout12Listen18080LoadModule proxy_module modules/mod_proxy.soLoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_http_module modules/mod_proxy_http.so…#关闭access_log#CustomLog"logs/access_log"commonProxyPass/http://广告投放测试程序ip地址:18080/EnableSendfile onApache机器的sysctl.conf配置如下:net.core.wmem_max=16777216net.core.rmem_max=16777216net.core.rmem_default=65536net.core.wmem_default=65536net.ipv4.tcp_mem=327681966088388608net.ipv4.tcp_rmem=327681966088388608net.ipv4.tcp_wmem=327681966088388608net.ipv4.tcp_fin_timeout=3net.ipv4.tcp_syncookies=0net.ipv4.ip_local_port_range=3276861000net.ipv4.tcp_max_syn_backlog=262144net.ipv4.tcp_max_tw_buckets=5000dev_max_backlog=30000net.ipv4.tcp_no_metrics_save=1net.core.somaxconn=262144net.ipv4.tcp_max_orphans=262144net.ipv4.tcp_synack_retries=2net.ipv4.tcp_syn_retries=2net.ipv4.tcp_tw_reuse=1net.ipv4.tcp_tw_recycle=1nginx代理所在的机器sysctl采用系统默认的配置,为啥nginx机器采取默认的配置呢,我们这里就是要欺负一下apache,任你怎么优化,nginx在不需要优化的情况下,nginx也能完胜apache。
(经过我们sysctl优化后,我们发现nginx吞吐量和性能并没有显著的提升,可能还没有测试到需要改进syctl的地步)3为啥选择tcpcopy我们先进行ab压力测试,通过此测试,我们会发现传统压力测试工具在web测试方面有多么的脆弱,然后我们简单解释一下tcpcopy能够准确把握web测试的原因。
3.1.ab压力测试结果我们在测试机器b中对测试机器a上面的apache代理进行ab测试[测试机器b bin]#./ab-n10000-c2000'http://测试机器a:18080/xxx'This is ApacheBench,Version2.3<$Revision:1178079$>Copyright1996Adam Twiss,Zeus Technology Ltd,/Licensed to The Apache Software Foundation,/Benchmarking测试机器a(be patient)Completed1000requestsCompleted2000requestsCompleted3000requestsCompleted4000requestsCompleted5000requestsCompleted6000requestsCompleted7000requestsCompleted8000requestsCompleted9000requestsCompleted10000requestsFinished10000requestsServer Software:nginx(显示广告投放测试程序采用的是nginx)Server Hostname:测试机器aServer Port:18080Document Path:/xxxDocument Length:3214bytesConcurrency Level:2000Time taken for tests: 1.532secondsComplete requests:10000Failed requests:2573(Connect:0,Receive:0,Length:2573,Exceptions:0)Write errors:0Total transferred:34236496bytesHTML transferred:32016496bytesRequests per second:6527.83[#/sec](mean)Time per request:306.380[ms](mean)Time per request:0.153[ms](mean,across all concurrent requests) Transfer rate:21825.21[Kbytes/sec]receivedConnection Times(ms)min mean[+/-sd]median maxConnect:01226.60112Processing:4726168.1287827Waiting:4026169.0286827Total:5027360.7288840Percentage of the requests served within a certain time(ms)50%28866%29175%29380%29590%30195%33298%36199%380100%840(longest request)Apache机器的cpu负载如下:load average:8.59,7.52,8.10apache error_log没有报任何有价值的错误我们可以看到apache能够处理6527请求每秒,性能看上去还不错。