WebLogic Server 管理最佳實踐

上一篇 / 下一篇  2008-06-30 22:34:51 / 个人分类:Weblogic

  • 文件版本: V1.0
  • 开发商: 本站原创
  • 文件来源: 本地
  • 界面语言: 简体中文
  • 授权方式: 免费
  • 运行平台: Win9X/Win2000/WinXP
51Testing软件测试网y;u A4m;B#p*H

建立 WebLogic 設定/域

@1o:r1D;_051Testing软件测试网}8JDZ`.X1fJX2{

域是一組邏輯上相關的WebLogic Server資源,您可以把它當作單個管理單元進行管理。域將所有的資源和應用程式資訊保存在一個基於XML的設定庫中。為了在WebLogic Server上部署並運行應用程式,首先要建立域。
"N%GB BY0
d$b8V z-MK R0推薦使用域設定嚮導作為建立新域的工具。如果您準備編寫腳本來建立域,推薦使用slient模式的域設定嚮導這個工具。也可以從所提供的“開箱即用”的域範本或定制的域範本來建立WebLogic Server域。51Testing软件测试网4_ ~OE7~'q|

Qfuy-g*ts|nu!V0為了建立定制的域範本,請使用設定範本生成器,它是一個單機的Java應用程式,能夠讓您建立定制的設定和擴展。您可以使用這些設定和擴展來建立和更新域。51Testing软件测试网K6[4HHA'Y

NA_ A)I0域設定嚮導具有以下屬性:51Testing软件测试网 VZb{ u

  • 嚮導會引導您完成針對目標環境建立或擴展域的過程。
  • 嚮導可以使用OOB預定義的域範本或定制域範本建立或擴展域。
  • 嚮導將建立config.xml 文件,建立基本的安全性,構造啟動腳本,等等。
  • 可以使用graphical、console 或 silent模式啟動嚮導。

Q+r7\2K^P051Testing软件测试网*nk2Z%P.Dh5C$c
要以graphical模式啟動嚮導,請運行以下命令之一:
3dZ/Wt J&j{8];p0\0

? }Cl S0

P$YK rVsd0域設定範本生成器具有以下屬性:

xw1H*ZJ1Ys0
  • 嚮導會引導您完成建立或擴展設定範本 (JAR file) 的過程。
  • 設定嚮導可以使用已建立的設定(域)範本來建立域。
51Testing软件测试网a7X'J!F2\m(Q

51Testing软件测试网7O-A%JhV m
只能以graphical模式啟動設定範本生成器。
8K1j5k&[&t\jE0要啟動設定範本生成器,請運行以下命令之一:
l5T } F D.K0

,OX4Zhn#wq:EV051Testing软件测试网 ROTf5?^

51Testing软件测试网7M$WP~%jF1H(i'j}
技巧

6lpR1M.@8o4L0
  • 如果 WebLogic Domain/Configuration 分佈在多台物理機器上,那麼應該只能在管理伺服器硬體(機器)上運行域設定嚮導。
  • 並不要求一定在託管伺服器硬體上運行域設定嚮導。
  • 在WebLogic Server 安裝目錄之外建立WebLogic域 (預設情況下,所建立的域位於%BEA_HOME%Ser_projectsdomains ) 。
  • 為管理伺服器建立啟動腳本時,如果腳本(startWebLogic.cmd/sh)沒有呼叫域目錄中的weblogic.Server 類,使用這個命令行選項來指定域的位置:-Dweblogic.RootDirectory=path。
  • 啟動託管伺服器(startManagedWebLogic.cmd/sh)時,如果進行設置的話, -Dweblogic.RootDirectory 將被設置為伺服器根目錄,該目錄將被用於儲存檔,比如日誌檔和託管伺服器獨立(managed-server independence ,MSI)檔。

u%[ZZd2L$n051Testing软件测试网(Kx RN7v N.o"E+Lbc
伺服器啟動
r&e;quJC.f051Testing软件测试网8{za3D(A8o wv,S/m i
管理伺服器從設定庫(config.xml)載入所有設定。所有相關的託管伺服器必須在啟動期間連結到運行中的管理伺服器。獨立的託管伺服器可以從本地庫(msi-config.xml)載入設定。51Testing软件测试网#_*FA Ev u7q:{.xY7WA
51Testing软件测试网i/SM.en3{3l
如果WebLogic運行在裝有Unix作業系統的電腦上,您可以為WebLogic Server進程分配一個UID或GID,以便在電腦執行所有優先的啟動操作之後,以root使用者的身份進行綑綁。如果WebLogic Server使用者想要綑綁到更高的埠(>1024),則無需root許可權。

;vI9k bC051Testing软件测试网J0[8sDk u

技巧51Testing软件测试网"}O*N-n(}6U,Az
編寫使伺服器啟動自動化的腳本時,考慮以下因素:51Testing软件测试网?V4O&nkav'Q

  • 在域中,必須在任何相關託管伺服器之前啟動管理伺服器。
  • 當把託管伺服器作為相關伺服器啟動時,它連結到管理伺服器,以便下載設定。
  • 當把託管伺服器作為獨立伺服器啟動時,檢查msi-config.xml 檔是否被儲存在伺服器根目錄中。
  • 在Unix中,使用 'nohup' 運行 WebLogic Server啟動腳本,以保證即使您登出以後,伺服器依然在後臺運行。
  • 在OS中,為安裝和啟動伺服器建立一個WebLogic Server使用者。
  • 儲存加密後的使用者身份,使用boot.properties檔來避免啟動腳本中出現硬編碼的使用者身份。
  • 當把伺服器綑綁到較低埠(<1024)時(這需要root許可權),使用 WebLogic UNIX機器設定來綑綁UID 或 GID 。
  • 為了使WebLogic域中的管理伺服器在機器重啟期間能夠自動重啟,使用作業系統提供的daemon進程功能。
  • 當您使用域設定嚮導建立域時,域中的管理伺服器可以被當成服務。
  • 此外,可以使用位於域檔夾中的installservice.cmd和 uninstallservice.cmd 腳本在Windows Service Control Manager (SCM)中添加或刪除服務。
  • 如果管理伺服器和託管伺服器是同一台機器,設定管理伺服器進程和託管伺服器進程之間的OS級服務相關性。
  • 設定rc腳本,以便在正確的運行層級上添加WebLogic 啟動命令。
51Testing软件测试网5_*tN|E2a#lJ

51Testing软件测试网8agG6f%iON_s
啟動和關機類51Testing软件测试网1UENV8vI.E0~
可以把WebLogic Server設定為在啟動和正常關機過程中呼叫類。在伺服器初始化所有子系統之後和它給用戶端擷取開放埠之前,載入並執行啟動類。類似地,在伺服器啟動正常關機進程之前載入關機類。和應用程式檔不同,必須手動地使啟動和關機類在已部署伺服器地本地classpath中可用。51Testing软件测试网I&r"iP5[/t_.q ub

_)?r aoxha0技巧51Testing软件测试网1agX \/r:?R]1ug-i j

  • 在啟動期間,使伺服器級的啟動類在已部署WebLogic Server事例的系統classpath 中可用。
  • 域中的管理伺服器到託管伺服器都不能自動部署出現在系統classpath中的類;應用程式層級的類可以分佈在域中的管理伺服器到目標伺服器上。
  • 重新部署應用程式時,就會重新載入應用程式層級的啟動類。
  • 不能動態地重新載入伺服器層級的啟動類;只能在它們各自的WebLogic Server重新啟動時重新載入它們。
  • 使用應用程式層級的啟動類,而不要定義伺服器層級的啟動類。

D0W2f5].kGS051Testing软件测试网y SBmcDOn
節點管理器
O)q4O ?6[9X%p/a0使用WebLogic Server提供的節點管理器功能自動啟動託管伺服器,或者重新啟動出現故障的託管伺服器。節點管理器使管理員可以從管理伺服器或命令行(weblogic.Admin START…)遠端啟動託管伺服器。這可以通過與管理伺服器通信來實現,而不用依賴OS特定的遠端登入功能。
l9Y3h @|3G051Testing软件测试网 ko%m6R9_oqq
此外,除了啟動和關閉託管伺服器之外,節點管理器還能夠監控它所啟動的伺服器的健康狀況。如果進行恰當的設定,在出現故障時,節點管理器能夠自動重新啟動託管伺服器。

pfn6Gt0

6E`7iW+X[051Testing软件测试网7|1Z w7\mZ E
技巧51Testing软件测试网7X5UVrZ$HQ

  • 使用節點管理器時,顯式地設定所託管伺服器的有遠端啟動屬性,而不要依靠節點管理器為託管伺服器的設定提供的環境。
  • 節點管理器只接收來自管理伺服器的請求。管理伺服器不可用時,想要通過節點管理器遠端地重新啟動託管伺服器是不可能的。
  • 把節點管理器設定為一個服務/ daemon。
  • 啟用託管伺服器的自動重啟。
  • 設定機器在出現故障時自動關閉,以便在節點管理器嘗試重新啟動一個出現故障的事例之前關閉它。
  • 運行在一台機器上的節點管理器可以被運行在該機器上的多台託管伺服器所共用。
  • 節點管理器還可以被運行在同一台機器上的多個域中的託管伺服器所共用。

5q ]ek0_.u051Testing软件测试网!Lo/ocI6hm
WebLogic Server 關閉過程
|1QG b(t*D'n:s0異常的JVM終止可以導致套接字或程式段這樣的資源被鎖定。在作業系統中關閉或終止WebLogic Server進程被認為是異常終止。51Testing软件测试网!lk C-iIRSt W
可以通過以下方式正常關閉WebLogic Server:51Testing软件测试网#Tl%J Lt&Q3y7d y

  • 使用管理控制臺'Graceful Shutdown" 超鏈結。
  • 使用 weblogic.Admin SHUTDOWN… 命令。
  • 使用JMX,具體是呼叫 ServerMBean 類的stop方法。
51Testing软件测试网v1{3D#vl


\1b&Hc9M0技巧51Testing软件测试网 }4q A[X!r#d Q

  • 為了正常關閉生產伺服器,需要使用WebLogic 管理控制臺或者weblogic.Admin 實用程式。
  • 正常關機不會異常終止使用者會話;它等待HTTP會話完成或超時。
  • 也可以把WebLogic Server設定為不等待(忽略Session During Shutdown 選項)。
  • 正常關機超時是可設定的;預設情況下,伺服器將會無限期地等待關機過程完成。
  • 如果伺服器沒有回應正常關機請求,或者當伺服器等待正在進行的會話時(處於待機狀態)關閉伺服器,使用'Force Shutdown' 選項。
  • 如果被設定為daemon,確保將rc腳本中的stop方法設定為在機器重啟和停止時正常關閉伺服器。
  • 如果對節點管理器進行設定,終止節點管理器將不會停止由它們啟動的相應伺服器。必須單獨地停止各台託管伺服器。
51Testing软件测试网[:YW ^%U6Q1}


Wd!}zy;Vj2KO(Y0備份和恢復51Testing软件测试网_ q.{ ]a6q s#w*d
為了在出現故障時遷移或恢復WebLogic域,定期備份管理伺服器機器上的整個域目錄樹。這樣,您就可以從硬體或系統故障中恢復,而要做的不過是還原域目錄並重新啟動管理伺服器。
6f;hPo-O BL0
5B0\1_G|W0如果管理伺服器崩潰,管理伺服器將會把所有正在運行的託管伺服器的相關資訊保留在running-managed-servers.xml文件中。重新啟動時,管理伺服器將會讀取這個檔,並嘗試聯繫所有以前運行的託管伺服器。如果沒有託管伺服器正在運行的話,discovery模式可能會增加管理伺服器的啟動時間,但是始終要使用discovery模式(預設情況下它是打開的),這樣才能保證有託管伺服器已經運行的情況下,管理服務器重新與所有託管伺服器連結。51Testing软件测试网5uc"utEkX:U/D

)O.oO7G4[w0一些需要引起注意/定期從管理伺服器機器上進行備份的重要檔有:

/s Sq+D-YT]j.R9p \0
  • config.xml
    ue.]#ma @W0域設定庫。
  • config.xml.booted
    qo P|6E#K5M0bs&b0成功啟動時對域設定庫的良好備份。
  • boot.properties
    #BJ W4Nt6Pm0啟動管理伺服器時需要的加密後的帳號和密碼。
  • running-managed-servers.xml51Testing软件测试网"g3I:w g1X7B
    這是當前正在運行的相關託管伺服器的一個列表。這個檔用於當管理服務器重新啟動後,而且有託管伺服器正在運行時,發現託管伺服器。
  • domain/configArchive/51Testing软件测试网8I'C)w$w$l
    包含域設定庫檔的拷貝。使用管理工具進行更新時,管理伺服器把舊的config.xml 檔複製到這個目錄。
  • domaindminserverdapdapfiles51Testing软件测试网z,|FG!Y[
    當前被域的管理伺服器使用的內嵌LDAP 資料檔案。
  • *.ldift 文件51Testing软件测试网4q{~].Nk'i
    這些檔可以用於把WebLogic Domain Embedded LDAP 伺服器初始化為剛剛建立域時的樣子。
  • domain/adminserver/ldap/backup/EmbeddedLDAPBackup.zip51Testing软件测试网yi"HhtF
    WebLogic Domain Embedded LDAP 伺服器的備份。內嵌的LDAP被用於儲存使用者、組、角色、預設的安全領域使用的規則、myrealm的安全提供程式。
  • Batch/Shell 腳本
    _Q*\ I3ls t\?0setEnv.cmd/sh, startWebLogic.cmd/sh, startManagedWebLogic.cmd/sh。
51Testing软件测试网I Ul} y


