国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
Tomcat 生產(chǎn)服務(wù)器性能優(yōu)化

考慮一下這種場景,你開發(fā)了一個應(yīng)用,它有十分優(yōu)秀的布局設(shè)計,最新的特性以及其它的優(yōu)秀特點(diǎn)。但是在性能這方面欠缺,不管這個應(yīng)用如何都會遭到客戶拒絕??蛻艨偸瞧谕鼈兊膽?yīng)用應(yīng)該有更好的性能。如果你在產(chǎn)品中使用了Tomcat服務(wù)器,那么這篇文章就會給你幾方面來提升Tomcat服務(wù)器的性能。感謝ITWorld article給本文提供資源。經(jīng)過沉思我已經(jīng)知道了和早期版本相比最新的Tomcat提供更好的性能和穩(wěn)定性。所以一直使用最新的Tomcat版本?,F(xiàn)在本文使用下面幾步來提高Tomcat服務(wù)器的性能。

  1. 增加JVM堆內(nèi)存大小
  2. 修復(fù)JRE內(nèi)存泄漏
  3. 線程池設(shè)置
  4. 壓縮
  5. 數(shù)據(jù)庫性能調(diào)優(yōu)
  6. Tomcat本地庫
  7. 其它選項

第一步  – 提高JVM棧內(nèi)存Increase JVM heap memory

你使用過tomcat的話,簡單的說就是“內(nèi)存溢出”. 通常情況下,這種問題出現(xiàn)在實(shí)際的生產(chǎn)環(huán)境中.產(chǎn)生這種問題的原因是tomcat使用較少的內(nèi)存給進(jìn)程,通過配置TOmcat的配置文件(Windows 下的catalina.bat或Linux下的catalina.sh)可以解決這種問題.這種解決方法是通過增加JVM的棧內(nèi)存實(shí)現(xiàn)的.也就是說,JVM通常不去調(diào)用垃圾回收器,所以服務(wù)器可以更多關(guān)注處理web請求,并要求盡快完成。要更改文件(catalina.sh) 位于”\tomcat server folder\bin\catalina.sh”,下面,給出這個文件的配置信息,

1
2
3
4
5
6
7
1 JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 
  
2 -server -Xms1024m -Xmx1024m  
  
3 -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=512m  
  
4 -XX:MaxPermSize=512m -XX:+DisableExplicitGC"

-Xms – 指定初始化時化的棧內(nèi)存
-Xmx – 指定最大棧內(nèi)存
在重啟你的Tomcat服務(wù)器之后,這些配置的更改才會有效。下面將介紹如何處理JRE內(nèi)存泄漏.

第二步 – 解決JRE內(nèi)存泄露

性能表現(xiàn)不佳的另一個主要原因是內(nèi)存泄漏,正如我之前說過:始終使用最新的tomcat服務(wù)器以獲得更好的性能和可伸縮性?,F(xiàn)在,這句話變成真的。如果我們使用最新的tomcat版本6.0.26及以上就可以解決這個錯誤,因?yàn)樗艘粋€監(jiān)聽器來處理JRE和PermGen的內(nèi)存泄漏。使用的監(jiān)聽器是,

1
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />

你可以在server.xml文件中找到這個監(jiān)聽器的配置,server.xml位置在“tomcat project folder/conf/server.xml”。接下來,我們將看看如何調(diào)整連接屬性“maxThreads”。

第三步 – 線程池設(shè)置

線程池指定Web請求負(fù)載的數(shù)量,因此,為獲得更好的性能這部分應(yīng)小心處理。可以通過調(diào)整連接器屬性“maxThreads”完成設(shè)置。maxThreads的值應(yīng)該根據(jù)流量的大小,如果值過低,將有沒有足夠的線程來處理所有的請求,請求將進(jìn)入等待狀態(tài),只有當(dāng)一個的處理線程釋放后才被處理;如果設(shè)置的太大,Tomcat的啟動將花費(fèi)更多時間。因此它取決于我們給maxThreads設(shè)置一個正確的值。

1
2
3
4
5
6
7
8
9
1 <Connector port="8080" address="localhost" 
  
2 maxThreads="250" maxHttpHeaderSize="8192" 
  
3 emptySessionPath="true" protocol="HTTP/1.1" 
  
4 enableLookups="false" redirectPort="8181" acceptCount="100" 
  
5 connectionTimeout="20000" disableUploadTimeout="true" />

在上述配置中,maxThreads值設(shè)定為“250”,這指定可以由服務(wù)器處理的并發(fā)請求的最大數(shù)量。如果沒有指定,這個屬性的默認(rèn)值為“200”。任何多出的并發(fā)請求將收到“拒絕連接”的錯誤提示,直到另一個處理請求進(jìn)程被釋放。錯誤看起來如下,

