上个星期对平台开发系统进行了首次压测,在晶晶的压力测试帮助下,终于将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的配置;部分人物表现有虚构情节,望涉及人员一笑了事)
分享到:
相关推荐
ThinkPad R61 R61i 15寸标准屏幕 BIOS升级程序 Windows 7 32 bit Vista 32 bit XP
本人成功从Thinkpad r61i的T2330升级到T9500 CPU,刷此BIOS可解决 Thermal Sensing error错误,并且可以升级到SATA II。从国外网站上辛苦下载下来的,网络上很难找,分享给大家
《T61 R61 R61i 硬件维护手册》是针对联想ThinkPad系列笔记本电脑T61、R61以及R61i的一款详细的技术文档,旨在为用户提供专业的...同时,这份手册也体现了联想对用户友好服务的承诺,让用户能够更好地掌控自己的设备。
### R60 R61拆解图重要知识点 #### 一、概述 R60与R61系列是ThinkPad品牌的经典型号,以其卓越的性能和耐用性著称。为了帮助用户更好地理解和进行拆装操作,《ThinkPad R60/R60e/R61/R61i 硬件维护手册》提供了详细...
《ThinkPad T61, R61, and R61i (14.1" 宽屏) 硬件维修手册》是一本专为ThinkPad T61、R61以及R61i笔记本电脑用户提供的详尽...通过遵循手册中的步骤,即使是对计算机硬件不熟悉的用户也能有信心地进行基础维护工作。
总的来说,ThinkPad R61i更换固态硬盘是一个相对简单的DIY项目,只需遵循正确的步骤,就能让老旧的笔记本焕发新生,运行速度会有显著提升。不过,如果你对此过程不熟悉或没有足够的信心,建议寻求专业人士的帮助,以...
Hidden Functions 隐藏的功能 of Skyworth TV 43G6 9R61 Called from ADB
综上所述,《ThinkPad R61 T61 14.1寸硬件维护手册》是一份非常全面且实用的手册,它不仅包含了丰富的维修知识和技术指导,还强调了安全的重要性。无论是专业技术人员还是普通用户,都能从中获得宝贵的指导和支持。
thinkpad R61i(有1394版本)更换CPU(比如T2160换为T9300)之前 使用U盘制作启动盘 进winpe后 使用WinPhlash刷入 bios/bios-ok.wph 安装新cpu 解决更换cpu后黑频或者 Thermal Sensing error错误问题 ...
联想r61声卡驱动,很难找,很难找,很难找
IBMthinkpad无线网卡驱动是能支持多款IBMthinkpad无线网卡的驱动程序,让用户的电脑能更好的使用无线上网功能,更高效,更快速,让你畅快上网!有需要的不妨下载吧。支持类型IBMthinkpadR60IBMthinkpadR60...
R61拆机教程。有图片有文字 。其实r61系列的机器,拆起来都很简单,而且构造一样。仔细看红点位置。这7颗螺丝是要拧下来的,其他不用动。螺丝的规格一共才3种,所以也没必要去仔细分类,很简单。当然电池是要先卸...
在IT硬件领域,尤其是笔记本电脑的显示器改装过程中,"R61 T61 T400 R400 高压条接口定义"是一个关键的知识点。这些型号的笔记本电脑,如IBM ThinkPad R61、T61、T400以及R400,都是采用LCD液晶显示屏作为原始的显示...
thinkpad r61/t61 的 安装指导,也可以有别的用途,是宽屏的。
值得注意的是,描述中提到"可跳过电池检测",这意味着即使电池电量不足,用户也可以继续进行更新,避免了因电池问题导致的中断风险。 【标签】"BIOS R61e 76"进一步明确了讨论的重点,即该更新是针对ThinkPad R61e...
r61点位图huanglongfei r61点位图huanglongfei r61点位图huanglongfei r61点位图huanglongfei r61点位图huanglongfei r61点位图huanglongfei r61点位图huanglongfei r61点位图
IBM R61E BIOS刷机用,只可用在2008年以前的,测试过没毒,可以用。
ibm r61 重装xp系统后手动装驱动的整个顺序过程(详细) 有驱动下载用迅雷,很快
"T61 R61都用上了,挺不错,一切正常"意味着这个BIOS更新不仅适用于T61型号,也适用于R61型号,且使用者在应用后没有遇到任何问题。"刷新方法:运行里面的WINUPTP.EXE"指示了升级BIOS的具体步骤,即通过运行提供的名...
lenovo thinkpad r61 2.30 的bios升级文件