




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
apache最大连接数性能测试这天工作没什么事情,翻开看资料,再次学习一下apache的性能优化,以下就说说我的设置及测试。先说一下我的测试机硬件及软件配置环境,硬件:一台比较古老的机器,cpu: P42.0 ,内存256,其他的就不多说了。软件:linux as 4 , apache2.0.59先说一下这次安装及配置就是测试apache的性能,如果你打算看其他方面的,那就不要看了,因为偶也没有写,嘿嘿嘿。./configure -prefix=/usr/local/apache2 -with-mpm=worker -enable-so说明;MPM=beos|worker|prefork|mpmt_os2|perchild|leader|threadpool我这里mpm使用的是worker,以下说明一下mpm个参数;MPM的引入是Apache2.x最重要的变化,影响apache2.x 性能的最核心特性,MPM(Multi-ProcessingModules,多道处理模块),运行在一种多进程与多线程相混合的模式下,增强部分配置的可扩充性能。相比于Apache1.3, 2.x版本本做了大量的优化来提升处理能力和可伸缩性,并且大多数改进在默认状态下即可生效。但是在编译和运行时刻,2.x也有许多可以显著提高性能的选择。Beos、mpmt_os2分别是BeOS和OS/2上缺省的MPMperchild主要设计目的是以不同的用户和组的身份来运行不同的子进程。这在运行多个需要CGI的虚拟主机时特别有用,会比1.3版本中的SuExec机制做得更好leader和threadpool都是基于worker的变体prefork就是Unix平台上缺省的MPM。它所采用的预派生子进程方式也是Apache1.3中采用的模式。prefork本身并没有使用到线程,2.x版本使用它是为了与1.3版本保持兼容性;另一方面,prefork用单独的子进程来处理不同的请求,进程之间是彼此独立的,这也使其成为最稳定的MPM之一。若使用prefork,在make编译和makeinstall安装后,使用“httpd-l”来确定当前使用的MPM,应该会看到prefork.c查看缺省生成的httpd.conf配置文件,里面包含如下配置段: StartServers5 MinSpareServers5 MaxSpareServers10 MaxClients150 MaxRequestsPerChild0 prefork的工作原理是,主控进程在最初建立“StartServers”个子进程后,为了满足MinSpareServers的设置,需要再创建一个进程,等待一秒钟,继续创建两个,再等待一秒钟,继续创建四个如此按指数级增加创建的进程数,最多达到每秒32个,直到满足MinSpareServers设置的值为止。这就是预派生(prefork)的由来。这种模式可以不必在请求到来时再产生新的进程,从而减小了系统开销,以增加性能。 MaxSpareServers设置了最大的空闲进程数,如果空闲进程数大于这个值,Apache会自动kill掉一些多余进程。这个值不要设得过大,但如果设的值比MinSpareServers小,Apache会自动把其调整为MinSpareServers+1。如果站点负载较大,可考虑同时加大MinSpareServers和MaxSpareServers。 MaxRequestsPerChild设置的是每个子进程可处理的请求数。每个子进程在处理了“MaxRequestsPerChild”个请求后将自动销毁。0意味着无限,即子进程永不销毁。虽然缺省设为0可以使每个子进程处理更多的请求,但如果设成非零值也有两点重要的好处: 可防止意外的内存泄漏; 在服务器负载下降的时侯会自动减少子进程数。 因此,可根据服务器的负载来调整这个值。 MaxClients是这些指令中最为重要的一个,设定的是Apache可以同时处理的请求,是对Apache性能影响最大的参数。其缺省值150是远远不够的,如果请求总数已达到这个值(可通过ps-ef|grephttp|wc-l来确认),那么后面的请求就要排队,直到某个正处理请求的完毕。这就是系统资源还剩下很多而HTTP访问却很慢的主要原因。系统管理员可以根据硬件配置和负载情况来动态调整这个值。虽然理论上这个值越大,可以处理的请求就越多,但Apache默认的限制不能大于256。如果把这个值设为大于256,那么Apache将无法起动。事实上,256对于负载稍重的站点也是不够的。在Apache1.3中,这是个硬限制。如果要加大这个值,必须在“configure”前手工修改源代码树下的src/include/httpd.h,在其中查找256,就会发现“#defineHARD_SERVER_LIMIT256”这行。把256改为要增大的值(如4000),然后重新编译Apache即可。在Apache2.x中新加入了ServerLimit指令,使得无须重编译Apache就可以加大MaxClients。下面是测试的prefork配置段: StartServers10 MinSpareServers10 MaxSpareServers15 ServerLimit20000 MaxClients1000 MaxRequestsPerChild10000 上述配置中,ServerLimit的最大值是20000,对于大多数站点已经足够。如果一定要再加大这个数值,对位于源代码树下server/mpm/prefork/prefork.c中以下行做相应修改即可: #defineMAX_SERVER_LIMIT20000 worker的工作原理及配置worker是2.x版本中全新的支持多线程和多进程相混合的MPM模型。由于使用线程来处理,所以可以处理相对海量的请求,而系统资源的开销要小于基于进程的服务器。但是,worker也使用了多进程,每个进程又生成多个线程,以获得基于进程服务器的稳定性。这种MPM的工作方式是Apache2.x的发展趋势。在configure-with-mpm=worker后,进行make编译、makeinstall安装。在缺省生成的httpd.conf中有以下配置段: StartServers2 MaxClients150 MinSpareThreads25 MaxSpareThreads75 ThreadsPerChild25 MaxRequestsPerChild0 worker的工作原理是,由主控制进程生成“StartServers”个子进程,每个子进程中包含固定的ThreadsPerChild线程数,各个线程独立地处理请求。同样,为了不在请求到来时再临时生成线程,MinSpareThreads和MaxSpareThreads设置了最少和最多的空闲线程数;而MaxClients设置了所有子进程中的线程总数。如果现有子进程中的线程总数不能满足负载,控制进程将派生新的子进程。 MinSpareThreads和MaxSpareThreads的最大缺省值分别是75和250。这两个参数对Apache的性能影响并不大,可以按照实际情况相应调节。ThreadsPerChild是workerMPM中与性能相关最密切的指令。ThreadsPerChild的最大缺省值是64,如果负载较大,64也是不够的。这时要显式使用ThreadLimit指令,它的最大缺省值是20000。上述两个值位于源码树server/mpm/worker/worker.c中的以下两行: #defineDEFAULT_THREAD_LIMIT64 #defineMAX_THREAD_LIMIT20000 这两行对应着ThreadsPerChild和ThreadLimit的限制数。最好在configure之前就把64改成所希望的值。注意,不要把这两个值设得太高而超过系统的处理能力,从而导致因Apache不起动而使系统不稳定。 Worker模式下所能同时处理的请求总数是由子进程总数乘以ThreadsPerChild值决定的,应该大于等于MaxClients。如果负载很大,现有的子进程数不能满足时,主控进程会派生新的子进程。默认最大的子进程总数是16,加大时也需要显式声明ServerLimit(最大值是20000)。这两个值位于源码树server/mpm/worker/worker.c中的以下两行: #defineDEFAULT_SERVER_LIMIT16 #defineMAX_SERVER_LIMIT20000 以上内容我也是从我以前文档里cp的,也许有点过时,对于初次学习还是有帮助的。HOHOHO 好了,以下是我的机器实际配置过程。我使用的MPM是worker,我要通过修改源代码文件,尽量增大进程数和线程数,修改文件为;/root/httpd-2.0.59/server/mpm/worker/worker.c修改内容:#define DEFAULT_SERVER_LIMIT 50#define DEFAULT_THREAD_LIMIT 100然后开始编译,安装咯。安装完成后,我将配置文件中worker 修改为以下;StartServers 10MaxClients 900ServerLimit 50MinSpareThreads 25MaxSpareThreads 75ThreadsPerChild 90ThreadLimit 100MaxRequestsPerChild 0具体参数说明,以上文档有。这里就不说了。以下开始测试;ab是Apache超文本传输协议(HTTP)的性能测试工具。 其设计意图是描绘当前所安装的Apache的执行性能, 主要是显示你安装的Apache每秒可以处理多少个请求 此命令其他参数就不多说了,你可以google,会很多我,我也是go出来的,我用的了以下俩个参数:-c concurrency 一次产生的请求个数。-n requests 在测试会话中所执行的请求个数。以下我测试3次,如下:rootabb conf# ab -n 1000 -c 100 26/表示同时处理1000个请求并运行100次This is ApacheBench, Version 2.0.41-dev apache-2.0Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, /Copyright (c) 1998-2002 The Apache Software Foundation, /Benchmarking 26 (be patient)Completed 100 requestsCompleted 200 requestsCompleted 300 requestsCompleted 400 requestsCompleted 500 requestsCompleted 600 requestsCompleted 700 requestsCompleted 800 requestsCompleted 900 requestsFinished 1000 requestsServer Software: Apache/2.0.59 测试机apache版本号Server Hostname: 26测试机主机名Server Port: 80测试机端口Document Path: /测试机目录Document Length: 1456 bytes文档大小Concurrency Level: 100并发数Time taken for tests: 1.305834 seconds整个测试持续的时间Complete requests: 1000完成请求的数量Failed requests: 0失败请求数量Write errors: 0错误请求数量Total transferred: 1924263 bytes整个测试的网络传输量HTML transferred: 1489488 bytes整个测试html页面的网络传输量Requests per second: 765.79 #/sec (mean)关注1:每秒事务数Time per request: 130.583 ms (mean)关注2:平均事务响应时间Time per request: 1.306 ms (mean, across all concurrent requests)每个请求实际运行时间的平均值Transfer rate: 1438.93 Kbytes/sec received平均每秒网络上的流量Connection Times (ms) min mean+/-sd median maxConnect: 17 45 17.1 47 92Processing: 21 76 58.7 61 585Waiting: 1 56 24.0 52 116Total: 64 121 57.5 119 610网络上消耗时间的分解Percentage of the requests served within a certain time (ms) 50% 119 66% 122 75% 125 80% 132 90% 139 95% 172 98% 325 99% 465100% 610 (longest request)整个场景的响应情况,只重50%的用户响应时间小于119豪秒,66%的用户响应时间小于122豪秒。在测试一个ab -n 10000 -c 1000 26/请求处理10000个并行运行1000次Document Path: /Document Length: 1456 bytesConcurrency Level: 1000Time taken for tests: 27.371944 secondsComplete requests: 10000Failed requests: 0Write errors: 0Total tra
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人教版高中物理必修2《2.平抛运动》教学设计2
- 七年级数学下册 第10章 轴对称、平移与旋转10.1 轴对称 4设计轴对称图案教学设计 (新版)华东师大版
- 三年级品德与社会下册 公共安全多提防教学设计 未来版
- 三年级品德与社会下册 认识自然 2教学设计 冀教版
- 6.5 国家司法机关-八年级《道德与法治》下册教学设计(统编版)
- 九年级化学上册 1.1 物质的变化和性质教学设计 (新版)新人教版
- (重庆二诊)重庆市高2025届高三学业质量调研抽测 (第二次)语文试卷(含答案解析)
- 人教版二年级上册数学教案设计第8课时 解决问题1
- 高铁工程测量培训
- 初中班主任培训经验分享
- 妇产科课件-早产临床防治指南(2024)解读
- 施工现场机械设备管理规定
- 高质量数字化转型技术解决方案集(2024上半年度)
- 住房城乡建设科学技术计划项目科研开发类申报书
- 广东省佛山市S6高质量发展联盟2023-2024学年高一下学期4月期中考试数学
- 道路旅客运输企业双重预防机制建设指导手册
- 智慧农业的支撑技术简介
- 地下车库等环氧地坪漆工程投标文件(技术标)
- 雨露计划补助资金管理办法
- XXX小学“三会一课”活动记录
- 政务服务中心物业服务投标方案【新版】(技术方案)
评论
0/150
提交评论