`
kalogen
  • 浏览: 880151 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Tomcat6优化汇总–让R61本本也能跑上两千

阅读更多

上个星期对平台开发系统进行了首次压测,在晶晶的压力测试帮助下,终于将IBM R61的本本跑出了2100用户的好成绩(Tomcat6+Oracle11g+PlatForm+Ubuntu8.10)!

另,不过细节过程可能忘记了,晶晶表介意,大概吧事实讲述清楚,好不!!:)

楔子:

压力测试,通过对tomcat6的逐步优化,终于让IBM R61压测用户跑上了2100人,有点极限的样子,单在整个测试过程中除了系统cpu资源使用100%之外,硬盘响应几乎为无,测试完成后整个系统保持稳 定,无崩溃迹象,这说明本本局限了在线压力的继续提高(毕竟不是服务器),呵呵,好了,不介绍了,开始讲述,故事正在开始……

第一章  三百已是才能尽,五百哪敢去高攀

初始开始压力测试时,定的目标为3000户在线并发的目标(虽然最后也没有成,但还是比较欣慰的,毕竟是用本本,不是在主业Web服务器上测试), 作为适应性的第一测试,只将用户压力定在了500。当晶晶同学将压力并发测试系统准备好,并完成第一轮测试时,都绝望了–通过用户数仅仅为280人左 右,晶晶同学告诉我“估计你的本本300用户已经是极限了”。于是,在他的要求下从200开始测试,我无奈的同意了……^>^|||

第二次两百用户的测试非常顺利的通过,各环节耗时除登录耗时占用比例交大外,其余各阶段都非常合格。测试过程中,系统cpu资源只提升了5%不到, 硬盘无消耗,本本上的各项操作也非常正常,无任何延时现象,数据库链接监控发现最大链接数没有突破10。这,这……,这就有点不正常了,压测过程系统过于 平静、清闲了点。开始和“王老五”分析数据库原因,突然一拍脑袋,这正是“机关算尽太聪明、反害了卿卿(R61)性命……”


第二章 王老五随语惊梦人,鱼财主死抠算线程

“老五呀,数据库线程怎么一点点压力都没有,R61也是,整个压测跟玩似的清闲,这很不对劲”,我沮丧的对着王老五说着。王老五撇了我一眼,有转头 紧盯着oracle资源监控系统,然后就是点头和“是呀”的回答。我是有点抓狂了,也跑到王老五的笔记本前看着那些代表数据资源的绿条条,心里就纳闷了, 怎么就不红呢,红了就好了……。正在我想的时候,王老五随口来了句“链接数相当少,线程压力几乎没有嘛”。惊,绝对的惊,出了一脑门子的汗,……

“对,线程,……,嗯,这和哪里关联着呢,到底这扇门通向哪里??”我不停的想着,考虑着,眼前已经出现了门,我正在不停的拽那个把手,那个门后面应该就是“我所需要的……”

对了,Ajax Web 访问时线程访问频繁,tomcat执行线程为单线程响应方式,数据链接数极低(不到10),说明线程池使用效率也同样低,过多用户多处于等待执行线程的状 态,这也刚好验证了晶晶的测试失败原因–链接超时。那到底是什么导致tomcat线程池使用能力不足呢?这时,我突然想到,Ubuntu系统是一个基于 Linux的系统,一般的系统用户都是被强制受限的,比如,单线程打开文件最大数、用户最大线程数、打开文件最大尺寸、最大内存使用限制……等等。可是普 通Ubuntu用户组用户是不允许使用调整命令“ulimit”;而且Ubuntu的root用户是被锁死的;sudo命令执行,结果是shell中没有 “ulimit”命令(sudo: ulimit: command not found)。

这正是“门前已扫五升雪,瓦上还聚三升霜……”


第三章 鱼头大海捞虾米,布图怯怯启Root

1、创建root用户:

sudo passwd root

注:根据提示设置root用户密码(创建root用户)

2、允许root用户登录

点击 System (系统)-> Preferences(系统管理) -> Login Window(登陆窗口) 菜单,并切换到 Security(安全) 选项页,然后选中其下的“Allow local system administrator login”(允许本地系统管理员登陆)选项。

3、禁用Root用户

sudo passwd -l root
------------------------------------

另类改变方法:

1.设置好root密码!
$ sudo passwd root
2. 屏蔽gdm改用终端登录
$ sudo mv /etc/rc2.d/S13gdm /etc/rc2.d/s13gdm
3. 重启计算机
4. 以root登录并startx可以了!系统怎样改都行了,小心哦!!
5. 恢复gdm方式(如果你的gdm可以正常工作的话)
$ sudo mv /etc/rc2.d/s13gdm /etc/rc2.d/S13gdm
6. 重启计算机!!

这正是“书到用时方恨少,事非经过不知难……”


第四章 调教TOM晶晶叫好,布图吃饱硬盘不保

1、开启Root用户后,使用root用户登录,调整Linux系统限制,如下:

ulimit -n 65533

ulimit -u unlimited

进入tomcat目录,启动:

./catalina.sh run

看着终端的屏幕开是刷,显示出清晰的tomcat6的启动日志

晶晶的压力测试直接500,在未做其余任何调整的情况下通过,其中表单提交过程耗是在12秒左右,稍微慢了点,王老五反应数据库链接数突破到19后停滞,那么继续优化

2、调整platform数据源的线程设置

假设发布目录为Webroot,那么在WebRoot/META-INF/下建立context.xml文件,调整数据源配置

(注:tomcat6才能支持发布目录数据源配置,以前的版本改文件路径在tomcat安装路径下的conf目录中)

context.xml文件内容如下:

<?xml version=”1.0″ encoding=”UTF-8″?>
<Context path= “/WebRoot ” privileged= “true” reloadable=”false”>
<Resource name=”sysDataSource” auth=”Container”
type=”javax.sql.DataSource” maxActive=”5000″ maxIdle=”300″ maxWait=”60000″
logAbandoned=”true” username=”yfjz” password=”password”
driverClassName=”oracle.jdbc.driver.OracleDriver”
url=”jdbc:oracle:thin:@10.10.10.XX:1521:al32″ />
<Resource name=”yfjzDataSource” auth=”Container”
type=”javax.sql.DataSource” maxActive=”4000″ maxIdle=”200″ maxWait=”60000″
logAbandoned=”true” username=”yfjz” password=”password”
driverClassName=”oracle.jdbc.driver.OracleDriver”
url=”jdbc:oracle:thin:@10.10.10.XX:1521:al32″ />
</Context>
(注:再次测试300户时,数据链接监控发现线程上到199,线程已经解禁了)

3、调增tomcat6响应池:

查找tomcat6安装目录下conf目录中的server.xml文件,进行编辑

屏蔽tomcat默认Connector:

<!–

<Connector port=”8080″ protocol=”HTTP/1.1″
connectionTimeout=”20000″
redirectPort=”8443″ />

–>

创建高线程的Connector:

<Connector port=”8080″ redirectPort=”8443″
maxHttpHeaderSize=”8192″ useBodyEncodingForURI=”true”
minProcessors=”100″ maxProcessors=”5000″
maxThreads=”5000″ minSpareThreads=”1000″ maxSpareThreads=”4000″
enableLookups=”false” acceptCount=”3500″
compression=”on” compressionMinSize=”2048″
compressableMimeType=”text/html,text/xml,text/javascript,text/css,text/plain”
connectionTimeout=”60000″ disableUploadTimeout=”true” debug=”0″ URIEncoding=”UTF-8″/>
(注:加入响应线程数控制,加入压缩传递模式,调整超时设置,屏蔽调试模式)

4、增加tomcat6启动内存:

查找tomcat6安装目录下bin目录中catalina.sh文件,在开始增加如下:

JAVA_OPTS=” -Xms1400m -Xmx1400m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true ”

5、增加oracle响应线程数:

王老五将oracle数据线程响应定为1000,这是测试用的,同时监控oracle链接资源

(想知道这个怎么设置的,认识王老五的就找他聊聊,不认识的就网上找找吧,呵呵)

6、开始压测1000户

晶晶开始测试后,确发现有十来户一直处于等待状态,R61本本cpu资源从96%降到10%以下,硬盘灯狂闪,Desktop系统操作响应减缓

使用硬盘资源检查命令发现,硬盘使用资源为100%,说明硬盘满了,系统在寻找缓存操作,硬盘和内存疯狂交互

这真是“一波刚平一波起,平湖落石浪千层……”


第五章 查硬盘日志累计,斩输出平台生春

通过查找,系统硬盘资源撑爆的原因是tomcat日志和platform日志无限追加的原因,解决办法如下:

1、调整platform日志log4j.properties

将首行的“log4j.rootLogger = DEBUG, A1, A2”改为“log4j.rootLogger = INFO, A1”

(注:很简单吧:-)

2、调整tomcat6的日志输出

将下面内容注释掉:

handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4admin.org.apache.juli.FileHandler, 5host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

(注:行首加#号就行)

3、晶晶继续压测,结果定在2100多户左右

尾声:

从整个过程来看,PlatForm在抗压性上表现突出,自始至终未出现崩盘情况,所有失败用户的错误提示都为“time-out”,只是登录响应时间占总流程比重稍高,仍续继续调整;该测试可以说改变了我对tomcat的定义,在各项优化做足的情况下,tomcat抗压能力优秀, 也从未崩盘,只是单线程响应是一直诟病的,反映在当集群用户出现是表单响应时间便长,致使我不得不增大了超时时间(原来定在20秒,后来调整到1分钟); 系统容载量是一个综合性的过程,在整个压测环节中每一步都十分重要,不能仅仅依靠某一个环节的优化就可以安了,在2100户时,数据库链接超过800线, 系统cpu使用量高达96%,硬盘资源几乎不耗费,这说明2G的内存在处理足够多的事物。

以上是IBM R61 2G内存本压测从200用户到2100用户通过的过程,请需要的人借鉴,也希望多提宝贵意见。

(注:Tomcat6 Connector配置参考了javaeye的配置;部分人物表现有虚构情节,望涉及人员一笑了事)

分享到:
评论

相关推荐

    09 11ThinkPad R61 R61i 15寸标准屏幕 BIOS升级程序

    ThinkPad R61 R61i 15寸标准屏幕 BIOS升级程序 Windows 7 32 bit Vista 32 bit XP

    Thinkpad R61i R61e 升级 BIOS

    本人成功从Thinkpad r61i的T2330升级到T9500 CPU,刷此BIOS可解决 Thermal Sensing error错误,并且可以升级到SATA II。从国外网站上辛苦下载下来的,网络上很难找,分享给大家

    T61 R61 R61i 硬件维护手册 英文版 图片超级清晰

    《T61 R61 R61i 硬件维护手册》是针对联想ThinkPad系列笔记本电脑T61、R61以及R61i的一款详细的技术文档,旨在为用户提供专业的...同时,这份手册也体现了联想对用户友好服务的承诺,让用户能够更好地掌控自己的设备。

    R60 R61拆解图

    ### R60 R61拆解图重要知识点 #### 一、概述 R60与R61系列是ThinkPad品牌的经典型号,以其卓越的性能和耐用性著称。为了帮助用户更好地理解和进行拆装操作,《ThinkPad R60/R60e/R61/R61i 硬件维护手册》提供了详细...

    ThinkPad T61,R61,and R61i(14.1"宽屏) 硬件维修手册

    《ThinkPad T61, R61, and R61i (14.1" 宽屏) 硬件维修手册》是一本专为ThinkPad T61、R61以及R61i笔记本电脑用户提供的详尽...通过遵循手册中的步骤,即使是对计算机硬件不熟悉的用户也能有信心地进行基础维护工作。

    thinkpad r61i 笔记本更换固态硬盘详细步骤(免费下载)

    总的来说,ThinkPad R61i更换固态硬盘是一个相对简单的DIY项目,只需遵循正确的步骤,就能让老旧的笔记本焕发新生,运行速度会有显著提升。不过,如果你对此过程不熟悉或没有足够的信心,建议寻求专业人士的帮助,以...

    隐藏的功能 Skyworth TV 43G6 9R61 KEYCODES

    Hidden Functions 隐藏的功能 of Skyworth TV 43G6 9R61 Called from ADB

    thinkpad R61 T61 14.1 inch硬件维护手册

    综上所述,《ThinkPad R61 T61 14.1寸硬件维护手册》是一份非常全面且实用的手册,它不仅包含了丰富的维修知识和技术指导,还强调了安全的重要性。无论是专业技术人员还是普通用户,都能从中获得宝贵的指导和支持。

    thinkpad R61i成功升级CPU T9300,完美BIOS

    thinkpad R61i(有1394版本)更换CPU(比如T2160换为T9300)之前 使用U盘制作启动盘 进winpe后 使用WinPhlash刷入 bios/bios-ok.wph 安装新cpu 解决更换cpu后黑频或者 Thermal Sensing error错误问题 ...

    联想r61声卡驱动很难找

    联想r61声卡驱动,很难找,很难找,很难找

    IBM thinkpad R60/R60e/R61/R61e系列无线网卡驱动 官方版

    IBMthinkpad无线网卡驱动是能支持多款IBMthinkpad无线网卡的驱动程序,让用户的电脑能更好的使用无线上网功能,更高效,更快速,让你畅快上网!有需要的不妨下载吧。支持类型IBMthinkpadR60IBMthinkpadR60...

    R61E拆机教程

    R61拆机教程。有图片有文字 。其实r61系列的机器,拆起来都很简单,而且构造一样。仔细看红点位置。这7颗螺丝是要拧下来的,其他不用动。螺丝的规格一共才3种,所以也没必要去仔细分类,很简单。当然电池是要先卸...

    R61 T61 T400 R400 高压条接口定义

    在IT硬件领域,尤其是笔记本电脑的显示器改装过程中,"R61 T61 T400 R400 高压条接口定义"是一个关键的知识点。这些型号的笔记本电脑,如IBM ThinkPad R61、T61、T400以及R400,都是采用LCD液晶显示屏作为原始的显示...

    thinkpad r61 14.1inch setup guide

    thinkpad r61/t61 的 安装指导,也可以有别的用途,是宽屏的。

    thinkpad r61e 7650 BIOS最新版

    值得注意的是,描述中提到"可跳过电池检测",这意味着即使电池电量不足,用户也可以继续进行更新,避免了因电池问题导致的中断风险。 【标签】"BIOS R61e 76"进一步明确了讨论的重点,即该更新是针对ThinkPad R61e...

    huanglongfei r61点位图

    r61点位图huanglongfei r61点位图huanglongfei r61点位图huanglongfei r61点位图huanglongfei r61点位图huanglongfei r61点位图huanglongfei r61点位图huanglongfei r61点位图

    r61e主板BIOS

    IBM R61E BIOS刷机用,只可用在2008年以前的,测试过没毒,可以用。

    ibm r61安装驱动过程 (XP)

    ibm r61 重装xp系统后手动装驱动的整个顺序过程(详细) 有驱动下载用迅雷,很快

    Thinkpad T61/P R61/I新BIOS 2.29(含免电池补丁,已验证成功)

    "T61 R61都用上了,挺不错,一切正常"意味着这个BIOS更新不仅适用于T61型号,也适用于R61型号,且使用者在应用后没有遇到任何问题。"刷新方法:运行里面的WINUPTP.EXE"指示了升级BIOS的具体步骤,即通过运行提供的名...

    thinkpad r61 2.30 bios

    lenovo thinkpad r61 2.30 的bios升级文件

Global site tag (gtag.js) - Google Analytics