上个星期对平台开发系统进行了首次压测,在晶晶的压力测试帮助下,终于将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 硬件维护手册 英文版 图片超级清晰
Hidden Functions 隐藏的功能 of Skyworth TV 43G6 9R61 Called from ADB
R60 R61拆解指导图IBM R60系列的详细拆装解剖图,方便拆装机器的童鞋们
thinkpad R61i(有1394版本)更换CPU(比如T2160换为T9300)之前 使用U盘制作启动盘 进winpe后 使用WinPhlash刷入 bios/bios-ok.wph 安装新cpu 解决更换cpu后黑频或者 Thermal Sensing error错误问题 ...
ThinkPad T61,R61,and R61i(14.1"宽屏) 硬件维修手册
联想r61声卡驱动,很难找,很难找,很难找
R61拆机教程。有图片有文字 。其实r61系列的机器,拆起来都很简单,而且构造一样。仔细看红点位置。这7颗螺丝是要拧下来的,其他不用动。螺丝的规格一共才3种,所以也没必要去仔细分类,很简单。当然电池是要先卸...
thinkpad r61/t61 的 安装指导,也可以有别的用途,是宽屏的。
R61 T61 T400 R400 想把LCD背光改LED的重要资料。
r61点位图huanglongfei r61点位图huanglongfei r61点位图huanglongfei r61点位图huanglongfei r61点位图huanglongfei r61点位图huanglongfei r61点位图huanglongfei r61点位图
IBM R61E BIOS刷机用,只可用在2008年以前的,测试过没毒,可以用。
ibm r61 重装xp系统后手动装驱动的整个顺序过程(详细) 有驱动下载用迅雷,很快
thinkpad r61i 笔记本更换硬盘,更换固态硬盘,详细步骤,免费下载
IBMthinkpad无线网卡驱动是能支持多款IBMthinkpad无线网卡的驱动程序,让用户的电脑能更好的使用无线上网功能,更高效,更快速,让你畅快上网!有需要的不妨下载吧。支持类型IBMthinkpadR60IBMthinkpadR60...
lenovo thinkpad r61 2.30 的bios升级文件
可以从T2330升级至T9500,SLIC-2.1 ,SATA II
老外网站下载的2.29,T61 R61都用上了,挺不错,一切正常。刷新方法:运行里面的WINUPTP.EXE (注意,只能在32位的操作系统里操作,建议XP或WIN7)