%X8PH|Y!]d%Zq3i0為管理任務編寫腳本
S-`f!O$B|.s0為了建立用於管理域設定的腳本:

.e/X.| k S0n0
  • 使用weblogic.Admin實用程式命令BATCHUPDATE,它運行一個批次檔案中指定的一系列命令。這個命令使用一個JVM運行所有列出的命令。
  • -Dweblogic.system.BootIdentityFile選項讓您可以避免把帳號和密碼硬編碼在您的文本腳本中。
  • 為了在作業系統腳本中建製邏輯分支,使用下面的命令求出weblogic.Admin命令的返回原始碼:
    • %ERRORLEVEL% (Windows)
    • 0 (bash shell)
  • weblogic.Admin 的-adminurl 選項從管理伺服器檢索託管伺服器的設定Mbean和運行時Mbean。
  • 不推薦直接修改config.xml文件。
  • 如果您必須修改config.xml文件:
    • 首先,在編輯之前備份原始檔。
    • 使用XML 編輯器,以避免錄入錯誤。
    • 當管理伺服器正在運行時,要避免編輯該檔。
  • 使用wlconfig Ant任務來為設定資訊編寫腳本,並把它整合到整個建製過程中。
  • 當管理伺服器正在運行並且處於離線狀態時,使用 WebLogic scrīpting Tool (WLST)來修改域設定。 (dev2dev.bea.com)
  • WLST提供一個功能強大的到WebLogic Server的shell介面,而且它使用Jython 作為腳本語言。
  • 您還可以使用第三方的解決方案來管理設定,比如WLShell使用程式。 (www.wlshell.com)
  • WLShell提供一個功能強大的、Unix風格的到WebLogic Server的shell介面;它針對WebLogic Server MBean使用檔系統類比 。
51Testing软件测试网u2B!|%Z-J~%iPc

51Testing软件测试网kX-S s~}
日誌記錄
2P"\^Q1c-H+h0日誌記錄了和事件(比如伺服器的啟動和關閉)、新應用程式的部署或者一個或多個子系統故障有關的資訊。日誌訊息包括和事件的時間與日期,以及啟動事件使用者的ID有關的資訊。每個WebLogic Server事例都可以維護一份伺服器日誌、一份HTTP擷取日誌、一份JDBC日誌和一份JTA交易日誌。

'M `X3},D0

