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