轉自:https://dead-knight.iteye.com/blog/1940399
希望這篇能把weblogic運維時經常遇到的問題、常用的配置匯總到一起。
1、配置jvm參數:
一般在domain啟動過程中會看到以下啟動的日志信息,如下圖所示:
圖中紅色方框部分為啟動weblogic domain的命令。其中包括了jvm參數以及classpath信息。
【注意】
java -client是由于之前建立的domain是開發模式的。生產模式的話,這里執行的是java -server。至于-client與-server的區別,大家去google下吧,這里不介紹了。
那如何修改這個配置呢?
找到setDomainEnv.cmd文件(linux下面就是setDomainEnv.sh了),
位置為:weblogic11\user_projects\domains\example\bin\setDomainEnv.cmd
修改文件中的MEM_ARGS部分,相關參數配置如下:
- call?"%WL_HOME%\common\bin\commEnv.cmd"??
- ??
- set?WLS_HOME=%WL_HOME%\server??
- ??
- if?"%JAVA_VENDOR%"=="Sun"?(??
- ????set?WLS_MEM_ARGS_64BIT=-Xms256m?-Xmx512m??
- ????set?WLS_MEM_ARGS_32BIT=-Xms256m?-Xmx512m??
- )?else?(??
- ????set?WLS_MEM_ARGS_64BIT=-Xms512m?-Xmx512m??
- ????set?WLS_MEM_ARGS_32BIT=-Xms512m?-Xmx512m??
- )??
- ??
- set?MEM_ARGS_64BIT=%WLS_MEM_ARGS_64BIT%??
- ??
- set?MEM_ARGS_32BIT=%WLS_MEM_ARGS_32BIT%??
- ??
- if?"%JAVA_USE_64BIT%"=="true"?(??
- ????set?MEM_ARGS=%MEM_ARGS_64BIT%??
- )?else?(??
- ????set?MEM_ARGS=%MEM_ARGS_32BIT%??
- )??
- ??
- set?MEM_PERM_SIZE_64BIT=-XX:PermSize=128m??
- ??
- set?MEM_PERM_SIZE_32BIT=-XX:PermSize=48m??
- ??
- if?"%JAVA_USE_64BIT%"=="true"?(??
- ????set?MEM_PERM_SIZE=%MEM_PERM_SIZE_64BIT%??
- )?else?(??
- ????set?MEM_PERM_SIZE=%MEM_PERM_SIZE_32BIT%??
- )??
- ??
- set?MEM_MAX_PERM_SIZE_64BIT=-XX:MaxPermSize=256m??
- ??
- set?MEM_MAX_PERM_SIZE_32BIT=-XX:MaxPermSize=128m??
- ??
- if?"%JAVA_USE_64BIT%"=="true"?(??
- ????set?MEM_MAX_PERM_SIZE=%MEM_MAX_PERM_SIZE_64BIT%??
- )?else?(??
- ????set?MEM_MAX_PERM_SIZE=%MEM_MAX_PERM_SIZE_32BIT%??
- )??
- if?"%JAVA_VENDOR%"=="Sun"?(??
- ????if?"%PRODUCTION_MODE%"==""?(??
- ????????set?MEM_DEV_ARGS=-XX:CompileThreshold=8000?%MEM_PERM_SIZE%???
- ????)??
- )??
- ??
- @REM?Had?to?have?a?separate?test?here?BECAUSE?of?immediate?variable?expansion?on?windows??
- ??
- if?"%JAVA_VENDOR%"=="Sun"?(??
- ????set?MEM_ARGS=%MEM_ARGS%?%MEM_DEV_ARGS%?%MEM_MAX_PERM_SIZE%??
- )??
- ??
- if?"%JAVA_VENDOR%"=="HP"?(??
- ????set?MEM_ARGS=%MEM_ARGS%?%MEM_MAX_PERM_SIZE%??
- )??
- ??
- if?"%JAVA_VENDOR%"=="Apple"?(??
- ????set?MEM_ARGS=%MEM_ARGS%?%MEM_MAX_PERM_SIZE%??
- )??
- ??
- @REM?IF?USER_MEM_ARGS?the?environment?variable?is?set,?use?it?to?override?ALL?MEM_ARGS?values??
- ??
- if?NOT?"%USER_MEM_ARGS%"==""?(??
- ????set?MEM_ARGS=%USER_MEM_ARGS%??
- )??
主要就是修改-Xms、-Xmx、-XX:PermSize、-XX:MaxPermSize的參數(視具體硬件、JVM負載情況進行修改)。如果需要設置-Xss等其它相關參數,也可添加到最后的MEM_ARGS中。
這里需要注意的是有個32位、64位的區別。實際上具體采用哪種配置,可查看文件:
weblogic11\wlserver_10.3\common\bin\commEnv.cmd
找到set JAVA_USE_64BIT=false配置,即表示非64位環境。
2、配置weblogic的線程隊列:
如果大家用過weblogic8的經典版本,那么肯定知道,里面有個線程隊列數的配置。可是在現在的版本中已經取消了,而采用自調整策略,根據當前請求數調整為適應的線程數。最開始分配6個執行線程,具體在哪里看呢?
首先登錄domain的console,然后依次選擇【環境-》服務器-》AdminServer-》監控-》線程】,如下圖所示:
如果我想調整線程的最小、最大數量,怎么做呢?往下看:
查看startWebLogic.cmd啟動腳本文件,不是domain下面的,具體位置是:
weblogic11\user_projects\domains\example\bin\startWebLogic.cmd
找到下面的語句進行修改,修改之后為:
- if?"%WLS_REDIRECT_LOG%"==""?(??
- ????echo?Starting?WLS?with?line:??
- ????echo?%JAVA_HOME%\bin\java?%JAVA_VM%?%MEM_ARGS%?-Dweblogic.threadpool.MinPoolSize=80?-Dweblogic.threadpool.MaxPoolSize=80?-Dweblogic.Name=%SERVER_NAME%?-Djava.security.policy=%WL_HOME%\server\lib\weblogic.policy?%JAVA_OPTIONS%?%PROXY_SETTINGS%?%SERVER_CLASS%??
- ????%JAVA_HOME%\bin\java?%JAVA_VM%?%MEM_ARGS%?-Dweblogic.threadpool.MinPoolSize=80?-Dweblogic.threadpool.MaxPoolSize=80?-Dweblogic.Name=%SERVER_NAME%?-Djava.security.policy=%WL_HOME%\server\lib\weblogic.policy?%JAVA_OPTIONS%?%PROXY_SETTINGS%?%SERVER_CLASS%??
- )?else?(??
- ????echo?Redirecting?output?from?WLS?window?to?%WLS_REDIRECT_LOG%??
- ????%JAVA_HOME%\bin\java?%JAVA_VM%?%MEM_ARGS%?-Dweblogic.threadpool.MinPoolSize=80?-Dweblogic.threadpool.MaxPoolSize=80?-Dweblogic.Name=%SERVER_NAME%?-Djava.security.policy=%WL_HOME%\server\lib\weblogic.policy?%JAVA_OPTIONS%?%PROXY_SETTINGS%?%SERVER_CLASS%??>"%WLS_REDIRECT_LOG%"?2>&1???
- )??
在java命令后面增加兩個參數,分別是:
-Dweblogic.threadpool.MinPoolSize=80
-Dweblogic.threadpool.MaxPoolSize=80
80表示執行的線程數,這里僅僅是舉例,視具體情況而定。如果不知道怎么設置,就不要瞎折騰了,還是讓weblogic自己調整吧。
修改之后,重啟domain,查看線程情況,如下圖所示:
已經明顯看到線程總數以及活動、空閑線程數量了。
一般在運維過程中,經常會查看這個界面,以實時掌握當前服務器的負載情況。
3、日志配置:
默認情況下,weblogic的相關日志的存放位置是:
weblogic11\user_projects\domains\example\servers\AdminServer\logs
這個日志文件夾里面主要包括兩種日志
AdminServer的日志:AdminServer.log(weblogic啟動過程中打印出來的日志)
Http的日志:access.log(http請求的日志)
web應用的日志存放位置是:
weblogic11\user_projects\domains\example\logs
這里主要就是web應用里面輸出的日志文件了
如果想配置日志,怎么做呢?
登錄domain的console,然后依次選擇【環境-》服務器-》AdminServer-》日志】,如下圖所示(包括兩類日志的配置):
看這個截圖,是不是覺得weblogic的console很好很強大?
4、端口配置(第一篇挪過來的,放在這里比較合適):
如圖所示,依次選擇【環境-》服務器-》AdminServer-》配置-》一般信息-》監聽端口】,修改7001為其它的端口,并且點“保存”按鈕即可完成。
也可以在weblogic11\user_projects\domains\example\config\config.xml中進行手動修改,找到server節點,增加listen-port節點,如下:
- <server>??
- ??<name>AdminServer</name>??
- ??<ssl>??
- ????<enabled>false</enabled>??
- ??</ssl>??
- ??<listen-port>7001</listen-port>??
- ??<listen-port-enabled>true</listen-port-enabled>??
- ??<listen-address></listen-address>??
- ??<java-compiler>javac</java-compiler>??
- ??<client-cert-proxy-enabled>false</client-cert-proxy-enabled>??
- ??<server-diagnostic-config>??
- ????<wldf-diagnostic-volume>Low</wldf-diagnostic-volume>??
- ??</server-diagnostic-config>??
- </server>??
5、修改管理賬號、口令:
domain創建之后,會在以下位置創建boot.properties文件(注意:這個位置與weblogic之前的8、9版本有區別)
weblogic11\user_projects\domains\example\servers\AdminServer\security
首先修改boot.properties,如下:
- username=weblogic??
- password=22222222??
這里是明文,但是weblogic啟動加載該文件后,會自動通過加密處理。
修改完成之后,在控制臺中依次進入:
安全領域-》myrealm-》用戶和組-》weblogic-》口令。輸入新的口令即可(需要與boot.properties中配置的一致,如22222222)
(如果需要修改賬號,需要在用戶和組中建立賬號,并且賦予管理員權限即可)
以上兩步完成之后,重啟服務即可。
暫時就想到這么些了,像一些復雜的配置,放在后面單獨講了(比如:ssl、jaas、sso等)