q'A/`ut0技巧

li5ar%s(h ^0
  • 為了防止當日誌檔所占空間過大時,出現相應的伺服器重啟的情況,需要啟用日誌旋轉(log rotation)。
  • 考慮按照大小旋轉日誌,而不是按照生成的時間旋轉,因為使用生成時間這個選項會使檔增長非常迅速。
  • 如果您沒有進行互動式調校,而且WebLogic Server 是在後臺(Windows 或 Unix)啟動的,使用以下命令把stdout和stderr重定向到一個檔:
    • -Dweblogic.Stdout="stdout-filename"
    • -Dweblogic.Stderr="stderr-filename"
  • 在生產中,如果您不啟用WebLogic Server建立JDBC日誌,您就可以避免伺服器上的額外檔I/O。
  • 使用節點管理器啟動託管伺服器時,節點管理器捕捉伺服器的stdout並把它儲存到一個檔中。可以使用管理控制臺來查看該檔的內容。
  • 經常檢查WebLogic Server 的日誌檔,以熟悉常規操作,這樣您就能夠很容易地辨認出異常的日誌項。
51Testing软件测试网7B}5d%H;b


u&\'P9N-k(`8V*gX0JDBC
v}A;H:f(p{1h+F0在WebLogic Server中,使用池緩衝到資料庫的JDBC連結可以提高應用程式的性能。連結池根除了為每個應用程式建立新的資料庫連結的需要。JDBC連結池提供到您資料庫的現成連結。51Testing软件测试网a9O z`)dZ0q^
51Testing软件测试网6`_1bg)r xZ
使用連結池時,到資料庫的連結的數目可以動態改變。但是,在負載高峰時期試圖增加JDBC連結的數目將會使情況惡化,因為建立資料庫連結是一項開銷昂貴的操作。
if4W,`j~*_0
R&\z8i_"lr_0連結池還可以通過緩存用於重用的prepared statement和callable statement來提高性能。重用prepared statement和callable statement可以降低資料庫伺服器上的CPU利用率。
^{C(g"Wbg5b0
|D2N td"hw` l)`s0通過把其他應用程式分離到單獨的機器或硬體上,可以避免耗盡WebLogic Server機器上的處理能力;為資料庫指派一台專用的機器。

+a`F Q4L2D:k(Q%h0

3mk6Wf;hxDK2w q051Testing软件测试网gD#J!W5T#jP9GU

p fo+G3t;}0gn-k0技巧

;i Z-o,uI0
  • 如果有可能,按大小排列資料庫連結池,這樣它們就永遠不會增加連結的數目;設置初始容量為最大容量。
  • 設置連結池的最大容量至少等於執行線程的數量。 設定 Inactive Connection Timeout,以指定一個連結在被回收到池中之前,保持非活動狀態的時間長短。
  • Connection Leak Profiling選項顯示了連結池中洩漏的連結。BEA建議您不要在生產中使用這個選項;它要使用額外的資源,並且通常會降低連結池操作的速度。
  • 如果您能夠負擔把測試連結作為常規請求處理一部分所帶來的開銷,您可以只使用Test Reserved Connections 選項。
  • 避免對“Test Table Name”使用生產表,而要使用啞表(例如Dual)。
  • 使用語句緩存提高prepared 和 callable statement的性能。
  • 為緩存選擇 least-recently-used (LRU) 演算法;這將從緩存中刪除很少使用的語句。
  • 當建立連結池或者啟動WebLogic Server時,如果資料庫不可擷取,可以使用Connection Creation Retry Frequency 重新嘗試建立到資料庫的連結。
  • 當WebLogic Server 正在運行時,如果重新啟動資料庫, Test Frequency可以從0開始增加,這樣所有連結都會被關閉,然後被重新打開,以重新建立有效的物理連結。在重新建立所有連結之後,將它改回0將禁止測試。
  • 當為連結池使用DataSource物件時,使用 Honors Global Transaction選項來建立TxDataSource。
  • 您應該使用non-Tx DataSource的惟一場合就是當您想在資料庫上完成一些工作,而又不想把該資料庫包括到當前交易中時。
  • 當設定一個連結池,以便與WebLogic JMS JDBC Store 一起使用時,使用non-XA 資料庫驅動程式。

