整理LVS架构压力测试工作
首先,测试环境在模拟环境下进行。
测试环境:1director(apache2.2) + 1realserver(jboss4.2.3GA)+1databaseserver(oracle9i)(windows web server 2008)
测试工具:jmeter2.9
测试步骤:
1 使用jmeter2.9录制脚本
http://blog.chinaunix.net/uid-28690609-id-3690959.html
2 调整各个参数
一、 apache2.2:调整apache打开进程数,默认是60
windowsxp等基于nt版核心的系统,最大能达到1024.UNIX版本最大能达到256.再多了,也只会影响性能。我测试的时候直接用了perchildthreads=1000Maxrequestchildtheads=4000.出了不少提示,但也可用。
配置文件:D:downloadApache2.2confhttpd.conf
添加下面模块:
<IfModule mpm_winnt.c>
ThreadsPerChild 250
MaxRequestsPerChild 1000
Win32DisableAcceptEx
</IfModule>
具体参数应当参考本机进行设置。
二、jboss4.2.3GA:调整打开进程数
配置文件:D:downloadjboss-4.2.3.GAserverdefaultdeployjboss-web.deployerserver.xml
<Connector port="80" address="${jboss.bind.address}"
maxThreads="250" maxHttpHeaderSize="8192" #(主要修改这个地方)
emptySessionPath="true" protocol="HTTP/1.1"
enableLookups="false" redirectPort="443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"
compression="on" compressionMinSize="10"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
/>
初始的maxThreads=250可能不够用,我调到1024.还是不够用。其中几个重要的参数
maxThreads最大的进程数目
acceptCount当进程数满后,等待队列的数目
三、 调整oracle-ds.xml 数据库连接池文件
配置文件为:D:downloadjboss-4.2.3.GAserverdefaultdeployoracle-ds.xml
这个文件时自己创建的,默认的样例,在D:downloadjboss-4.2.3.GAdocsexamplesjcahsqldb-ds.xml
主要修改参数:
<idle-timeout-minutes>5</idle-timeout-minutes>
<min-pool-size>20</min-pool-size> #最小连接池数目
<max-pool-size>40</max-pool-size> #最大连接池数目 (主要修改这个地方)
<query-timeout>300</query-timeout> #请求超时时间
<use-fast-fail>true</use-fast-fail>
这里面的最大连接池数目最好不要超过200.oracle 9i默认的连接数大概也就200左右。超过可能会导致oracle not avliable错误。
如果要修改默认连接数,可以使用UltraEdit编辑器打开init.ora文件进行修改。
参考资料:http://linux.sheup.com/linux/38/linux23235.htm
http://hi.baidu.com/crsky2008/item/2e34a2784ce24d3e70442372 oracle修改默认连接数
- 第四章:Shiro的身份认证(Authentication)——深入浅出学Shiro细粒度权限开发框架
- 第五章:Shiro的授权(Authorization)——深入浅出学Shiro细粒度权限开发框架
- 第六章:Shiro的Realms——深入浅出学Shiro细粒度权限开发框架
- 第八章:Shiro和Spring的集成——深入浅出学Shiro细粒度权限开发框架
- 第九章:Shiro的Web——深入浅出学Shiro细粒度权限开发框架
- 第十章:Shiro的Cache——深入浅出学Shiro细粒度权限开发框架
- Appboy基于MongoDB的数据密集型实践
- 微信企业号登录授权Java实现获取员工userid根据userid换openid
- 微信支付-微信红包Java版本
- Universe入门
- 分享一款值得分享的写作工具
- 微信二次开发Java自定义菜单事件实现
- 微信OAuth授权获取用户OpenId-JAVA(个人经验)
- 【手写文字识别】-JavaAPI示例代码
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- django Model层常用验证器及自定义验证器详解
- PyQT5 实现快捷键复制表格数据的方法示例
- Python爬虫headers处理及网络超时问题解决方案
- python报错: 'list' object has no attribute 'shape'的解决
- Python应用实现双指数函数及拟合代码实例
- 浅谈django不使用restframework自定义接口与使用的区别
- 实例解析php的数据类型
- 实现PHP中session存储及删除变量
- php微信公众号开发之秒杀
- php fread函数使用方法总结
- Yii2框架控制器、路由、Url生成操作示例
- Laravel框架实现调用百度翻译API功能示例
- phpstudy2018升级MySQL5.5为5.7教程(图文)
- laravel实现简单用户权限的示例代码
- tp5(thinkPHP5框架)时间查询操作实例分析