调整5-Tomcat的启动JVM参数
JAVA_OPTS="-XX:PermSize=120M -XX:MaxPermSize=120M -Xss265k -Xms430m -Xmx430m -Xmn185m -Xverify:none -XX:MaxTenuringThreshold=50 -XX:+UseFastAccessorMethods -XX:+UseAdaptiveSizePolicy -Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.EPollSelectorProvider -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.137.233"
发起1200并发测试,准备时间9s
吞吐量和上次测试差不多。
对内存走势如下图
总共堆大小是系统的1/4左右,年轻代复制算法清理时间10秒。标记整理则使用了26秒之多。
经多次调试(让内存曲线较为稳定),修改JVM参数,catalina.sh文件内容更改如下
JAVA_OPTS="-server -XX:PermSize=120M -XX:MaxPermSize=120M -Xss265k -Xms430m -Xmx430m -Xmn80m -Xverify:none -XX:MaxTenuringThreshold=50 -XX:+UseFastAccessorMethods -XX:+UseAdaptiveSizePolicy -Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.EPollSelectorProvider -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.137.233"
1200并发,6s准备时间,JMX图形如下
其中堆内存图形如下
避免了FullGC。
走势图
依然有不连续的偏离量,报告如下
系统更多的时间依然是在wa%上花费了不少。(注:此时jmx监控也会吃掉一些系统的性能)
为了突出此问题,将并发量上升到1500,准备时间5s。
走势图
吞吐量报表
JVM内存图形表示比较稳定,在此不列出图形。
瓶颈基本锁定在Mysql数据库。
调整6-修改Mysql配置参数
my.cnf修改配置如下
[client] port = 3306 socket = /tmp/mysql.sock [mysqld] port = 3306 socket = /tmp/mysql.sock skip-external-locking key_buffer_size = 16M max_allowed_packet = 1M myisam_sort_buffer_size = 8M log-bin=mysql-bin binlog_format=mixed server-id = 1 #update start max_connections=1500 query_cache_size=32M default-storage-engine=INNODB #table_cache=256 tmp_table_size=8M thread_cache_size=8 read_buffer_size=64K read_rnd_buffer_size = 256K net_buffer_length = 16K table_open_cache = 256 sort_buffer_size = 512K innodb_additional_mem_pool_size=2M innodb_flush_log_at_trx_commit=0 innodb_log_buffer_size=8M innodb_buffer_pool_size=32M innodb_log_file_size=128M innodb_thread_concurrency=1 #update over [mysqldump] quick max_allowed_packet = 16M [mysql] no-auto-rehash [myisamchk] key_buffer_size = 20M sort_buffer_size = 20M read_buffer = 2M write_buffer = 2M [mysqlhotcopy] interactive-timeout
1500并发,准备时间5s
JMX远程监控图形如下
压力测试走势图
报表
TPS基本维持在30左右。
经此调试,看来之前的主要瓶颈还是在数据库上。top后us%平均基本维持在70%~80%,而wa%基本维持在25%~40%之间。
调整7-不引入第三方工具软件情况下的优化
修改相关程序和配置清单(后续会将完整优化文件内容附上)
程序:调整逻辑-循环跳跃,由i++变为i=i+2,减少循环次数 数据库配置:优化连接池和一些buffer 程序连接池增大 修改JDBC连接参数,优化URL链接选项 继续修改并优化JVM参数 修改tomcat连接器参数 给主表外键简历normal的btree索引 关闭图形启动界面
经过多伦调优,此次是1500并发,连续加压6次,准备时间是23s
6次走势图如下
吞吐量报告,稳定后TPS基本维持在36~40
(未完待续)
标记:18页
各项配置:
my.cnf
之前
相关推荐
大型Web网站数据存储与性能调优-开题报告
WebLogicServer性能及调优-调优Web应用程序[参考].pdf
Web应用性能提升之数据库调优Web应用性能提升之数据库调优Web应用性能提升之数据库调优
Web应用性能提升之前端调优Web应用性能提升之前端调优Web应用性能提升之前端调优
学习Java程序性能调优视频教程后,有助于您的专业技术大度上升。解决工作诸多问题,快来吧。
这是《网站性能优化--从前端到后台的优化》一书的引言部分,全面英文版通读一遍之后,感觉非常实用,故有翻译给国人一起共享的想法。现将引言部分抛出,如果大家认为有用,我将陆续将后续章节翻译成中文。
Web应用的压力测试-loadrunner(好资料收藏)
JAVA-WEB应用服务器调优方案
Oralce_weblogic_11g_安装-WEB应用部署-连接数据库-监控调优
「安全防御」我的Web应用安全模糊测试之路 - 攻防靶场 web安全 安全管理 安全防护 红蓝对抗 NGFW
JAVA-WEB应用服务器调优方案
WEB性能测试结果分析及调优.pptx
web压力测试工具was-weba.rar 很好用 欢迎下载
熟练运用WAS (web application stress tool)软件进行web 压力测试
wast是web压力测试 的描述文档,可浏览观看
webserver网站压力测试工具webserver网站压力测试工具webserver网站压力测试工具webserver网站压力测试工具webserver网站压力测试工具
介绍十个免费的Web压力测试工具的优缺点
Web Application Stress Tool专门用来进行实际网站压力测试的一套工具。
E020-渗透测试常用工具-使用w3af进行Web应用安全漏洞测试