IHS性能调优参数设置经验总结1
更新时间:2024-03-19 07:42:01 阅读量: 综合文库 文档下载
- nginx性能调优参数推荐度:
- 相关推荐
1 文档摘要
1.1 文档分类
经验总结?IHS性能调优参数的设置
1.2 关键字/Tag
WAS6.0 IHS 负载均衡
1.3 摘要
在某单位的某项目中,AIX环境WAS6.0集群环境下,前端的集群分发使用的是IHS(IBM Http Server),在loadrunner的压力测试中,针对于IHS负载不均、不能响应请求等问题,作了一些性能调优参数设置方面的工作。本文会围绕这些相关参数的设置展开,来说明这些参数的意义以及参数之间的关联关系,并如何通过合理的参数设置来解决负载均衡且稳定的问题,最终达到IHS性能优化的目的。
1.4 定义、首字母缩写词及缩略语
IHS——IBM Http Server
2 具体内容
2.1 worker MPM和IHS基本原理
1. worker MPM是多进程多线程的混合模式,使用线程来处理请求,可以获得处理海量请求,由于每个进程都要占用独立的内存单元,所以多进程耗内存,由于多线程是共享内存单元的,所以省内存,但是由于一个进程中的一个线程死掉,整个进程会死掉,所以多线程具有不稳定性,以多进程和多线程的结合,即服务器建立多个子进程,每个
子进程有建立多个线程,以获得基于进程服务器的稳定性。
2.IHS就是基于worker MPM的模式,其工作原理是IHS根据负载的情况,增加或减少进程数量,一个单独的父控制进程负责管理(建立或删除)子进程,每个子进程可以建立多个服务线程和一个监听线程,监听线程监听请求并转发给服务线程处理。
2.2 参数说明
参数设置文件路径:
IHS的参数配置文件:{ IHS_HOME }/conf/httppd.conf 重点内容:
#
# KeepAlive: Whether or not to allow persistent connections (more than # one request per connection). Set to \#
KeepAlive On #
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount. # We recommend you leave this number high, for maximum performance. #
MaxKeepAliveRequests 0 #
# KeepAliveTimeout: Number of seconds to wait for the next request from the # same client on the same connection. #
KeepAliveTimeout 16 ##
## Server-Pool Size Regulation (MPM specific) ##
# worker MPM
# ThreadLimit: maximum setting of ThreadsPerChild # ServerLimit: maximum setting of StartServers
# StartServers: initial number of server processes to start # MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare # MaxSpareThreads: maximum number of worker threads which are kept spare
第 2 页 共 5 页
# ThreadsPerChild: constant number of worker threads in each server process # MaxRequestsPerChild: maximum number of requests a server process serves
ThreadLimit 2000 ServerLimit 500 StartServers 50 MaxClients 2000 MinSpareThreads 25 MaxSpareThreads 200 ThreadsPerChild 1000 MaxRequestsPerChild 0 参数说明:
1. keepAlive
keepAlive从英文的页面翻译看,是指在一次连接中是否允许处理多于一个的请求,即为持久连接,其配置决定了处理完客户端的HTTP请求后是否关闭TCP连接,即客户端访问后,是否始终保持连接,从而客户端如果还有请求,则会继续在这次连接中完成,而不需要重新建立新的TCP连接,这个可以减少客户端反复创建TCP连接和关闭TCP连接的时间,从而加速客户端的访问。On为打开,即持久化连接,Off为关闭,即一次连接,一个请求,下一个请求要重新建立TCP连接。
KeepAlive On和KeepAlive Off对比 KeepAlive On 优点 缺点 相对比较消耗内存,因为每个连接都是减少客户端反复创建TCP连接和一个独立的进程,如果每次的连接都是关闭TCP连接的时间,客户端的访长连接,那么多个用户并发访问时,多问速度非常快 个同时的连接同时造成多个进程,多个长时间的进程消耗的内存都不释放,那么这段时间内存消耗比较大 Off 每次连接都是短连接,即每次请求后,由于每次请求都需要和服务器建马上释放内存,在一段时间内存的消耗立TCP连接和关闭TCP连接,所以总和比较小 服务器会多消耗一些CPU, 客户端的访问速度较慢 从上面的对比来看,如果服务器内存比较多,而且用户在连接服务器后,持续的进行很多操作,发出很多请求,那么建议KeepAlive On。
第 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打开,为keepAlive on,那么一个用户连接服务器后的第一个请求便会占用一个服务线程,如果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.由于该系统是内网,比较安全,所以采用keepAlive on,KeepAliveTimeout设定为16,MaxKeepAliveRequests设置为0
2.根据keepAlive on和用户的并发量为1900,MaxClients设定为2000 3.根据上面的配置,StartServers设定为50,ThreadsPerChild设定为1000,StartServers*ThreadsPerChild=50000>1900, MaxClients是ThreadsPerChild的2倍(整数倍)
4.一轮测试中各请求之间没有等待时间,估算KeepAliveTimeout(16)范围内,可能会产生20个请求,StartServers*ThreadsPerChild=20*50000, StartLimit设定为200,ThreadsPerChild设定为5000
5.MinSpareThreads设定为25,MaxSpareThreads设定为200
6.MaxRequestsPerChild设置为0,即每个子进程可处理的最大请求数没有限制
第 5 页 共 5 页
正在阅读:
IHS性能调优参数设置经验总结103-19
关于成立汤山街道基层党组织公推直选工作领导小组的通知12-07
国学知识大赛12-09
施工组织设计8.22 - 图文01-27
微机组装及维护实验报告04-22
牡丹品种DNA指纹图谱绘制的初步研究01-08
怪盗基德出场集数06-28
落小教学工作计划2013205-07
捐书活动教学反思03-28
晚会小品剧本大全02-11
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 性能
- 参数
- 设置
- 经验
- 总结
- IHS
- 建筑物区分所有人对地基的权利(王利明)
- 抗结核药对肝脏损害研究进展
- 2016年最新@南大行政法学第二次作业汇总
- 初中物理作业布置点滴谈
- 投诉处理 星级酒店客户投诉处理作业指导书
- 我对教师职业的专业性的理解与认识
- 超星慕课2017年下半年大学生心理健康教育期末考试题目和答案
- 生物公司安全生产责任制考核制度
- 2019弘扬工匠精神成就出彩人生范文精编-范文精品
- 安全生产标准化复评汇报材料
- 小学语文 病句修改练习201301
- liang小学语文修改病句方法及练习题
- C语言单选题456
- 埃及介绍英文版
- (大四)大学生心理健康课课程论文写作要求(1)
- 最新人教版新课标数学小学三年级下册《数学广角搭配(二)》重点
- 管道阀门 维护检修规程
- 高二物理下册单元测试题及答案:电场强度
- 县委书记在思想大解放树立新形象的讲话
- 4.中期报告书 - 图文