中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

一線大廠Java面試必問的2大類Tomcat調優

發布時間:2020-07-22 17:46:48 來源:網絡 閱讀:537 作者:架構師追風 欄目:編程語言

一、前言

最近整理了 Tomcat 調優這塊,基本上面試必問,于是就花了點時間去搜集一下 Tomcat 調優都調了些什么,先記錄一下調優手段,更多詳細的原理和實現以后用到時候再來補充記錄,下面就來介紹一下,Tomcat 調優大致分為兩大類。

一線大廠Java面試必問的2大類Tomcat調優

1、Tomcat的自身調優

采用動靜分離節約 Tomcat 的性能

調整 Tomcat 的線程池

調整 Tomcat 的連接器

修改 Tomcat 的運行模式

禁用 AJP 連接器

2、JVM的調優

調優Jvm內存


二、Tomcat 自身調優

1、采用動靜分離

靜態資源如果讓 Tomcat 處理的話 Tomcat 的性能會被損耗很多,所以我們一般都是采用:Nginx+Tomcat 實現動靜分離,讓 Tomcat 只負責 jsp 文件的解析工作,Nginx 實現靜態資源的訪問。

2、調優 Tomcat 線程池

打開tomcat的serve.xml,配置Executor,相關參數說明如下。

一線大廠Java面試必問的2大類Tomcat調優

name:給執行器(線程池)起一個名字;

namePrefix:指定線程池中的每一個線程的 name 前綴;

maxThreads:線程池中最大的線程數量,假設請求的數量超過了 750,這將不是意味著將 maxThreads 屬性值設置為 750,它的最好解決方案是使用「Tomcat集群」。也就是說,如果有 1000 請求,兩個 Tomcat 實例設置 maxThreads = 500,而不在單 Tomcat 實例的情況下設置 maxThreads=1000。

minSpareThreads:線程池中允許空閑的線程數量(多余的線程都殺死);

maxIdLeTime:一個線程空閑多久算是一個空閑線程;

其他的配置其實閱讀官方文檔是最好的「見參考鏈接」。

3、調優 Tomcat 的連接器 Connector

打開 Tomcat 的 serve.xml,配置 Connector,參數說明如下。

一線大廠Java面試必問的2大類Tomcat調優

executor:指定這個連接器所使用的執行器(線程池);

一線大廠Java面試必問的2大類Tomcat調優

enableLookups=false:關閉 DNS 解析,減少性能損耗;

minProcessors服務器啟動時創建的最少線程數;

maxProcessors:最大可以創建的線程數;

acceptCount=1000:線程池中的線程都被占用,允許放到隊列中的請求數;

maxThreads=3000:最大線程數;

minSpareThreads=20:最小空閑線程數,這里是一直會運行的線程;

與壓縮有關系的配置:如果已經對代碼進行了動靜分離,靜態頁面和圖片等數據就不需要 Tomcat 處理了,那么也就不需要配置在 Tomcat 中配置壓縮了;

一個完整的配置如下。

一線大廠Java面試必問的2大類Tomcat調優

4、通過修改 Tomcat 的運行模式

BIO

Tomcat8 以下版本,默認使用的就是 BIO「阻塞式IO)」模式。

一線大廠Java面試必問的2大類Tomcat調優

對于每一個請求都要創建一個線程來進行處理,不適合高并發。

NIO

Tomcat8 以上版本,默認使用的就是NIO模式「非阻塞式 IO」。

APR

全稱 Apache Portable Runtime,是Tomcat生產環境運行的首選方式,如果操作系統未安裝 APR 或者 APR 路徑未指到 Tomcat 默認可識別的路徑,則 APR 模式無法啟動,自動切換啟動 NIO 模式。所以必須要安裝 APR 和 Native,直接啟動就支持 APR,APR是從操作系統級別解決異步 IO 問題,APR 的本質就是使用 JNI 技術調用操作系統底層的 IO 接口,所以需要提前安裝所需要的依賴

提升 Tomcat 對靜態文件的處理性能,當然也可以采用動靜分離。

5、禁用 AJP 連接器

AJP的全稱 Apache JServer Protocol,使用 Nginx+Tomca t的架構,所以用不著 AJP 協議,所以把AJP連接器禁用。

一線大廠Java面試必問的2大類Tomcat調優

三、JVM 調優

Tomcat 是運行在 JVM 上的,所以對 JVM 的調優也是非常有必要的。
歡迎大家關注我的公種浩【程序員追風】,文章都會在里面更新,整理的資料也會放在里面。

找到 catalina.sh;

一線大廠Java面試必問的2大類Tomcat調優

添加;

一線大廠Java面試必問的2大類Tomcat調優

參數設置;

JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8-server -Xms1024m -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=512m -XXermSize=512m -XX:MaxPermSize=512m -XX:+DisableExplicitGC"

調整堆大小的的目的是最小化垃圾收集的時間,以在特定的時間內最大化處理客戶的請求。

最后

歡迎大家一起交流,喜歡文章記得點個贊喲,感謝支持!


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

翼城县| 昌宁县| 崇仁县| 郯城县| 桐柏县| 淮北市| 屏东市| 南郑县| 龙州县| 西丰县| 临高县| 德庆县| 元江| 洛宁县| 泽州县| 武穴市| 清河县| 宜都市| 灌阳县| 古丈县| 信宜市| 天等县| 德保县| 资溪县| 武平县| 荣成市| 五河县| 宣化县| 青海省| 绵阳市| 南城县| 格尔木市| 花莲市| 台东县| 宁阳县| 芜湖市| 皮山县| 河北省| 礼泉县| 渑池县| 南郑县|