IHS性能调优参数设置经验总结1_第1页
IHS性能调优参数设置经验总结1_第2页
IHS性能调优参数设置经验总结1_第3页
IHS性能调优参数设置经验总结1_第4页
IHS性能调优参数设置经验总结1_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——IHS性能调优参数设置经验总结11文档摘要

1.1文档分类

经验总结?IHS性能调优参数的设置

1.2关键字/Tag

WAS6.0IHS负载均衡

1.3摘要

在某单位的某项目中,AIX环境WAS6.0集群环境下,前端的集群分发使用的是IHS(IBMHttpServer),在loadrunner的压力测试中,针对于IHS负载不均、不能响应请求等问题,作了一些性能调优参数设置方面的工作。本文会围绕这些相关参数的设置展开,来说明这些参数的意义以及参数之间的关联关系,并如何通过合理的参数设置来解决负载均衡且稳定的问题,最终达到IHS性能优化的目的。

1.4定义、首字母缩写词及缩略语

IHS——IBMHttpServer

2具体内容

2.1workerMPM和IHS基本原理

1.workerMPM是多进程多线程的混合模式,使用线程来处理请求,可以获得处理海量请求,由于每个进程都要占用独立的内存单元,所以多进程耗内存,由于多线程是共享内存单元的,所以省内存,但是由于一个进程中的一个线程死掉,整个进程会死掉,所以多线程具有不稳定性,以多进程和多线程的结合,即服务器建立多个子进程,每个

子进程有建立多个线程,以获得基于进程服务器的稳定性。

2.IHS就是基于workerMPM的模式,其工作原理是IHS根据负载的状况,增加或减少进程数量,一个单独的父控制进程负责管理(建立或删除)子进程,每个子进程可以建立多个服务线程和一个监听线程,监听线程监听请求并转发给服务线程处理。

2.2参数说明

参数设置文件路径:

IHS的参数配置文件:{IHS_HOME}/conf/httppd.conf重点内容:

#

#KeepAlive:Whetherornottoallowpersistentconnections(morethan#onerequestperconnection).Setto\#

KeepAliveOn#

#MaxKeepAliveRequests:Themaximumnumberofrequeststoallow

#duringapersistentconnection.Setto0toallowanunlimitedamount.#Werecommendyouleavethisnumberhigh,formaximumperformance.#

MaxKeepAliveRequests0#

#KeepAliveTimeout:Numberofsecondstowaitforthenextrequestfromthe#sameclientonthesameconnection.#

KeepAliveTimeout16##

##Server-PoolSizeRegulation(MPMspecific)##

#workerMPM

#ThreadLimit:maximumsettingofThreadsPerChild#ServerLimit:maximumsettingofStartServers

#StartServers:initialnumberofserverprocessestostart#MaxClients:maximumnumberofsimultaneousclientconnections

#MinSpareThreads:minimumnumberofworkerthreadswhicharekeptspare#MaxSpareThreads:maximumnumberofworkerthreadswhicharekeptspare

第2页共5页

#ThreadsPerChild:constantnumberofworkerthreadsineachserverprocess#MaxRequestsPerChild:maximumnumberofrequestsaserverprocessserves

ThreadLimit2000ServerLimit500StartServers50MaxClients2000MinSpareThreads25MaxSpareThreads200ThreadsPerChild1000MaxRequestsPerChild0参数说明:

1.keepAlive

keepAlive从英文的页面翻译看,是指在一次连接中是否允许处理多于一个的请求,即为持久连接,其配置决定了处理完客户端的HTTP请求后是否关闭TCP连接,即客户端访问后,是否始终保持连接,从而客户端假使还有请求,则会继续在这次连接中完成,而不需要重新建立新的TCP连接,这个可以减少客户端反复创立TCP连接和关闭TCP连接的时间,从而加速客户端的访问。On为开启,即持久化连接,Off为关闭,即一次连接,一个请求,下一个请求要重新建立TCP连接。