&F~6FI'C051Testing软件测试网2tu1tX6H/?
JMS51Testing软件测试网(d9J%q o5At'D
WebLogic Server JMS體系結構允許在一個WebLogic域中建立多台JMS伺服器。但是每台JMS伺服器只能在一台WebLogic Server上被事例化(目標化),因為它是一項“僅一次”的服務。一台JMS伺服器可以作為多個目的地的宿主。永久性儲存(基於磁片的檔或可通過JDBC擷取的資料庫)可以被設定用於儲存永久性的訊息資料。51Testing软件测试网 Qe X Z.zk}2q

Ad An yz0如果必須跨多個目的地共用一個JMS記憶體,將多個目的地設定為駐留在一台JMS伺服器上。但是,為了使用對每個目的地使用單獨的永久性記憶體,在多台JMS伺服器下建立它們。51Testing软件测试网?AF[)a

&F&P2q&kc]0技巧51Testing软件测试网v{5r nN'? s&cu

  • 針對JMS檔儲存啟用直接寫入同步寫入規則,這可以釋放虛擬記憶體(VM)堆,但是只有當存在一些併發的活動JMS用戶端時,直接寫入可以顯著地提高性能。
  • 在單獨的磁片上,或者甚至是在單獨的磁片控制器上分離檔儲存。
  • 為了使檔儲存高度可用,您可以使用Storage Area Network (SAN),一種多埠的磁片或者磁片鏡像技術。
  • 不要把使用XA JDBC 驅動程式的連結池與JMS JDBC記憶體關聯起來,因為JMS JDBC記憶體不支援XA 資源驅動程式(WebLogic JMS實現了它自己的XA資源)。
  • 使用Using Expiration Scan Interval掃描目的地的到期訊息可以釋放VM,但是太頻繁的掃描會增加掃描開銷;確保您對此做最優調整。
  • 在連結工廠上設置 MessagesMaximum ,以便調整非同步訊息管道的大小。
  • 為了避免訊息增長,在連結工廠層級上設置 Time To Live 屬性。
  • 禁用預設的JMS連結工廠;針對生產設定特定於應用程式的JMS連結工廠。
  • 為跨物理目的地(在不同的JMS伺服器中進行設定)的負載平衡JMS訊息設定一個分散式的目的地。
  • 當部署分散式目的地時,針對叢集中的每台JMS伺服器和成員目的地使用類似的設置。
51Testing软件测试网nBz Id

51Testing软件测试网R1T'?bp-V)x
訊息分頁
a3D*M Q7Ih\J0永久性和非永久性訊息消耗伺服器記憶體,除非啟用分頁。訊息分頁是釋放永久性和非永久性訊息所佔用的伺服器記憶體的過程,因為永久性訊息也會把它們的資料緩存在記憶體中。一條被換出頁面的訊息不會釋放它使用的所有記憶體。訊息頭和訊息屬性仍然留在記憶體中,以供查找、排序和過濾之用。在交易性會話中發送的訊息只有在會話被提交後才適合於分頁。在這之前,訊息被保存在記憶體中。51Testing软件测试网2Zf5^Pq ?*R a,]D

g/rZ5v ]C#Sq:e5o0技巧

c6F2X5ct9Oi0
  • 如果啟用JMS分頁,而且沒有設定分頁記憶體, WLS 8.1會自動建立一個分頁記憶體,但是推薦顯式地設定頁面記憶體(您可以指定記憶體的位置)。
  • JMS分頁增加了一個WebLogic Server事例能夠包含的訊息資料的數量,而不要求增加JVM堆大小。
  • 分頁的確會降低性能,但是對非永久性訊息進行分頁時,其效果比對永久性訊息分頁時要小。
  • 始終為WebLogic JMS Server設定限額;限額可以防止訊息溢出伺服器記憶體。

Lg*M'n5m1i'q$r0
*]'|t Z!eqj}Y9H0流控制51Testing软件测试网 B0u:WS#D C v;Z^*Y q
定義JMS伺服器之後,您可以設定一個或多個連結工廠,以使用預定義的屬性建立連結。借助流控制功能,您可以在訊息生產程式確定自己將會變得超載時,引導JMS伺服器或目的地降低它的速度。51Testing软件测试网`.u/Y(B7a-}H

D)M~R:|t{C6~0技巧

y"Q(Jt(v!e8W0
  • 為了降低過於活躍的、從WebLogic Server 進程之外淹沒目的地的生產程式的速度,需要設定流控制。
  • 在伺服器內部使用流控制會導致伺服器線程速度變慢;要小心使用。
51Testing软件测试网-@+F:x0UCd


0Grt']hL/UQWs0部署
){,LK~c3B"f0WebLogic Server允許您把部署單元儲存為單個存檔檔,或者是一個包含與上述存檔檔相同內容的已展開目錄。存檔檔是包含一個所有應用程式或模組的類、靜態檔、目錄和部署描述符檔的單個文件。51Testing软件测试网`1CS)I8V
51Testing软件测试网3I O/Zd)Q!d!C
在託管伺服器事例上部署使用者應用程式。這將管理應用程式(控制臺)和域設定從使用者應用程式分離出來。在生產環境和多伺服器環境中,避免使用應用程式的自動部署。以“生產模式”運行WebLogic域將禁止在生產中進行自動部署。如果您建立腳本來把應用程式部署為整個結構的一部分,考慮使用wldeploy Ant任務。51Testing软件测试网*^1kV e)A"d V-V

TXq7RH1kf,B0如果您在部署應用程式(或模組)時,在把On Future Redeploys選項設置為Initialize Roles and Policies From DD 之前,一次或多次將其設置為Ignore Roles and Policies From DD,您就可以使用管理控制臺設置安全規則和安全角色。但是,使用管理控制臺進行的這些修改將覆蓋部署描述符中指定的安全性。51Testing软件测试网 ^g0z O#X9O

,k'K-k2GUQ,nW)G@0技巧51Testing软件测试网 F \k G!QS,r%mK D

  • 使用生產模式運行生產應用程式。
  • 避免在管理伺服器事例上部署使用者應用程式。
  • 為了指定伺服器的預設Web應用程式,在weblogic.xml或application.xml檔中使用一個空的context-root元素或者一個值為"/" 的元素。
  • 在管理控制臺中部署應用程式之後,對該應用程式的安全規則的修改將會覆蓋部署描述符中的規則。
51Testing软件测试网6iPy"g,Q7| i.h


