Archive

文章標籤 ‘Tomcat’

Tomcat監控執行效能

2011年2月16日 尚無評論
Tomcat是一個不錯的Java Web Appaction,本身也有提供監控執行的東東,雖然陽春,但對於系統效能調校,這些數據是非常有用的。
1.首先,預設這個監控是沒有開啟的,要打開Tomcat的status頁面,要先至Tomcat的conf目錄下的tomcat-users.xml裡面增加使用者資料及權限,調整如下:
<tomcat-users>
<role rolename=”manager”/>
<user username=”youradmin” password=”yourpassword” roles=”manager”/>
</tomcat-users>

這裡的password和username請自行修改,之後重啟tomcat,連結至http://localhost:8080/manager/status再輸入其帳號密碼即可看到現行運行的status(畫面如下)

如果你是要拿這些數據去做一些統計分析圖表,可執行http://localhost:8080/manager/status?XML=true 這樣即可以XML的方式產出(下方參考連結中有一個是在教如何用其它工具做圖表,有興趣請自行延伸閱讀)

當然,這個status頁面所提供的數據是做何用的,我想有些人看到這麼多數據就很頭大,所以以下是參考別人的網站再轉譯,應該有所幫助:

  • ThreadInfo: Tomcat中執行序資訊
  • Max threads:     執行序最大可以產生的數量
  • MinSpareThreads: 執行序最小空閒的數量
  • MaxSpareThreads: 執行序最大空閒的數量
  • Current thread count: 現行執行中的Thread數量
  • Current thread busy:  現行處於busy狀態的執行序數
  • RequestInfo: 請求的統計資訊
  • Max processing time: 單一個請求的最大處理時間
  • Processing time: 請求的處理時間
  • Bytes received: 收到的Bytes數
  • Bytes sent: 發送的Bytes數
  • Request count: 總請求數
  • Error count: 發生錯誤的請求數
  • Stage Time B Sent B Recv Client VHost Request
  • 這些就是你訪問伺服器這個時間點,伺服器正在處理的連接的一些資訊。
  • ThreadInfo: Tomcat中執行序資訊 Max threads:     執行序最大可以產生的數量 MinSpareThreads: 執行序最小空閒的數量 MaxSpareThreads: 執行序最大空閒的數量 Current thread count: 現行執行中的Thread數量 Current thread busy:  現行處於busy狀態的執行序數
  • RequestInfo: 請求的統計資訊 Max processing time: 單一個請求的最大處理時間 Processing time: 請求的處理時間 Bytes received: 收到的Bytes數 Bytes sent: 發送的Bytes數 Request count: 總請求數 Error count: 發生錯誤的請求數
  • Stage Time B Sent B Recv Client VHost Request 這些就是你訪問伺服器這個時間點,伺服器正在處理的連接的一些資訊。

參考資料:

http://www.javaeye.com/problems/36777

http://bbs.51testing.com/thread-113013-1-1.html(有人透過在Linux透過其它製圖工具繪製Tomcat Status圖表,有興趣可參考此連結)

Categories: JAVA, 系統設定 Tags: ,

Tomcat網頁GZIP壓縮設定

2010年4月16日 尚無評論

相信絕大部份的程式設計師,內心都會有一個小小的願望,就是自己寫的系統可以給很多人使用,當系統愈有名氣時,自己就愈高興,不過或許這也是另一個考驗的開始…..

當多人使用系統時,除了程式要寫的好之外,系統的硬體等級、應用系統伺服器的調校、資料庫參數的調校等當然還有頻寬的限制等,都是會影響你系統運行時的品質,上述要點,一個出了問題,就算你其它的設定再好,也沒啥鳥用,但當都一一調整後,你的系統還是出現負擔過重時,在有限的資源無法擴充之下,就只能吹毛求疵從各項再去下手。本次要和大家介紹的網站設定GZIP壓縮設定,就是一般常會忘了可以這樣設定,並且這樣的設定可以大幅改善頻寬的使用,經小弟的測試,一般一個圖文並貌的網站,總共約可以減少至少一半以上的大小,這樣你頻寬瞬間可以大幅度支援更多使用者,就讓我快點告訴大家這個好用的設定吧。

先說明一下什麼是網頁GZIP壓縮設定,因為目前網頁都是以原始碼的模式進行傳遞,再藉由瀏覽器去直譯產出你看到的網頁,所以當你看到網頁原始碼時,都是一些如何呈現的語法,如果我們先將網頁原始碼壓縮後再傳輸,到了瀏覽者的電腦上再解開,這樣就可以簡省很多傳輸的頻寬。而網頁原始碼這種純文字格式的檔案,壓縮起來非常有成就感,因為裡面太多空白及相同的字眼,所以一般壓起來,都可以壓縮到只剩下十之一以下的容量,這樣就能快速傳送網頁資訊。

目前有支援GZIP的瀏覽器非常眾多,包含IE、Firefox、chrome等目前市佔率極高的瀏覽器都有支援,所以等於九成以上的瀏覽者都可以適用,這次我們就來說說JAVA WEB APPLICATION Tomcat如何設定 GZIP壓縮傳輸設定,首先我們開啟Tomcat/conf/server.xml,找尋以下設定

<Connector port=”8080″ maxHttpHeaderSize=”8192″
  maxThreads=”150″ minSpareThreads=”25″ maxSpareThreads=”75″
  enableLookups=”false” redirectPort=”8443″ acceptCount=”100″
  connectionTimeout=”20000″
  disableUploadTimeout=”true” />

這主要是設定Tomcat系統在運行時的一些參數,包含監聽的Port、同時最大接受的request等,其實還有很多參數可以設定,當然包含了GZIP的壓縮設定,所以我們可以在此加上以下參數

  compression=”on”  
