tomcat性能調優(自己公司的真實項目)

背景:

原來用的是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/52511529https://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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章