概述
背景:
原来用的是weblogic,后来由于阿里云服务许多jar包与weblogic不兼容,采用了将不兼容功能及jar部署在tomcat的情况。
随着这种情况越来越多,不太好管理项目,所以决定用回tomcat。开源的优势就不说了。下面进行实操。
目的:
weblogic主要主要是性能稳定,不用管太多,一般不会挂掉。tomcat优势是开源,但需要自己调参数,达到自己满意的程度。
这次仍然以性能稳定为目的。
实操:
一、了解环境
查看服务器信息
命令:cat /etc/redhat-release
查看服务器内存情况
命令:free -m
有8G内存
查看cpu、内存实时情况
命令:top
查看jvm和tomcat配置情况
jvm和tomcat均采用了默认安装
tomcat默认使用内存大小
VM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.
JVM在启动的时候会自动设置Heap size的值,
其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。
可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置
以树状结果查看tomcat目录
tree -L N
参考文档:https://blog.csdn.net/qq_28602957/article/details/52511529;https://blog.csdn.net/xuehuafeiwu123/article/details/53817161
查看项目位置
[cudo@test1-237 app]$ cat yeah100_svc_local/conf/server.xml
类似的前端地址
文件字符串查找
使用vim查找字符串:https://jingyan.baidu.com/article/219f4bf793a0c2de442d38f1.html
/字符串 ; n下一个匹配;N上一个匹配
VIM中的翻页命令
向上翻页:Ctrl + f 或者PageUp键
向下翻页 : Ctrl + b 或者PageDown键
f就是forword b就是backward
翻半页
ctrl-d ctlr-u
d=down u=up
滚一行
ctrl-e ctrl-y
zz 让光标所在的行居屏幕中央
zt 让光标所在的行居屏幕最上一行 t=top
zb 让光标所在的行居屏幕最下一行 b=bottom
跳转到文件头(首页)
输入冒号(:),打开命令输入框
输入命令1,是“一”的阿拉伯数字,不是小写的L
跳转到文件尾(尾页)
输入冒号(:),打开命令输入框
输入命令:$
:u 为撤回操作(相当于windows ctrl+z)
二、开始优化
参考链接:
tomcat7 性能优化 https://blog.csdn.net/wang386851725/article/details/54911568
简单优化说明:https://www.cnblogs.com/hukey/p/5517314.html
1、线程池
等待先不要设置,经测试会在并发超过maxQueueSize值时被拒绝而访问失败。
不设置,默认为maxQueueSize="Integer.MAX_VALUE" --被执行前线程的排队数目
2、
禁用 AJP
(如果你服务器没有使用 Apache)
把下面这一行注释掉,默认 Tomcat 是开启的。
<!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> -->
3、内存管理
如果说我们需要经常创建对象啊 而且对象使用完后马上会被回收的,这种场景年轻代可以适当调大。
根据我们的应用暂时不用调整。
4、修改连接器协议
换为nio2协议可以更快
protocol="org.apache.coyote.http11.Http11Nio2Protocol"
启动效果
https://blog.csdn.net/bluetjs/article/details/77449535
protocol:Tomcat 8 设置 nio2 更好:org.apache.coyote.http11.Http11Nio2Protocol
protocol:Tomcat 6 设置 nio 更好:org.apache.coyote.http11.Http11NioProtocol
protocol:Tomcat 8 设置 APR 性能飞快:org.apache.coyote.http11.Http11AprProtocol 更多详情:《Tomcat 8.5 基于 Apache Portable Runtime(APR)库性能优化》
采用nio2测试结果
5、启动压缩
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" executor="tomcatThreadPool" URIEncoding="utf-8"
compression="on"
compressionMinSize="50"
noCompressionUserAgents="gozilla, traviata"
useSendfile="false"
compressableMimeType="text/html,text/xml,application/javascript,text/css,text/plain" />
https://www.jianshu.com/p/91d619445f8e
参考资料:
Tomcat优化详细教程:https://www.cnblogs.com/songanwei/p/9441288.html
JVM菜鸟进阶高手之路【系列】:https://blog.csdn.net/column/details/17179.html
tomcat8性能优化:https://www.jianshu.com/p/267b6a48c7d8
Linux下Tomcat设置内存解决内存溢出:https://www.cnblogs.com/mountainTop/p/7040668.html
jdk8中tomcat修改配置PermSize为MetaspaceSize:https://blog.csdn.net/qq924862077/article/details/51540171
GC日志查看分析:https://blog.csdn.net/timheath/article/details/53053106
查看jdk 线程 日志:http://www.cnblogs.com/wzhanke/p/4685452.html
认知迭代:Tomcat性能提升的实战操作,提升60倍以上tomcat性能:https://blog.csdn.net/zhuwenqiancn/article/details/78623822
Tomcat性能调优实战:http://www.cnblogs.com/scote/p/9565344.html
Tomcat 8.5 基于 Apache Portable Runtime(APR)库性能优化:https://renwole.com/archives/361
通向架构师的道路(第四天)之Tomcat性能调优-让小猫飞奔:https://blog.csdn.net/lifetragedy/article/details/7708724
Springboot Tomcat APR模式详解和实践:https://www.jianshu.com/p/f716726ba340
最后
以上就是深情豆芽为你收集整理的tomcat性能调优(自己公司的真实项目)的全部内容,希望文章能够帮你解决tomcat性能调优(自己公司的真实项目)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复