是否啟用壓縮機制

  compressionMinSize=”2048″ 
設定壓縮檔案最小的size,單位是Bytes,所以預設值為2K,這裡的意思是當檔案超過2K時才會進行壓縮

  noCompressionUserAgents=”gozilla, traviata”
設定不支援的瀏覽器就不使用壓縮

  compressableMimeType=”text/html,text/xml”
設定要壓縮的contextType為何,除了html及xml之外,還可以多設定一些也是原始碼的檔案例如text/css,text/javascript等,讓css及javascript的檔案也能壓縮傳輸,至於一些圖檔及已經壓縮過的檔案建議不要設進來,因為圖檔一般都已經有壓縮過了,如果將一些壓縮過的檔案再壓,除了浪費時間外,搞不好檔案還會愈壓愈大喔

所以我們就趕快設定看看是否有改善,加入上述壓縮的設定後,參數如下:

<Connector port=”8080″ maxHttpHeaderSize=”8192″
  maxThreads=”150″ minSpareThreads=”25″ maxSpareThreads=”75″
  enableLookups=”false” redirectPort=”8443″ acceptCount=”100″
  disableUploadTimeout=”true”
  connectionTimeout=”20000″
  compression=”on”
  compressionMinSize=”2048″
  noCompressionUserAgents=”gozilla, traviata”
  compressableMimeType=”text/html,text/xml”/>

除了Tomcat可以這樣設定外,如果你有使用Apach也可以很容易設定GZIP壓縮設定,如果有興趣,請去找孤狗大師問問題吧!!

Categories: JAVA Tags: ,

如何將Tomcat安裝為服務時可以預設自動啟動

2009年11月12日 尚無評論

最近幫客戶系統製作安裝光碟時,在安裝Tomcat發現如果不是使用Tomcat官網下載的exe安裝檔案,透過Tomcat\bin 下的service 進行服務安裝時,裝好的服務預設啟動模式為手動

找了一下資料,發現有二種解法

1.直接從service.bat 下手,請用編輯器打開 找尋 「 :installed 」在這執行腳本中的

“%EXECUTABLE%” //US//%SERVICE_NAME% ++JvmOptions “-Djava.io.tmpdir=%CATALINA_BASE%\temp;-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties” –JvmMs 256 –JvmMx 512

加上 –Startup=auto ,結果如下:

“%EXECUTABLE%” //US//%SERVICE_NAME% ++JvmOptions “-Djava.io.tmpdir=%CATALINA_BASE%\temp;-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties” –JvmMs 256 –JvmMx 512 –Startup=auto

這樣執行service install  tomcat5 後就預設啟動模式為自動啦

2.第二個方法,是透過window的指令下手,請執行

sc config service_name start=auto

這樣也行,所以可以把這指令寫在安裝步驟也可以達到預期效果

以上執行在搭配Tomcat 5.5 測試過~是ok的!!

Categories: 系統設定 Tags: , ,

如何調整Windows上的Tomcat服務參數

2009年5月9日 尚無評論

如果要調整安裝在Windows 上Tomcat服務的參數可以在console mode執行以下指令即可進行更改啟動參數

C:\> tomcat6 //US//Tomcat6 –Description=”Apache Tomcat Server – http://tomcat.apache.org/ ” \
C:\> –Startup=auto –Classpath=%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\bin\bootstrap.jar \
C:\> –JvmMx=512

重點在於使用 //US// (Update service parameters)  指令進行更新參數作業,可使用詳細參數如下:

ParameterName Default Description
–Description Service name description (maximum 1024 characters)
–DisplayName ServiceName Service display name
–Install procrun.exe //RS//ServiceName Install image
–Startup manual Service startup mode can be either auto or manual
–DependsOn List of services that this service depend on. Dependent services are separated using either # or ; characters
–Environment List of environment variables that will be provided to the service in the form key=value. They are separated using either # or ; characters
–User User account used for running executable. It is used only for StartMode java or exe and enables running applications as service under account without LogonAsService privilege.
–Password Password for user account set by –User parameter
–JavaHome JAVA_HOME Set a different JAVA_HOME then defined by JAVA_HOME environment variable
–Jvm auto Use either auto or specify the full path to the jvm.dll. You can use the environment variable expansion here.
–JvmOptions -Xrs List of options in the form of -D or -X that will be passed to the JVM. The options are separated using either # or ; characters.
–Classpath Set the Java classpath
–JvmMs Initial memory pool size in MB
–JvmMx Maximum memory pool size in MB
–JvmSs Thread stack size in KB
–StartImage Executable that will be run.
–StartPath Working path for the start image executable.
–StartClass Class that will be used for startup.
–StartParams List of parameters that will be passed to either StartImage or StartClass. Parameters are separated using either # or ; character.
–StartMethod Main Method name if differs then main
–StartMode executable Can one of jvm java or exe
–StopImage Executable that will be run on Stop service signal.
–StopPath Working path for the stop image executable.
–StopClass Class that will be used on Stop service signal.
–StopParams List of parameters that will be passed to either StopImage or StopClass. Parameters are separated using either # or ; character.
–StopMethod Main Method name if differs then main
–StopMode executable Can one of jvm java or exe
–StopTimeout No Timeout Defines the timeout in seconds that procrun waits for service to exit gracefully.
–LogPath working path Defines the path for logging
–LogPrefix jakarta_service Defines the service log filename
–LogLevel INFO Defines the logging level and can be either error, info, warn or debug
–StdOutput Redirected stdout filename
–StdError Redirected stderr filename

請依版本參考相關文件:
http://tomcat.apache.org/tomcat-5.5-doc/windows-service-howto.html
http://tomcat.apache.org/tomcat-6.0-doc/windows-service-howto.html

Categories: 系統設定 Tags: , ,