天天看點

Resin伺服器配置(轉)

1 Jdk和Resin安裝步驟

1. 下載下傳jdk linux版本, j2sdk-1_4_2_10-linux-i586.bin。

2. 下載下傳resin-2.1.17.tar.gz。或更好版本

3. 直接輸入:j2sdk-1_4_2_10-linux-i586.bin就可以安裝成功。本身它有安裝腳本。

4. 修改使用者根目錄下配置檔案。 (1)ls -a 檢視檔案 (2)vi .bash_profile 添加:export JAVA_HOME=/home/usboss/j2sdk1.4.2_10/

Note:配置這個檔案類似于windows的配置windows的環境變量。修改了這個檔案一定要重新登陸。

5. tar -zxf resin-2.1.17.tar.gz 直接的解壓就可以使用。

2 檔案Httpd.sh參數配置解釋

1.檔案位置:${resin30}/bin/httpd.sh

2.args='-J-server -Xms200m -Xmx1024m -Xloggc:./log/gc.log -XX:MaxNewSize=256m -XX:MaxPermSize=256m -Djava.awt.headless=true'

(1)J-server -Xms200m -Xmx1024m 其中,-Xms200m 表示啟動時,初時記憶體大小,-Xmx1024m

最大記憶體占用大小。

(2)-XX:MaxNewSize=256m -XX:MaxPermSize=256m 表示:記憶體的永久儲存區域的大小

(3)-Djava.awt.headless=true 解決在linux/unix驗證碼圖檔不能顯示的問題。

3. 然後,啟動時展示

java -server -Xms200m -Xmx1024m -Xloggc:./log/gc.log -XX:MaxNewSize=256m -XX:MaxPermSize=256m -Djava.awt.headless=true -Xss1m -Dresin.home=/home/channel/appsvr/resin-3.0.22 -Dserver.root=/home/channel/appsvr/resin-3.0.22 -Djava.util.logging.manager=com.caucho.log.LogManagerImpl -Djavax.management.builder.initial=com.caucho.jmx.MBeanServerBuilderImpl com.caucho.server.resin.Resin -socketwait 35303 -stdout /home/channel/appsvr/resin-3.0.22 /log/stdout.log -stderr /home/channel/appsvr/resin-3.0.22/log/stderr.l

3 檢視日志的方法

1. 可以看logs目錄下stdout.log的輸出資訊。 也可以看log目錄下的。指令是:

實時資訊:tail –100f 日志檔案名 100代表了顯示100行資料

靜态曆史資訊:tail –100日志檔案名 100代表了顯示100行資料

2. 在resin/logs下的stdout.log是存放這server實時輸出的資訊。

3. vi指令可以看日志,可以查找等更多的功能。

4. stderr.log表示錯誤資訊的日志。

4 常見問題和解答

4.1 解決:記憶體、heap、驗證碼顯示的內建配置配置方式?

1.檔案位置:${resin30}/bin/httpd.sh

2.args='-J-server -Xms200m -Xmx1024m -Xloggc:./log/gc.log -XX:MaxNewSize=256m -XX:MaxPermSize=256m -Djava.awt.headless=true'

(1)J-server -Xms200m -Xmx1024m 其中,-Xms200m 表示啟動時,初時記憶體大小,-Xmx1024m

最大記憶體占用大小。

(2)-XX:MaxNewSize=256m -XX:MaxPermSize=256m 表示:記憶體的永久儲存區域的大小

(3)-Djava.awt.headless=true 解決在linux/unix驗證碼圖檔不能顯示的問題。

3. 然後,啟動時展示

java -server -Xms200m -Xmx1024m -Xloggc:./log/gc.log -XX:MaxNewSize=256m -XX:MaxPermSize=256m -Djava.awt.headless=true -Xss1m -Dresin.home=/home/channel/appsvr/resin-3.0.22 -Dserver.root=/home/channel/appsvr/resin-3.0.22 -Djava.util.logging.manager=com.caucho.log.LogManagerImpl -Djavax.management.builder.initial=com.caucho.jmx.MBeanServerBuilderImpl com.caucho.server.resin.Resin -socketwait 35303 -stdout /home/channel/appsvr/resin-3.0.22 /log/stdout.log -stderr /home/channel/appsvr/resin-3.0.22/log/stderr.l

4.2 在linux/windows下,驗證碼圖檔不能正常顯示?

答:修改位置:在resin3/bin/httpd.sh檔案, 在args位置,增加:-Djava.awt.headless=true

4.3 對于OutOfMemoryError: PermGen space, 如何處理?

答:PermGen space的全稱是Permanent Generation space,是指記憶體的永久儲存區域OutOfMemoryError: PermGen space從表面上看就是記憶體益出,解決方法也一定是加大記憶體。說說為什麼會記憶體益出:這一部分用于存放Class和Meta的資訊,Class在被Load的時候被放入PermGen space區域,它和和存放Instance的Heap區域不同,GC(Garbage Collection)不會在主程式運作期對PermGen space進行清理,是以如果你的APP會LOAD很多CLASS的話,就很可能出現PermGen space錯誤。這種錯誤常見在web伺服器對JSP進行pre compile的時候。

修改位置:在resin3/bin/httpd.sh檔案, 在args位置,增加:-XX:MaxNewSize=256m -XX:MaxPermSize=256m

4.4 如何對标準日志輸出配置大小和天數進行配置?

詳細參見:

