開源的 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
上圖對比了 Java EE 容器的實現狀況,Tomcat 和 Jetty 都只提供了 Java Web 容器必需的 Servlet 和 JSP 規範,開發者要想實現其餘的功能,須要本身依賴其餘開源實現。面試
Glassfish 是由 sun 公司推出,Java EE 最新規範出來以後,首先會在 Glassfish 上進行實 現,因此是研究 Java EE 最新技術的首選。tomcat
最多見的狀況是使用 Tomcat 做爲 Java Web 服務器,使用 Spring 提供的開箱即用的強大 的功能,並依賴其餘開源庫來完成負責的業務功能實現安全
添加參數:服務器
export JAVA_OPTS=」-server」架構
做用:tomcat默認以java –client方式運行, 添加」server」參數將tomcat切換爲生產模式,使得tomcat能支持更高的併發數和吞吐量.
測試結果:
修改前:
併發
修改後:
性能
總結:
最大併發數和吞吐量有明顯的提高.學習
添加參數:測試
export JAVA_OPTS=」-server -Xms256M -Xmx256M」
做用:Xms參數表示初始堆的大小,也是堆大小的最小值,默認值是總共的物理內存1/64, 且小於1G(下面是-Xmx同), Xmx參數表示堆的最大值.在本機中這個參數的值大約爲128m.這裏將其擴大一倍.正常狀況下應當將這個參數的數值設置爲相同.還有另一些參數,如Xss,表示每一個線程的棧內存,默認爲1M,但通過查閱資料代表這些參數通常狀況下不須要改動.即增長堆內存是提升tomcat內存性能最好最安全的作法
測試結果
總結:
對比上個參數,能夠明顯看到併發請求的平均值,中值都有2-3倍的提高,最大值和吞吐率出現了降低.我的猜想吞吐率的降低是由於在吞吐量必定的狀況下,每秒併發數的提升拉低了該數值.併發最大值的下降,平均值的升高代表在此配置下系統的處理能力已經有了提升,而且穩定性也獲得提高.