Java程式設計——Tomcat基本概念及常用調優方式
Tomcat是什麼
開源的 Java Web 應用伺服器,實現了 Java EE(Java Platform Enterprise Edition)的部 分技術規範,比如 Java Servlet、Java Server Page、JSTL、Java WebSocket。Java EE 是 Sun 公 司為企業級應用推出的標準平臺,定義了一系列用於企業級開發的技術規範,除了上述的之外,還有 EJB、Java Mail、JPA、JTA、JMS 等,而這些都依賴具體容器的實現
上圖對比了 Java EE 容器的實現情況,Tomcat 和 Jetty 都只提供了 Java Web 容器必需的 Servlet 和 JSP 規範,開發者要想實現其他的功能,需要自己依賴其他開源實現。
Glassfish 是由 sun 公司推出,Java EE 最新規範出來之後,首先會在 Glassfish 上進行實 現,所以是研究 Java EE 最新技術的首選。
最常見的情況是使用 Tomcat 作為 Java Web 伺服器,使用 Spring 提供的開箱即用的強大 的功能,並依賴其他開源庫來完成負責的業務功能實現
常用調優方式1 : 修改…/bin/catalina.sh(啟動時優化)
Windows下為catalina.bat
- 新增引數:
export JAVA_OPTS=”-server”
- 作用:tomcat預設以java –client方式執行, 新增”server”引數將tomcat切換為生產模式,使得tomcat能支援更高的併發數和吞吐量.
- 測試結果:
- 修改前:
- 修改後:
總結:
最大併發數和吞吐量有明顯的提升.
常用調優方式2:
新增引數:
export JAVA_OPTS=”-server -Xms256M -Xmx256M”
- 作用:Xms參數列示初始堆的大小,也是堆大小的最小值,預設值是總共的實體記憶體1/64, 且小於1G(下面是-Xmx同), Xmx參數列示堆的最大值.在本機中這個引數的值大約為128m.這裡將其擴大一倍.正常情況下應當將這個引數的數值設定為相同.還有另外一些引數,如Xss,表示每個執行緒的棧記憶體,預設為1M,但經過查閱資料表明這些引數一般情況下不需要改動.即增加堆記憶體是提高tomcat記憶體效能最好最安全的做法.
- 測試結果:
總結:
對比上個引數,可以明顯看到併發請求的平均值,中值都有2-3倍的提升,最大值和吞吐率出現了下降.個人猜測吞吐率的下降是因為在吞吐量一定的情況下,每秒併發數的提高拉低了該數值.併發最大值的降低,平均值的升高表明在此配置下系統的處理能力已經有了提高,並且穩定性也得到提升.
歡迎工作一到五年的Java工程師朋友們加入Java架構開發:468947140
點選連結加入群聊【Java-BATJ企業級資深架構】:https://jq.qq.com/?_wv=1027&k=5zMN6JB
本群提供免費的學習指導 架構資料 以及免費的解答
不懂得問題都可以在本群提出來 之後還會有職業生涯規劃以及面試指導
相關文章
- Java Web之Tomcat調優JavaWebTomcat
- Tomcat高階特性及效能調優Tomcat
- 程式設計–基本概念程式設計
- 優秀Java程式設計師的程式設計風格Java程式設計師
- Tomcat常用優化配置Tomcat優化
- java優化程式設計-物件重用Java優化程式設計物件
- Java程式設計常用計算機小知識Java程式設計計算機
- 【JavaScript】常用設計模式及程式設計技巧(ES6描述)JavaScript設計模式程式設計
- Java Socket 程式設計原理及教程Java程式設計
- Tomcat無端僵死,JAVA程式設計問題何在?TomcatJava程式設計
- 使用VisualVM對JAVA程式進行效能分析及調優LVMJava
- 好程式設計師Java培訓分享Java程式設計師常用的工具類庫程式設計師Java
- Java常用設計模式Java設計模式
- Java程式設計師常用工具集Java程式設計師
- Oracle常用調優手段Oracle
- Java高階程式設計——MySQL索引實現及優化原理解析Java程式設計MySql索引優化
- Java程式設計師漲薪必備的效能調優知識點,收好了!Java程式設計師
- Java程式設計師面試題及解答Java程式設計師面試題
- Tomcat部署及優化Tomcat優化
- 好程式設計師Java教程分享Servlet基本概念以及執行流程程式設計師JavaServlet
- MySQL調優篇 | 表連線方式及演算法(3)MySql演算法
- 調查:Java程式設計師最傷心,C++程式設計師最年老Java程式設計師C++
- java常用的設計模式Java設計模式
- java優化程式設計-記憶體管理Java優化程式設計記憶體
- java優化程式設計-靜態變數Java優化程式設計變數
- JVM常用調優引數JVM
- Oracle常用調優手段[轉]Oracle
- 成為優秀程式設計師的最佳學習方式程式設計師
- 程式設計師精進之路:效能調優利器--火焰圖程式設計師
- 請教Java+tomcat資料庫程式設計問題?JavaTomcat資料庫程式設計
- 鴻蒙程式設計江湖:非同步程式設計的優勢及 Promise的應用鴻蒙程式設計非同步Promise
- TiDB 查詢優化及調優系列(四)查詢執行計劃的調整及優化原理TiDB優化
- JS非同步程式設計的幾種方式及區別JS非同步程式設計
- Java效能調優Java
- 實戰分析Java的非同步程式設計,並透過CompletableFuture進行高效調優Java非同步程式設計
- JAVA程式設計學習記錄(API常用類(二))Java程式設計API
- Java程式設計師常用的10大構建工具Java程式設計師
- 程式設計思想基本概念之回撥(Callback)程式設計