http://caucho.com/resin-3.0/config/log.xtp#Log-Levels

在Resin.conf檔案中查找

<log name="" path="stdout:" timestamp="[%H:%M:%S.%s] "/>

如果是标準的Resin3.0的預設配置檔案,大概第9行左右。

修改為如下内容:

按日期生成日志

<log name="" level="all" path="log/stdout.log" timestamp="[%H:%M:%S.%s] "

archive-format="%Y-%m-%d.stdout.log.gz"

rollover-period="1W"/>

level日志級别:off/severe/warning/info/config/fine/finer/finest/all

path日志檔案路徑:log/stdout.log

archive-format歸檔格式:如2007-5-10.stdout.log.gz

rollover-period日志復原方式:按天(15D)、按周(1W)、按月(1M)、按小時(1h)等。

按檔案大小生成日志

<log name="" level="warning" path="log/stdout.log" timestamp="[%H:%M:%S.%s] "

archive-format="%Y-%m-%d.stdout.log.gz"

rollover-size="10mb"/>

rollover-size每個日志檔案的大小:byte(5000)、kb(128kb)、mb(10mb)

其他參數同上。

按照USBOSS的日志輸出方式,可能看檔案大小比較合适,每個日志檔案10M-20M就差不多了。

4.4.1 指定debug日志

A useful technique is to enable full debug logging to track down a problem:

<log name='' level='finer' path='log/debug.log' timestamp="[%H:%M:%S.%s]" rollover-period='1h' rollover-count='1'/>

4.4.2 日志标準

Name API Meaning

off turn off logging

severe log.severe("...") a serious failure, likely to prevent normal program execution

warning log.warning("...") a potential problem

info log.info("...") informational messages

config log.config("...") static configuration messages, meant to assist in debugging problems associated with particular configurations

fine log.fine("...") tracing information

finer log.finer("...") fairly detailed tracing message

finest log.finest("...") highly detailed tracing message

all all messages should be logged

4.5 當出現記憶體耗沒、或日志寫的太快時,如果解決?

答:用top指令來查詢一下全部程序的使用情況,發現有問題的程序,kill -9 processId。

4.6 當out of memory時,出現死鎖程序,如果解決?

答: 首先用ps –ef|grep java檢視程序指令,看系統記憶體使用情況。如果是存在死鎖程序,可以通過kill -9 PID,來殺死它,然後重新開機。如果系統記憶體很小,可以對$RESION_HOME/bin/httpd.sh内的參數進行調整。

4.7 當resin啟動時,如何指定java的記憶體大小?

1.Window下記憶體設定: -J"-server -Xms500m -Xmx1000m”

2.Linux配置: resin3/bin/httpd.sh 中的args。

4.8 Kill了指定的java程序後,resin它又自動的重新開機,怎麼kill那?

答: 在httpd.sh檔案中,有一個自動重新開機的perl腳本。可以通過ps –ef|grep java,來找出誰在調用java程序,發現perl程序在調用java,使用 ps –ef|grep perl,查找出來,先kill掉perl程序。然後再kill java程序。

4.9 檢視resin是否是自動重新開機?

答: httpd.sh –h,中一個-no-auto-restart : disable automatic server restart,預設是自動重新開機的,可以指定這個啟動參數,使得resin不自動重新開機。ps –ef|grep perl,看看這個程序是否是在啟動狀态。是否是讓應用是否重新開機,可以根據具體情況來設定。更多資訊,可以看wrapper.pl檔案,搜尋keepalive或auto-restart關鍵字,看它的初始參數值。

4.10 Resin不能啟動,報java不能發現?

答:首先,檢查java是否安裝和是否在使用者下的.bash_profile中進行了配置。

其次,如果安裝和配置正确,再檢查使用者是否正确。如果使用者是通過su to Change the effective user id and group id to that of USER. 例如:su –foo。這時執行shell指令:source或者. .bash_profile。

4.11 如何檢視resin的指令參數解釋?

答:檢視指令參數httpd.sh –h, man httpd.sh,vi http.sh,

4.12 如何配置session的逾時時間?

using session-config and session-timeout to control the number of sessions

<web-app id='/dir'>

<session-config>

<!-- 2 hour timeout -->

<session-timeout>120</session-timeout>

<session-max>4096</session-max>

</session-config>

</web-app>

4.13 Resin正常啟動,DB中有使用者,報使用者不存在?

答:resin.conf中,一個conf隻能配置一個<jndi-name>名稱,并且這個名稱必須是唯一的。否則, 前面的将覆寫前面的,是以導緻不能登陸。

4.14 程式的建立連接配接數多時,系統死鎖?

答:原因是resin.conf中,最大連接配接數配置的太少。這是可以調節到一個比較大的值。預設為128個連接配接。

<max-connections> configures the maximum number of open connections allowed for Resin's database pool. Sites can use <max-connections> to throttle the number of database connections for an overloaded server. When max-connections is reached and an application calls getConnection, Resin will wait connection-wait-time or until a connection is freed before allocating a new connection.

default 128

4.15 伺服器上的resin啟動不了?

答:首先要檢視,log/ stderr.log,看看是什麼原因。例如:resin-2.1.17用root使用者啟動過,那麼就會在logs/access.log日志,當重新啟動時,當向access.log檔案中寫東西時,将報錯,因為是不同的使用者建立的這個檔案,需要首先删除這個檔案。

原文位址: http://fiwrc.iteye.com/blog/643413

繼續閱讀