9JXy.s4h6T0重新部署
mWR,@J*d@1L0部署一個應用程式之後,您可以重新部署該應用程式本身或者它的一部分。重新部署一個完整的應用程式包括卸載它所有的類,然後使用修改後的檔再次部署該應用程式。在生產中重新部署應用程式是一個很嚴肅的任務,它可能影響到性能,所以要仔細規劃應用程式的更新。51Testing软件测试网\Hw:M]R&vI U

OQL:Z#u ?R W)nt6e0如果生產中有一個Web應用程式正在使用中,重新部署將導致WebLogic Server丟失所有活動的HTTP會話。通過在WebLoigc特定的部署描述符檔(weblogic.xml)中打開一個特殊的屬性,可以還原HTTP會話。51Testing软件测试网:IG/p%J*_\M7_no

(Nd"U3Y%n0

m3TX!p|A051Testing软件测试网!N5C`j8}2P}

技巧51Testing软件测试网6G9U_J&j,E:z_

  • 如果您只修改了靜態檔,那麼在不用重新部署整個應用程式的情況下更新它們是可能的。
  • 使用命令行選項部分地重新部署已擴展的應用程式(weblogic.Deployer … -redeploy <files>…)。
  • 想要在不改變應用程式的情況下修改部署參數,需要使用備用的部署描述符。
  • 為了簡化在重新部署期間,把應用程式存檔檔重新分佈到多個WebLogic Server事例上的過程,需要使用分段模式部署。
  • 如果管理伺服器不可用,可以以獨立模式啟動具有全部分段應用程式的託管伺服器,並使它的功能完全。
51Testing软件测试网*j_'Z"M,G bY7tj$U*qL

51Testing软件测试网K%c/ke3\,q Z
企業應用程式
dT-J!a8|0如果用戶端位於相同的企業級應用程式類中,而且可以在企業應用程式中跨所有存檔應用程式共用庫,WebLogic最佳化了對EJB的擷取。所以,考慮建立企業存檔檔,而不是獨立部署相關的應用程式。此外還可以使用企業範圍內的設置,而不要使用部署描述符中的多項本地設置。使用WebLogic控制臺在WebLogic Server域中建立JDBC資源,而不要採用weblogic-application.xml技術。51Testing软件测试网 wovbc6n,s\.t

U;Z N)F5gzG#[0

^[p Cy,Xy(e&{0

X4Ft i6Fwd[0技巧

t\9Qu9N1s0xn0
  • 在WebLogic Server中,避免把EJB存檔檔和相關Web應用程式部署為單獨的獨立應用程式。
  • 當Web元件擷取同一個企業應用程式中的EJB元件時,可以提高運行時性能。
  • 可以把企業部署為一個部署單元。
  • 不要把特定於應用程式的類或JAR檔放入系統classpath (避免為了重新載入它們而不得不重新啟動伺服器)。
  • 使用WebLogic Server 8.1時,請使用企業應用程式目錄結構中新的APP-INF/lib 和 APP-INF/classes 目錄,這是為了簡化實用程式類和實用程式存檔檔的打包工作。
51Testing软件测试网:q9a0`GP6L!Wad@


7b-m5l1x`6\0預編譯
x5t)d~\6Dq![0生產和測試部署應該包括經過預編譯的JSP頁面和EJB(使用weblogic.appc,如果是早期的weblogic版本則使用weblogic.jspc /weblogic.ejbc)。在您部署應用程式之前的很長一段時間內,它們可以捕捉該應用程式的錯誤。此外,離線編譯可以驗證部署描述符與當前規範的相容性。部署已編譯的應用程式可以縮減部署時間和接下來的伺服器重啟時間。用在開發人員的工作站上的開發部署可以使用動態編譯。

3|#A(SXV@zo-qV0

e3eV7nK051Testing软件测试网!_!eW(Rp$J\P

'a-Q[%~^DxE'\0技巧51Testing软件测试网w)j,\ Zx3D7N9sF

  • 為了在應用程式部署期間或伺服器啟動期間預先編譯JSP檔,在weblogic.jar中啟用預編譯參數。
  • 在生產環境中,要禁止運行時的頁面檢查和重新編譯,需要把pageCheckSeconds 設定為 -1。
  • 您可以使用weblogic.appc或weblogic.ejbc (不再使用)在伺服器VM之外編譯EJB。這可以減少隨後伺服器的重啟時間。
  • 在腳本中使用weblogic.Deployer實用程式,或者它相關的Ant任務wldeploy,以便在生產環境中使部署自動化。
51Testing软件测试网3M7E*DjFQO2u


],^G Q3\LNoy0部署描述符編輯51Testing软件测试网l]2[%G(|3?u
只有當重新部署應用程式時,修改J2EE應用程式的部署描述符才會生效。WebLogic管理控制臺提供一種方法來修改某些部署描述符屬性,而不用重新部署應用程式。當域以開發模式運行時,為了利用這項功能,您必須在已展開的目錄結構中部署應用程式(非存檔格式)。51Testing软件测试网l'aq,ks|*p\&a
51Testing软件测试网;Fut'J6fy#a7C
為了在部署之後修改應用程式的描述符值(以展開的格式),執行以下操作:Web Application Module > Your Application > Configuration 選項卡 > Descrīptor選項卡。51Testing软件测试网Jx;lh*q*rp'?*I

:I1{G [W@Q0技巧

8t!FK$YEZf6g I0
  • 使用WebLogic Server 提供的工具生成和編輯XML部署描述符。
  • WebLogic Builder生成描述符;它包括一個用於編輯描述符的介面。
  • DDInit 是一個命令行實用工具,用於為WebLogic Server應用程式生成部署描述符。
  • ddcreate 是一個 Ant 任務,可以用於為企業應用程式建立部署描述符。
51Testing软件测试网N&`ZRA BF


}}5V n't1Q;K0EJB51Testing软件测试网;e%k)MaW8G
無狀態會話EJB自由池可以提高性能和吞吐量,因為bean是在伺服器啟動期間或部署期間被建立的。WebLogic Server使用bean事例的緩存來提高有狀態會話EJB的性能。該緩存在記憶體中儲存活動的EJB事例,這樣它們馬上就可以為用戶端請求所用。
5y1dO8Y!~m^0
DUmJw/d2qi1G0使用應用程式級/聯合緩存將導致碎片減少,而且記憶體和堆空間的利用率更高。但是應用程式級/聯合緩存的使用僅限於企業應用程式中的實體EJB。對於要求高吞吐量的應用程式來說,要使用bean層級的緩存。bean級緩存是高效的,因為任務們不用競爭對聯合緩存中一個控制線程的控制權。

DQdS@g0

