好记性不如烂笔头,遗憾地发现自己最近的遗忘率实在是高啊,很多之前明明掌握的一些技能,小细节以及心得,因为没有及时反思,记录,结果不得不花费大量的时间从头梳理。笨拙的人貌似经常容易在一些简单的事情中陷入反复的周旋。
言归正传吧,说到性能优化,大道理大家都懂,真遇到问题时候大不了google嘛,正是这样一种观望的心态造成了自己始终没法把这方面的知识纳入自己的技术体系中,上周所负责的框架进行了一周的性能测试,收获颇多。
我是做公司的框架部分,公司别的所有应用项目全基于框架开发,每个项目在实际应用中都会遇到一个性能问题,最近发觉大家都在把责任往框架上推:“框架本身并发才不到30,你说我们的项目能有多少?”,“稳定性不行啊,跑几天就死机”。。等等,不绝于耳。
忍无可忍了,决定做个全面的测试,环境为mysql5+tomcat5.5,框架基于spring+hibernate+struts,测试工具为jmeter,loadruner。
直接部署工程,运行jmeter,确实,不到30的并发,工程当了。。
优化tomcat
编辑bin目录下catalina.bat,加入以下语句
set JAVA_OPTS=-Xms1024m -Xmx1024m -XX:MaxNewSize=256m -XX:MaxPermSize=256m
内存的设置于系统内存大小有关,一般取50%
编辑conf下server.xml,
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="1000" minSpareThreads="250" maxSpareThreads="500"
enableLookups="false" redirectPort="8443" acceptCount="1100"
connectionTimeout="20000" disableUploadTimeout="true" />
优化mysql
我主要修改了一个最大连接数,修改my.ini
max_connections=1024
优化连接池设置
jdbc.maxActive=2048
jdbc.maxIdle=1024
jdbc.minIdle=5
jdbc.maxWait=8000
jdbc.removeAbandonedTimeout=8
jdbc.removeAbandoned=true
在loadruner下设置300并发,轻松愉快,小试牛刀;接着做稳定性测试,设置300人同时在线,运行时间为无限次,到今天为止已经有36小时了,监控系统的cpu,内存使用情况,一切良好。
言归正传吧,说到性能优化,大道理大家都懂,真遇到问题时候大不了google嘛,正是这样一种观望的心态造成了自己始终没法把这方面的知识纳入自己的技术体系中,上周所负责的框架进行了一周的性能测试,收获颇多。
我是做公司的框架部分,公司别的所有应用项目全基于框架开发,每个项目在实际应用中都会遇到一个性能问题,最近发觉大家都在把责任往框架上推:“框架本身并发才不到30,你说我们的项目能有多少?”,“稳定性不行啊,跑几天就死机”。。等等,不绝于耳。
忍无可忍了,决定做个全面的测试,环境为mysql5+tomcat5.5,框架基于spring+hibernate+struts,测试工具为jmeter,loadruner。
直接部署工程,运行jmeter,确实,不到30的并发,工程当了。。
优化tomcat
编辑bin目录下catalina.bat,加入以下语句
set JAVA_OPTS=-Xms1024m -Xmx1024m -XX:MaxNewSize=256m -XX:MaxPermSize=256m
内存的设置于系统内存大小有关,一般取50%
编辑conf下server.xml,
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="1000" minSpareThreads="250" maxSpareThreads="500"
enableLookups="false" redirectPort="8443" acceptCount="1100"
connectionTimeout="20000" disableUploadTimeout="true" />
优化mysql
我主要修改了一个最大连接数,修改my.ini
max_connections=1024
优化连接池设置
jdbc.maxActive=2048
jdbc.maxIdle=1024
jdbc.minIdle=5
jdbc.maxWait=8000
jdbc.removeAbandonedTimeout=8
jdbc.removeAbandoned=true
在loadruner下设置300并发,轻松愉快,小试牛刀;接着做稳定性测试,设置300人同时在线,运行时间为无限次,到今天为止已经有36小时了,监控系统的cpu,内存使用情况,一切良好。