KeepAliveOn和KeepAliveOff对比KeepAliveOn优点缺点相对比较消耗内存,由于每个连接都是减少客户端反复创立TCP连接和一个独立的进程,假使每次的连接都是关闭TCP连接的时间,客户端的访长连接,那么多个用户并发访问时,多问速度十分快个同时的连接同时造成多个进程,多个长时间的进程消耗的内存都不释放,那么这段时间内存消耗比较大Off每次连接都是短连接,即每次请求后,由于每次请求都需要和服务器建马上释放内存,在一段时间内存的消耗立TCP连接和关闭TCP连接,所以总和比较小服务器会多消耗一些CPU,客户端的访问速度较慢从上面的对比来看,假使服务器内存比较多,而且用户在连接服务器后,持续的进行好多操作,发出好多请求,那么建议KeepAliveOn。

第3页共5页

从配置文件中还会发现两个配置参数:MaxKeepAliveRequests为一个连接允许的最大请求数,即在建立一个连接后,没有超时(KeepAliveTimeout参数)的时间内,允许最大的请求数,这个一般设置为0,即无限制,不过建议在安全性很好的网站,或者内网设置为0,假使安全性不是很好,很简单被攻击(短时间内并发无数个请求,直到耗尽内存)。

4.StartServers是服务器启动时,服务器初始化的子进程数ThreadsPerChild是每个子进程可以建立的线程数ServerLimit是服务器可以创立最多的子进程数ThreadLimit是每个进程允许建立最多线程数MaxClients是IHS可以并行承受的最大请求数

MinSpareThreads和MaxSpareThreads是一个进程所设置的空闲线程的范围,假使请求到来时,已经在这个范围内,IHS会一边提供空闲线程处理请求,一边新建新的进程和线程,即MinSpareThreads和MaxSpareThreads起到一个缓冲的作用,不会让请求到来时,线程突然已经用完,需要等待新的进程和线程的创立

MaxRequestsPerChild设置的是每个子进程可处理的最大请求数

2.3参数配置

理解了上面的概念,就比较简单设置这些参数

1.MaxClients既然是IHS可以并行承受的最大请求数,那么就是配置参数的入口,假设系统平日并发的用户量一定,那么MaxClients的值就是该值

2.StartServers是服务器初始化的子进程数,ThreadsPerChild是每个进程可以建立的线程数,那么StartServers*ThreadsPerChild是服务器初始化时的总的线程数,这个值必需大于等于MaxClients,才能满足用户并发请求数

3.MaxClients必需是ThreadsPerChild的整数倍,否则IHS将会自动调理到一个相应值(可能是个非期望值)

4.假使keepAlive开启,为keepAliveon,那么一个用户连接服务器后的第一个请求便会占用一个服务线程,假使MaxClients个并发用户同时向服务器第一次发出请求,那么StartServers*ThreadsPerChild个线程是能够满足这些请求的,但是假使这些用户建立连接后,在KeepAliveTimeout范围内连续请求,那么就需要建立更多的子进

第4页共5页

程和线程,因此ThreadLimit和ServerLimit值与KeepAliveTimeout范围内连续用户的请求数关系密切,假设这么多并发用户每一个用户在KeepAliveTimeout范围内连续用户的请求数为20,那么ThreadLimit*ServerLimit的值就必需是StartServers*ThreadsPerChild值的20倍,ThreadLimit和ServerLimit的值分派时,不能让其中任一值设定的太大,另一个值设定的太小,由于这个关系是进程和线程的关系,多线程和多进程的结合,讲求的是平衡,因此这两个值的可以预先设置,然后在通过几轮loadrunner压力测试,找到让IHS比较稳定的ThreadLimit值和ServerLimit的值

2.4结合场景的实例

场景:在某单位的某项目项目中,在做loadrunner压力测试时,用户的并发量为1900,一轮(用户登陆到退出,期间有其他的操作请求)测试间隔为半分钟,一轮测试中各请求之间没有等待时间。

根据场景设定参数:

1.由于该系统是内网,比较安全,所以采用keepAliveon,KeepAliveTimeout设定为16,MaxKeepAliveRequests设置为0

2.根据keepAliveon和用户的并发量为1900,MaxClients设定为20003.根据上面的配置,StartServers设定为50,ThreadsPerChild设定为1000,StartServers*ThreadsPerChild=50000>1900,MaxClients是ThreadsPerChild的2倍(整数倍)

4.一轮测试中各请求之间没有等待时间

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论