`?]M4WV0為了在應用程式中使用WebLogic為EJB元件提供的呼叫最佳化,把<enable-call-by-reference>設置為true。51Testing软件测试网0s:BQe&Hc)wN4?
51Testing软件测试网 H5O Jyr!A
在同一個企業應用程式中為要擷取的EJB編寫本地介面,也可以達到相同的目的。51Testing软件测试网_0e+U%m(^ lDH3M
51Testing软件测试网tc]'^`mc!v
實體EJB的併發規則包括:51Testing软件测试网nN}k,~ u

51Testing软件测试网2DP6d7p%b;m

X+Q8i)NT;a*Tk l0
  • 資料庫51Testing软件测试网4|m&m9Q}
    遵從資料庫可以提高吞吐量(對於EJB1.1和2.0來說,這是預設的也是建議使用的機制)。
  • 互斥的:
    t8CO/{~:v/v0避免鎖死;只有當在非叢集的伺服器上要求高度一致性時才使用它。
  • 樂觀的:51Testing软件测试网 Cc9OPi\ Jw
    在交易期間,EJB容器或資料庫中不會保持鎖定。但是EJB容器確保交易正在更新的資料沒有被修改。
  • 唯讀的:
    4_-B-h7j8N8D;r0交易結束時,容器不會試著保存bean的狀態;對不會對永久性資料做任何修改的EJB使用這一點。借助唯讀規則,使用<read-time-out-seconds>使容器中緩存的bean資料變得無效;當出現超時時,這會更新永久性記憶體中資料。
51Testing软件测试网0n$K2UN$z

51Testing软件测试网;p]v*BOs(s,X,p

2Z|\ q9m;i*Q5R0技巧51Testing软件测试网Q1\!EB.H

  • 考慮執行線程的數目,以便設定自由池中bean的最大數目。
  • 要限制有狀態會話EJB使用的記憶體,需要設置能夠駐留在緩存中的bean的最大數目(max-beans-in-cache)。
  • 緩存過小會導致頻繁的啟動和鈍化。
  • 緩存過大會導致記憶體浪費。
  • 當達到理想的超時時間長短之後,LRU演算法會讓bean保持在鈍化狀態。
  • 為了避免鈍化有狀態會話EJB所帶來的相關開銷,使用Not Recently Used (NRU) 演算法。
  • EJB的本地介面提供對伺服器端EJB用戶端的最優擷取。
  • 聯合緩存使管理員能夠在weblogic-application.xml中只調整一塊緩存,而不是多塊緩存。
  • 使用容器託管交易的訊息驅動bean必須使用XA連結工廠。

r!@D1z5J8R*P^|n9D0
&Fq a/yu9|$K0安全性51Testing软件测试网:h8H&S.w/JBtR
永遠不要對生產伺服器使用開發模式;開發模式會放寬域中所有伺服器的安全限制。使用相容性安全性時,禁用生產中的客人登入,這樣就可以使用客人登入來擷取WebLogic Server中的WebLogic資源。
8@!Y kF;y$Zv.U*S0
{S4a-Q|;[0建立安全規則時,如果通過繼承得到的規則語句出現在Policy Editor頁面的Inherited Policy Statement框中,新的規則會覆蓋它們。想要修改在J2EE部署描述符中定義的安全規則,需要進行重新部署;在管理控制臺中修改內嵌的LDAP規則是動態的。把另外的管理使用者設定為諸如admin、deployer、 monitor 或 operator這樣的角色。51Testing软件测试网6PFl%X-d A c
51Testing软件测试网 adZ#K3c&PG
SerializedSystemIni.dat包含對域中密碼進行處理以後得到的雜亂資訊;確保您在安全的地方儲存了這個檔的拷貝。只能授予WebLogic系統管理員帳號對SerializedSystemIni.dat的讀許可權。如果您丟失了管理密碼,而且沒有以boot.properties檔的形式保存啟動身份,那麼您不能重新啟動伺服器。

2^.AH[ e M051Testing软件测试网(cz He-oLem

:d9D(o+_&w2s051Testing软件测试网 z2S5HR*S8xX

技巧

l1QM0l|&f]0
  • 在boot.properties檔中保存對有權啟動WebLogic Server 的使用者進行加密後的啟動身份。
  • BEA建議使用安全角色(而不是使用者或組)來保護WebLogic資源;首先把使用者指派給組,然後建立角色語句。
  • 不要以root許可權安裝或運行WebLogic Server 。如果您必須綑綁到一個要求授權的埠,請在WebLogic機器設定中使用post-bind UID 或 post-bind GID。
  • 設置WebLogic安裝和應用程式目錄的所有權,只允許運行伺服器的使用者帳戶擷取它們。

m7o]0P(z!w ~ d0
7lp^cQg9^X0恢復管理員密碼
%Cu~ R&H6i0使用預設的身份認證程式時,如果您尚未修改全局的管理角色(預設情況下被授給管理員組),您可以恢復WebLogic域中的管理員密碼。51Testing软件测试网1}F#EonD)L1AXq
想要恢復WebLogic域中的管理員密碼,需要完成以下步驟:

:X6M My LIF$oU0
  • 在命令行上,修改到域的目錄,然後運行setEnv 腳本來設置PATH 和CLASSPATH。
  • 建立一個新的 DefaultAuthenticatorInit.ldift;運行 java weblogic.security.utils.AdminAccount <tempadmin> <temppassword> ./
  • 刪除<Domain>/<Server>/ldap子目錄中的初始化狀態檔DefaultAuthenticatormyrealmInit.initialized。
  • 使用新的使用者身份重新啟動伺服器。
  • 要修改舊的管理使用者身份,需要登入到管理控制臺。(可選)
51Testing软件测试网RU~4e \,O


w.gj%C#p`6C0SSL51Testing软件测试网N/ni M_xK#L6f
當對WebLogic Server使用SSL時,請使用keystore;已經不再使用把身份(私鑰和憑證)和信任(CA)保存在檔裏這種方法。從早期的版本進行遷移要求您使用私鑰、憑證或信任檔建立keystore。51Testing软件测试网 P,w ~OJ S
51Testing软件测试网F)Z%J"re@
如果連結域中WebLogic Server的網路不可信任,在域中的每台伺服器上啟用SSL,這樣管理伺服器和託管伺服器之間的LDAP複製就可以使用SSL連結。在域中啟用管理埠要求所有的伺服器都使用SSL。51Testing软件测试网2UkYf9A5fH?|

%ei&`lC2K5\1~'}0預設的WebLogic安裝代表可輸出強度的(exportable-strength) SSL實現(SSL最多可以使用帶有批次加密的512位鑰匙)。長於512位元元的鑰匙需要BEA提供的內部強度的(domestic-strength)SSL許可證鑰匙。如果您在您的生產環境中使用SSL,請使用高強度的(high-strength)SSL。通常認為長度小於1024位的鑰匙是不可靠的。51Testing软件测试网*r Jc9Q?]
51Testing软件测试网6KJzB uz/[G
SSL硬體加速器:在WebLogic Server上運行SSL會在很大程度上耗盡伺服器的資源。通過卸載SSL處理,就可以把資源應用到WebLogic功能上。Web伺服器、負載平衡器、防火牆或交換機都可以進行SSL處理。
P%orC*m x%Nt v0
w"T&w'Ut/c0在WebLogic Server中,過濾它們可以控制進入的連結。WebLogic Server提高一種預設的連結篩檢程式實現,您可以在管理控制臺種對它進行設定。

} {3Os/|-TJ q f051Testing软件测试网'w!eK_P'h2FC*a,gn

51Testing软件测试网#^(h ohQi8J

51Testing软件测试网+x)jfL K6u

技巧51Testing软件测试网B^~-E8k\;Ot

  • 在生產中,不要使用與WebLogic一起提供的示例SSL憑證。
  • 為了避免危及應用程式的安全性,安裝並設定特定於伺服器的SSL憑證,然後在生產伺服器上啟用主機名驗證。
  • 只在必要時對WebLogic Server 使用SSL,因為SSL會降低性能。
  • 要控制能夠被WebLogic Server 事例接受的連結的類型,請使用連結篩檢程式。
  • 使用帶有內置安全套接字層(Secure Socket Layer,SSL)支援的負載平衡器,或者使用Java Cryptography Extension(JCE)在有SSL硬體的機器上運行WebLogic Server。

I7x9|^qy[051Testing软件测试网'a#]l`*a7q|g
保護管理控制臺
'yJ4Q/|t0如果您使用管理伺服器(或者在單台伺服器的域中)為應用程式服務,請做到以下幾點,以提供更好的安全性:

i1C4m['j|\0
  • 把預設的管理使用者及密碼修改為定制的使用者及密碼。
  • 修改管理控制臺情境根路徑。
  • 啟用域範圍內的管理埠。
  • 考慮禁用管理控制臺。
51Testing软件测试网Gtn'NE]-Nm

51Testing软件测试网7Mb aoh/hI V
如果您使用的是外部LDAP提供程式,把伺服器啟動身份儲存在內嵌的LDAP伺服器中,然後在外部LDAP身份認證提供程式上設置超時。這樣,如果外部LDAP伺服器不可用,您可以繼續重新啟動,向WebLogic Server提供未受保護的資料。此外,在您應用任何修改之前,把所有身份驗證提供程式的控制標誌設置為OPTIONAL;這可以防止設定錯誤導致生產伺服器不能重新啟動。
U*~)cLZ4C$v9xu051Testing软件测试网3B4~+x~ Q,}G
基於舊式的安全領域API,WebLogic Server提供一個定制的領域,叫做NTRralm,它可以支援本機的Windows域身份認證。對於沒有被設定為使用Active Directory的Windows域來說, NTRealm相當有用。

8T"s3lE!a0

N#R\KPq:a051Testing软件测试网 ||5q%@t-\yn,Hw

|jg'^.`;Z+T|/S0技巧

&oI*rr*u R0
  • 在內嵌的LDAP伺服器中儲存伺服器啟動身份。
  • 想要更加出色地控制生產環境,使用Active Directory 身份驗證,而不要使用本機的Windows域(NTRealm)身份驗證。
  • 為了防止拒絕服務攻擊,在伺服器上修改進入協定埠(T3, COM, IIOP, HTTP Post 超時)的超時和最大大小的值。
  • 讓內部或外部的稽核小組執行安全性稽核。
51Testing软件测试网8R2seyK*G4mD3w


#Eae&GI;P m9\t&w0叢集
q,e`\.Ds;\+k0WebLogic叢集是域中的一組託管伺服器,以一種協同的方式為用戶端提供單個伺服器視圖。使用WebLogic叢集來提高效率、可伸縮性、負載平衡和故障恢復。WebLogic叢集是一種流程層級的叢集,參與其中的伺服器可以位元於不同的物理機器上,也可以位於同一台機器上。IP多播是在叢集中交換心跳信號的樞紐。所以,確保在WebLogic Server網路中啟用多播通信。

5q%Ol8V/N"j0

.c*z%[5S u[6a0

.{8G3^ nG4Sf`*W051Testing软件测试网CHc#[`4_0d

技巧51Testing软件测试网x ] W*`4in$e%q

  • 如果您使用了Web Server代理,那麼至少設定兩個,以避免叢集的單點故障。
  • 把WebLogic Server 上的應用程式移植給叢集時,確保儲存在HTTP會話中的物件能夠序列化。
  • 至少在每個叢集中防止三個WebLogic Server 事例,這樣一台伺服器的故障就不會停止叢集的負載平衡。
  • 您不能給叢集添加管理伺服器。
  • 對網路中的每個叢集使用單獨的多播位址。
  • 運行在叢集的伺服器可以監聽WebLogic Server 7.0的不同埠。
  • 如果可以,使用單獨的硬體 (NIC)來路由叢集多播通信 ,具體方法是設定網路頻道,把內部叢集通信與外部用戶端通信分離開來,這樣可以獲得更好的性能。
  • 在一級叢集(ex. war and EJB jar)中聯合頻繁被擷取的應用程式,以避免網路資訊流過大。
  • 要啟用servlets和 JSP的自動故障恢復,使用複製技術。
  • 記憶體中的複製比其他類型的複製要快。
  • 使用記憶體中的複製時,要為叢集中的伺服器指定機器資訊。
  • 只有當您需要控制二次選擇過程時,才需要定義複製組。
  • 在所有可能的地方使用伺服器相似性可以提高性能。
  • 公開使用可用的DNS名稱來標識WebLogic Server 事例,而不要使用啟用防火牆的環境中的IP位址。
  • 如果一個WebLogic叢集跨越了多個站點,站點間的網路必須支援跨站點叢集的多播通信。
  • 借助這個跨越體系結構,您必須把叢集的Multicast TTL 值設定得足夠高,才能防止路由器在多播包到達其目的地之前丟棄它們。

p%O |+o1u0tM\,y+@0
nX9d@^3d9Y5y/{0線程化51Testing软件测试网.Ft/U?9i
為了提高WebLogic Server的性能,請使用本機的I/O(性能包),如果它們可用的話。為了確保能正確初始化性能包,在啟動時要檢測錯誤。
e0z$GS r4j(]0可以把執行佇列設定為在溢出情形下增加線程。但是,避免使用伺服器增加執行線程數目的能力,以管理常規的應用程式負載高峰期。相反地,進行仔細的容量規劃和伺服器調整;為執行線程選擇一個最佳的數目。51Testing软件测试网'aVl2m1k`'V'B

51Testing软件测试网 OFD Bo!V0{e

Rx8L x x0

;k W }g4ED0技巧51Testing软件测试网&q(]T)GPH&lJ{

  • 只有當CPU利用率沒有到達100%,但是用戶端請求經常被阻塞和拒絕時,才能調整執行線程的數目。
  • 調整線程數目時,如果吞吐量開始下降,或者CPU利用率下降或保持恒定,才能停止調整。
  • 不要把Stuck Thread Max Time 和 Stuck Thread Time Interval 設置得過低,以至於在處理高峰期間,常規請求被誤認為是卡住得線程。
  • 為了劃分應用程式元件或者給一個元件提供專門數量的資源,需要建立使用者定義的執行佇列。使用定制的執行佇列還可以避免出現潛在的跨伺服器鎖死的情形。
  • 為了給訊息驅動bean提供專門的資源,需要對每個被部署的訊息驅動EJB使用一個單獨的執行佇列。
  • 診斷WebLogic Server上的鎖死故障和長期運行的請求時,使用一系列正確安排的線程轉儲來確定可能的原因。
  • 如果通過隧道化(tunneling)在HTTP上使T3協定進行擷取,性能將下降大約15%;應避免在HTTP上使用隧道化T3。

'O3_?ci sjb0測試技巧

d"X `2b&p"fXs.iw0
  • 在容量規劃和測試期間,要為應用程式可能引起的高峰負載擬訂計畫。
  • 在測試期間最佳化應用程式;通常,在WebLogic Server 上,應用程式在性能和容量方面是限制最大的因素。
  • 在壓力下測試系統性能時,要使用適當而現實的測試範例。
  • 測試範例與生產情況越貼近,測試結果就越精確。
  • 對應用程式進行基準測試時,忽略開始的幾個例子;運行測試例子來讓伺服器VM“進行熱身”。

@!vT#L&KN,gm`0
I}q$R lfv:J0監控51Testing软件测试网XZ7o2j$|By&{
使用特定於作業系統的統計來觀察線程行為和情境切換。例如,在Solaris上,您可以使用mpstat、prstat、top來監控CPU利用率。mpstat公開CPU利用率、線程中斷,以及有意和無意的情境切換。top將幫助您找出耗盡CPU的進程。
R mUD(^N:i0
m4OJ$tJ a.C3bC0WebLogic管理控制臺可以用於監控正在運行的伺服器、伺服器線程、JVM堆的使用情況、日誌檔、叢集統計資訊,等等。啟用SNMP監控可以利用現有的SNMP監控框架,以便通過中央管理伺服器來監控您的WebLogic域資源。51Testing软件测试网e8{t0D4m)[/D'v/R5gs
51Testing软件测试网 wNc5B.r2EG.H
1.01節:第三方監控工具也可用用於監控WebLogic Server使用的應用程式和系統資源(例如,Quest公司出品的spotlight,Acsera公司出品的Acsera,等等)。51Testing软件测试网/R.D,@T"A(G

51Testing软件测试网|:EJ.`5^}

51Testing软件测试网9V3cp[;{f2|$] y+CT.^

*^Ui-[?H[0技巧51Testing软件测试网GC5kZvm

  • SNMP代理是域中管理伺服器的一個組成部分,所以管理伺服器事例的故障可能變成一個瓶頸。
  • 為了監控WebLogic運行時Mbeans,除了管理控制臺之外,您還可以使用JMX監控工具。
51Testing软件测试网9A?+T }"O2@ TT

51Testing软件测试网-w)s3em3A9@%?h
JVM
[8cbT0n0使用JVM,它可以給伺服器端的應用程式(例如 JRockit)提供更好的性能。管理控制臺可以用於圖形化地監控JVM堆的使用情況。51Testing软件测试网%Z-J _$l0^!m
51Testing软件测试网#h;K1o AOsn6V-[
為了獲得更好的性能,要求使用特定于JVM提供商的選項進行測試。51Testing软件测试网Z3i3pLk7X

51Testing软件测试网/{.a+Am2?R2|G.aM

7\ ]3C!m K[-Z\0

sb8aH|t0例如,這些您可以設置的常見“熱點”JVM選項:51Testing软件测试网8}S[kDwBp8Q
-XX +AggressiveHeap – 使用幾乎和整個實體記憶體一般大的堆。51Testing软件测试网)bA-f.a#i F$d z8V4_
-XX +UseISM – 使用隱私的共用記憶體 (Solaris)。51Testing软件测试网5U_.T1@'YOGS

P*E6c3H"[P6P+fT2ll0AggressiveHeap 警告:51Testing软件测试网 h$m&X\dSG e
1. 使用所有可用的記憶體。
]'nE7wg;z,K H6]G.K02. 與 -Xms –Xmx不相容。51Testing软件测试网Q(@j6rXpdL {
3. 堆可能會從堆疊偷取記憶體。51Testing软件测试网Gf6l3bv5d\,u

k6S5?;x-U W.y~6D0隱私的共用記憶體警告 (僅針對 Solaris):
#CL@ H2d [}r01. 鎖定記憶體;只在轉麼系統上使用。
vWf3h2? f0?S02. 記憶體碎片能夠防止分配連續的4 MB頁面。51Testing软件测试网\lZqU6kRL
3. 異常的JVM終止能夠導致出現鎖定段。
jUsb3@ VK Sw04. 要發現並刪除鎖定段,使用ipcs 和 ipcrm。

Dht ^]e MAf-N'jt0

#V9n,y#ZiNr&N0技巧51Testing软件测试网 Mfk Gx&^

  • 不要把伺服器的堆大小設置得比機器上可用的自由RAM還大。
  • 為了獲得高性能和高吞吐量,設置最小的JVM堆大小等於最大的堆大小。
  • WebLogic Server用於低記憶體情況的日誌記錄功能可以用於對可用自由記憶體進行採樣,以便檢測低記憶體的情況。
  • 監控垃圾收集時,如果堆始終固定在85%空閒,那麼試著減小堆大小。
  • 進行設置時,-noclassgc確保將perm大小設置為大於預設值(32mb)。
  • 在生產運行期間避免使用-verbosegc 選項。
  • 在多CPU的機器上使用並行的垃圾收集演算法,以減少垃圾收集的暫停時間。
  • 在基於Intel的體系結構上,為了獲得更好的性能,把WebLogic設定為使用JRockit虛擬機。
  • 要發現並刪除鎖定段,使用ipcs和 ipcrm。

TAG: Weblogic

 

评分:0

我来说两句

Open Toolbar