1) 包括內存設置和參數調整。
2) 內存設置:
a) 32位系統上JVM的可配置的大內存在 1.5G左右。64位則不受此限制。
b) 內存參數受jdk版本的影響,在不同的jdk版本中,各參數代表的意思不一樣。
c) 在32位的weblogic版本中,內存設置不能突破一個闕值(通常這個闕值被認為是2G或1.7G)。
根據系統的大并發用戶數來設置不同的內存參數:
d) 系統大并發用戶在20及以下:
i. 內存設置在512M比較合適。
ii. 根據jdk版本,格式分別如下:(4種jdk版本的設置,分別是sun、hp、ibm、bea,我們一般不采用bea的jdk)
1. Sun jdk:MEM_ARGS=-Xms512m –Xmx512m -XX:MaxPermSize=256m
2. HP jdk:MEM_ARGS="-Xms512m –Xmx512m -XX:MaxPermSize=256m
a) 位置:相應域的bin目錄/ setDomainEnv.sh
b) 如: MEM_ARGS="-Xms1536m -Xmx1536m"
MEM_ARGS="${MEM_ARGS} -XX:MaxPermSize=256m"
3. IBM jdk:MEM_ARGS="-Xms512m –Xmx1024m
e) 系統大并發用戶在30~50:
i. 內存設置在1G比較合適。
1. Sun jdk:MEM_ARGS=- Xms1024m –Xmx1024m -XX:MaxPermSize=512m
2. HP jdk:MEM_ARGS="- Xms1024m –Xmx1024m -XX:MaxPermSize=512m
3. IBM jdk:MEM_ARGS="-Xms1024m –Xmx2048m
f) 系統大并發用戶在50及以上
i. 內存設置在2G以上比較合適,這時如果是32位weblogic版本,由于受到不能突破閾值的影響,建議使用集群。
1. Sun jdk:MEM_ARGS=- Xms2048m –Xmx2048m -XX:MaxPermSize=512m
2. HP jdk:MEM_ARGS="- Xms2048m –Xmx2048m -XX:MaxPermSize=512m
3. IBM jdk:MEM_ARGS="-Xms2048m –Xmx4096m
3) 參數調整:
a) Execute Queue and Threads Count
i. 執行隊列可以理解為一個排隊的任務群。每當客戶端發出一個任務請求,就會被放到執行隊列中。
ii. 執行隊列的線程數的意思是同時啟動多少個線程來執行隊列中的任務。如果隊列中的任務數大于線程數,那就表明有的任務需要等待。所以線程數的大值應該和系統的大并發數一致,相應的,最小值應該和系統的最小并發量一致。
iii. 如果是WebLogic 9以上版本,線程數由系統自己分配,無須配置。
iv. 一般來說,這個參數和并發用戶數有關:
1. 并發用戶數在20及以下,線程數可以設置為20;
2. 并發用戶數在30~50,線程數可以設置為30;
3. 并發用戶數在60及以上,線程數可以設置為40或50。
a) 位置: 相應域的config目錄/config.xml
b) Accept Backlog
i. Accept Backlog參數表明Weblogic向操作系統請求的隊列大小。
ii. 當客戶端連接weblogic服務器時,在服務器上就監聽到一個客戶端的連接請求。
iii. 但是管理客戶端連接請求的任務是由操作系統來完成的,而非Weblogic。操作系統把這些連接請求存儲在一個先進先出的隊列中。
iv. 當隊列中的連接請求達到了隊列的大數時,Weblogic服務器所在的主機操作系統會拒絕新的連接請求。只有當隊列中的連接請求和Weblogic成功建立連接后,才會使隊列騰出空位,這時隊列才能繼續加入新的連接請求。
v. 當客戶端收到類似connection refused的信息,就表明隊列已經滿了,這時候可以調大Accept Backlog的值。目前在部署的過程中,一般都設置為100。
vi. Weblogic 92的位置,點擊服務器,進入服務器屬性頁面,點擊配置,再點擊調整,接受預備連接,即是。
c) Jdbc數據庫連接池
i. 當操作數據庫的事務并發量很大時,需要調大JDBC連接數的大值,否則會報得不到JDBC連接的問題。
ii. 大值的設置不應該超過執行隊列中線程大值的設置,更不要超過數據庫中的Processes值。
iii. 一般來說,這個參數和并發用戶數有關:
1. 并發用戶數在20及以下:
Initial Capacity 5
Maximum Capacity 20
Capacity Increment 2
2. 并發用戶數在30~50:
Initial Capacity 10
Maximum Capacity 30
Capacity Increment 5
3. 并發用戶數在60及以上:
Initial Capacity 20
Maximum Capacity 40
Capacity Increment 5
例如:
Initial Capacity 100
Maximum Capacity 100
Capacity Increment 1
Statement Cache Size 200(登陸web頁面的用戶數)
d) JTA
i. JTA就是Java事務管理接口,主要用來管理EJB的事務。我們通常關注的就是事務的超時時間。
ii. 因為有些事務比較大,如果超時時間設置過短,會造成事務處理失敗并回滾。
e) LOG
i. 在Weblogic中有多個地方會產生日志。比如:
1. 域日志:
2. 每個服務器的日志
3. 每個服務器的http日志
例如:所在域/ servers/AdminServer/logs 目錄下:AdminServer.log、access.log和xxx_domain.log
ii. 日志的調優,主要是擔心無限制的日志增長導致磁盤空間不足
1. 限制保留的日志文件數:這個選項設置生成文件的數量不大于指定值。在weblogic8中,需要手動設置該選項,在weblogic9中,該參數默認是選中的。
2. 日志級別:這個選項控制生成日志的多少。建議weblogic8和weblogic9中都設置成error,以減少系統I/O。