1
2
3
1 org.apache.tomcat.util.threads.ThreadPool logFull SEVERE: All threads (250) are  
  
2 currently busy, waiting. Increase maxThreads (250) or check the servlet status

如果應(yīng)用提示上述錯誤,務(wù)必檢查上述錯誤是否是由于單個請求花費(fèi)太長時間造成的,這個問題的原因是這樣的,有時候如果數(shù)據(jù)庫連接不釋放的話,進(jìn)程將不會處理其它請求。
注意: 如果請求的數(shù)量超過了“750”,這將不是意味著將maxThreads屬性值設(shè)置為“750”,它意外著最好使用“Tomcat集群”的多個實(shí)例。也就是說,如果有“1000”請求,兩個Tomcat實(shí)例設(shè)置“maxThreads= 500”,而不在單Tomcat實(shí)例的情況下設(shè)置maxThreads=1000。

根據(jù)我的經(jīng)驗(yàn),準(zhǔn)確值的設(shè)定可以通過將應(yīng)用在在各種環(huán)境中測試得出。接下來,我們來看看如何壓縮的MIME類型。

第4步- 壓縮

Tomcat有一個通過在server.xml配置文件中設(shè)置壓縮的選項。壓縮可以在connector像如下設(shè)置中完成,

1
2
3
4
5
6
7
1 <Connector port="8080" protocol="HTTP/1.1" 
  
2 connectionTimeout="20000" 
  
3 redirectPort="8181" compression="500" 
  
4 compressableMimeType="text/html,text/xml,text/plain,application/octet-stream" />

在前面的配置中,當(dāng)文件的大小大于等于500bytes時才會壓縮。如果當(dāng)文件達(dá)到了大小但是卻沒有被壓縮,那么設(shè)置屬性compression=”on”。否則Tomcat默認(rèn)設(shè)置是“off”。接下來我們將看看如何調(diào)優(yōu)數(shù)據(jù)庫。

第五步- 數(shù)據(jù)庫性能調(diào)優(yōu)

Tomcat性能在等待數(shù)據(jù)庫查詢被執(zhí)行期間會降低。如今大多數(shù)應(yīng)用程序都是使用可能包含“命名查詢”的關(guān)系型數(shù)據(jù)庫。如果是那樣的話,Tomcat會在啟動時默認(rèn)加載命名查詢,這個可能會提升性能。另一件重要事是確保所有數(shù)據(jù)庫連接正確地關(guān)閉。給數(shù)據(jù)庫連接池設(shè)置正確值也是十分重要的。我所說的值是指Resource要素的最大空閑數(shù)(maxIdle),最大連接數(shù)(maxActive),最大建立連接等待時間(maxWait)屬性的值。因?yàn)榕渲靡蕾嚺c應(yīng)用要求,我也不能在本文指定正確的值。你可以通過調(diào)用數(shù)據(jù)庫性能測試來找到正確的值。

第6步 – Tomcat原生庫

Tomcat的原生庫基于Apache可移植運(yùn)行時(Apache Portable Runtime簡稱APR),給程序員提供了超強(qiáng)的擴(kuò)展性和性能,在產(chǎn)品運(yùn)作中幫助融合原生的服務(wù)器技術(shù)以展現(xiàn)最佳的性能。想知道安裝說明的朋友請參考Tomcat Native Library – (APR) Installation。

第7步 – 其他選項

這些選項是:

  • 開啟瀏覽器的緩存,這樣讀取存放在webapps文件夾里的靜態(tài)內(nèi)容會更快,大大推動整體性能。
  • 每當(dāng)開機(jī)時,Tomcat服務(wù)器應(yīng)當(dāng)自動地重啟。
  • 一般情況下HTTPS請求會比HTTP請求慢。如果你想要更好的安全性,即使慢一點(diǎn)我們還是要選擇HTTPS。

就這么多啦。在這篇文章里,我教給了大家一些提高Tomcat服務(wù)器性能的方法。如果你覺得這篇文章有用,或者你對提高Tomcat服務(wù)器性能有別的看法,請不要忘記留下寶貴的評論。祝你今天編程愉快!

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Jetty安裝配置、特性、以及后期優(yōu)化
Tomcat中JVM內(nèi)存溢出及合理配置及maxThreads如何配置
Tomcat 性能優(yōu)化(連接數(shù)、線程、JVM、dir)
java開發(fā)技術(shù)之tomcat的參數(shù)調(diào)優(yōu)
Tomcat 和 JVM 的性能調(diào)優(yōu)總結(jié)
這幾道tomcat面試題,最后兩道難倒我了
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服