Tomcat優化部分(熟悉)

增大內存(堆,持久代)并開啟server模式

我在做XXX項目時,用到了poi導入和導出數據,由于公司的業務比較繁多,數據量很大,測試時報內存溢出,經過我的分析再結合上網查閱資料,發現可能是tomcat內存不足,需要增大,修改配置文件后測試不再報錯.tomcat增大內存的方式通過修改tomcat配置文件

window下, 在bin/catalina.bat文件中最前面添加:set JAVA_OPTS=-XX:PermSize=64M -XX:MaxPermSize=128m –Xms1024m -Xmx1024m

linux下,在catalina.sh最前面增加:JAVA_OPTS="-XX:PermSize=64M -XX:MaxPermSize=128m –Xms1024m -Xmx1024m " -client –service

當我們在cmd中運行-java時,黑窗口會出現-client -service這兩參數.其作用是設置虛擬機運行模式;client模式啟動比較快,但運行時性能和內存管理效率不如server模式,通常用于客戶端應用程序。server模式啟動比client慢,但可獲得更高的運行性能。Windows默認為client,如果要使用server模式,就需要在啟動虛擬機時加-server參數,以獲得更高性能,對服務器端應用,推薦采用server模式,尤其是多個CPU的系統。在Linux,Solaris上,默認值為server模式.

JDK版本

影響虛擬機還有JDK的版本,JDK分為32位,64位兩種版本,32位裝在32位系統,64位系統可以裝32位和64位JDK.64位JDK性能優于32位JDK.測試的命令 java -xmx數值m –version? 報錯配置大小失敗,反之成功

增加Tomcat最大連接數

使用場景

我在做完一個XXX項目后,測試時發現并發數量增加到一定程度就會很卡,于是我想到了是不是tomcat最大連接數設置有限制.果不其然,配置文件中最大值才500,于是我更改了最大連接數,根據業務我修改了連接數為2000,完美的解決了這個問題;

修改方法在conf/service.xml中默認值

<Connector port="8080" maxHttpHeaderSize="8192" maxThreads="1500"

? minSpareThreads="30" maxSpareThreads="75" enableLookups="false"

? redirectPort="8443" acceptCount="100" connectionTimeout="20000"

? disableUploadTimeout="true" />,修改maxthreads的值即可

tomcat進行gzip壓縮從而降低網絡傳輸量

tomcat 壓縮設置tomcat壓縮gzip啟用HTTP 壓縮可以大大提高瀏覽網站的速度,它的原理是,在客戶端請求服務器對應資源后,從服務器端將資源文件壓縮,再輸出到客戶端,由客戶端的瀏覽器負責解壓縮并瀏覽。

相對于普通的瀏覽過程HTML ,CSS,Javascript , Text ,它可以節省60%左右的流量。更為重要的是,它可以對動態生成的,包括CGI、PHP , JSP , ASP , Servlet,SHTML等輸出的網頁也能進行壓縮,壓縮效率也很高。

啟用tomcat 的gzip壓縮

要使用gzip壓縮功能,你需要在Connector節點中加上如下屬性

記住來源:http://www.qi788.com/info-42.html

compression="on" 打開壓縮功能

compressionMinSize="50" 啟用壓縮的輸出內容大小,默認為2KB

noCompressionUserAgents="gozilla, traviata" 對于以下的瀏覽器,不啟用壓縮

compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" 哪些資源類型需要壓縮

<Connector port="80" protocol="HTTP/1.1"?

? ? ? ? ? connectionTimeout="20000"?

? ? ? ? ? redirectPort="8443" executor="tomcatThreadPool" URIEncoding="utf-8"?

? ? ? ? ? compression="on"?

? ? ? ? ? compressionMinSize="50" noCompressionUserAgents="gozilla, traviata"?

? ? ? ? ? compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" />

補充:

在項目中使用了tomcat做web服務器,上線初期經常宕機,后來發現宕機的時候,服務器的訪問量都比較高,當時tomcat進行了一些調優

主要是調整jvm內存參數和tomcat自身參數

調整jvm內存參數,主要修改catalina.sh文件,

設置最大內存Xmx,最小內存Xms, 新生代內存Xmn,線程分配的內存大小Xss

固定內存PermSize,最大固定內存MaxPermSize,同時設置-server 以服務端模式啟動

調整tomcat的自身參數,主要修改tomcat目錄conf目錄下的server.xml

設置最大線程數,初始化線程數,允許的最大線程數,

啟動壓縮功能,禁止DNS查詢反查域名

[說明]

set JAVA_OPTS=%JAVA_OPTS% -server -Xms2048M -Xms2048M

-Xmn512M -Xss512k

-XX:PermSize=128M ?-XX:MaxPermSize=256M -XX:MaxNewSize=256M

(Xmx最大內存,Xms最小內存,Xmn新生代內存,Xss新增線程分配的棧內存,

???--XX:PermSize 設定內存的永久保存區域

??-XX:MaxPermSize=256M設定內存的永久保存區域最大值

??-XX:MaxNewSize)

Tomcat容器配置

修改conf/server.xml文件

maxThreads,配置"8080"

redirectPort="8443"

maxThreads="5000"

minSpareThreads="1000"

maxSpareThreads="4000"

enableLookups="false"

URIEncoding="UTF-8"

compression="on"

compressionMinSize="2048"

compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"

maxHttpHeaderSize="8192"

useBodyEncodingForURI="true"

minProcessors="100"

maxProcessors="5000"

acceptCount="3500"

connectionTimeout="60000"

disableUploadTimeout="true"debug="0"/>

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,619評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,155評論 3 425
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,635評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,539評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,255評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,646評論 1 326
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,655評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,838評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,399評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,146評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,338評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,893評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,565評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,983評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,257評論 1 292
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,059評論 3 397
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,296評論 2 376

推薦閱讀更多精彩內容