Tomcat優化配置

2021-06-27 09:02:22 字數 1966 閱讀 6823

伺服器所能提供cpu、記憶體、硬碟的效能對處理能力有決定性影響。

(1) 對於高併發情況下會有大量的運算,那麼cpu的速度會直接影響到處理速度。

(2) 內存在大量資料處理的情況下,將會有較大的記憶體容量需求,可以用-xmx -xms -xx:maxpermsize等引數對記憶體不同功能塊進行劃分。我們之前就遇到過記憶體分配不足,導致虛擬機器一直處於full gc,從而導致處理能力嚴重下降。

(3) 硬碟主要問題就是讀寫效能,當大量檔案進行讀寫時,磁碟極容易成為效能瓶頸。最好的辦法還是利用下面提到的快取。

對於靜態頁面最好是能夠快取起來,這樣就不必每次從磁碟上讀。這裡我們採用了nginx作為快取伺服器,將、css、js檔案都進行了快取,有效的減少了後端tomcat的訪問。

另外,為了能加快網路傳輸速度,開啟gzip壓縮也是必不可少的。但考慮到tomcat已經需要處理很多東西了,所以把這個壓縮的工作就交給前端的nginx來完成。可以參考之前寫的《利用nginx加速web訪問》。

除了文字可以用gzip壓縮,其實很多也可以用影象處理工具預先進行壓縮,找到乙個平衡點可以讓畫質損失很小而檔案可以減小很多。曾經我就見過乙個從300多kb壓縮到幾十kb,自己幾乎看不出來區別。

單個伺服器效能總是有限的,最好的辦法自然是實現橫向擴充套件,那麼組建tomcat集群是有效提公升效能的手段。我們還是採用了nginx來作為請求分流的伺服器,後端多個tomcat共享session來協同工作。可以參考之前寫的《利用nginx+tomcat+memcached組建web伺服器負載均衡》。

這裡以tomcat7的引數配置為例,需要修改conf/server.xml檔案,主要是優化連線配置,關閉客戶端dns查詢。

1. 修改/etc/sysctl.cnf檔案,在最後追加如下內容: 

net.core.netdev_max_backlog = 32768

net.core.somaxconn = 32768

net.core.wmem_default = 8388608

net.core.rmem_default = 8388608

net.core.rmem_max = 16777216

net.core.wmem_max = 16777216

net.ipv4.ip_local_port_range = 1024 65000 

net.ipv4.route.gc_timeout = 100

net.ipv4.tcp_fin_timeout = 30

net.ipv4.tcp_keepalive_time = 1200

net.ipv4.tcp_timestamps = 0

net.ipv4.tcp_synack_retries = 2

net.ipv4.tcp_syn_retries = 2

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_mem = 94500000 915000000 927000000 

net.ipv4.tcp_max_orphans = 3276800

net.ipv4.tcp_max_syn_backlog = 65536

2. 儲存退出,執行sysctl -p生效 

Tomcat配置優化經驗

tomcat配置優化經驗 一 去掉對web.xml的監視,把jsp提前編輯成servlet。有富餘物理記憶體的情況,加大tomcat使用的jvm的記憶體 二 伺服器資源 伺服器所能提供cpu 記憶體 硬碟的效能對處理能力有決定性影響。1 對於高併發情況下會有大量的運算,那麼cpu的速度會直接影響到處...

Tomcat 執行緒池的配置與優化

優化連線數,主要是在conf server.xml配置檔案中進行修改。優化執行緒數 找到connectorport 8080 protocol http 1.1 增加maxthreads和acceptcount屬性 使acceptcount大於等於maxthreads 如下 ps maxthread...

Tomcat併發優化

在 tomcat 配置檔案 server.xml maxthreads tomcat 使用執行緒來處理接收的每個請求。這個值表示 tomcat 可建立的最大的執行緒數。預設值 150。acceptcount 指定當所有可以使用的處理請求的執行緒數都被使用時,可以放到處理佇列中的請求數,超過這個數的請...