Weblogic 啓動、調優等操作相關命令 (Linux 環境)

1、本文簡介

        項目開發中使用Weblogic部署項目應用,在Linux環境下,需要了解Weblogic的啓動等相關操作。本文做一個工作筆記整理:

1.1 啓動weblogic相關

1.2 停止weblogic相關

1.3 查看weblogic進程相關

1.4 解決weblogic啓動慢問題(調優)

1.5 修改weblogic jvm 參數(調優)

2、詳細介紹

2.1 啓動weblogic相關

2.1.1 啓動weblogic,並在終端(屏幕) 輸出日誌

切入啓動腳本所在目錄(一般爲bin),輸入命令:

$ ./startWeblogic.sh &

備註:

1、僅加 & 表示 執行命令在當前會話後臺可運行,會在終端顯示,Ctrl +C 可用(切回命令行),關閉會話(如shell)執行過命令失效(已驗證);

2、僅加 nohup 表示 執行命令在關閉會話(如shell)後依舊有效,但 Ctrl +C 不可用(切回命令行),會導致執行過命令失效(待驗證);

3、nohup+& 一起使用,進程真正不受shell中Ctrl C和shell關閉的影響;

2.1.2 啓動weblogic,並指定文件輸出日誌(不指定文件路徑則在當前路徑下,且文件會自動創建)

$ nohup ./startWeblogic.sh >out.log 2>&1 &

備註:

1、linux中默認定義兩個變量:1指標準輸出;2指錯誤輸出,所以寫成這樣:command 1>output 2>error & ,正常的輸出在output文件裏,錯誤的輸出在error文件裏。這裏也等同於command >output 2>error &;

2、有時候只想保留一種,另外一個既不輸出又不保存,那就用到這個設備/dev/null,所以忽略錯誤輸出:command 1>output 2>/dev/null & ;忽略標準輸出:command 1>/dev/null 2>error &;忽略全部輸出: command 1>/dev/null 2>/dev/null

3、1,2兩種信息之間還可以進行重定向,所以這種:command 1>output 2>&1 & 表示錯誤輸出也重定向回標準輸出,即兩種信息都保存到output裏。那幹嘛不寫成command 1>output 2>output & 呢?答案是這樣不行,別看都輸出到/dev/null可以,但如果寫成相同的文件名會導致衝突,所以如果想同時保留只能是上面的寫法;同理:忽略全部輸出還可以寫成: command >/dev/null 2>&1 &;

這樣的文件輸出,每次運行會覆蓋現有的文件,如果我們希望追加而不是覆蓋,那麼就用>>符號,這樣命令就是: command 1>>log 2>>error &

2.1.3 啓動 weblogic 下 server,並指定文件輸出日誌

$ nohup ./startManagedWeblogic.sh serverName >out.log 2>&1 &

 

2.2 停止weblogic相關

2.2.1 停止weblogic

$ ./stopWeblogic.sh

備註:./stopWeblogic.sh 命令執行後,雖然會導致weblogic控制檯界面無法訪問,部署的應用也無法再訪問,但使用grep查看weblogic進程,會發現其他server節點相關的進程依舊存在。提起這一點,是因爲在執行./stopWeblogic.sh 後重啓weblogic,有時會出現啓動異常,這時候,grep一下weblogic的相關進程並kill掉,往往就可以啓動成功了。

2.2.2 停止weblogic server 節點

$ ./stopManagedWebLogic.sh serverName

 

2.3 查看weblogic進程相關

2.3.1 查看weblogic進程

$ ps -ef | grep weblogic

2.3.2 殺死weblogic進程

$ kill -9 進程ID

2.3.3 查看weblogic日誌

$ tail xxx.log -n 300 -f

備註:查看底部即最新300條日誌記錄,並實時刷新

 

2.4 解決weblogic啓動慢問題(調優)

網上整理出的,項目中自己使用過的是第一種。

Weblogic在Linux下啓動特別慢及進入控制檯慢的解決方法,實際是JVM在Linux下的bug,他想調用一個隨機函數,但取不到。

2.4.1 較好的解決辦法: 在Weblogic啓動參數裏添加 “-Djava.security.egd=file:/dev/./urandom” (/dev/urandom 無法啓動)

在weblogic啓動腳本里setDomainEnv.sh: 加入以下內容

JAVA_OPTIONS="${JAVA_OPTIONS} -Djava.security.egd=file:/dev/./urandom"

export JAVA_OPTIONS

2.4.2 最差的解決辦法: 執行命令 mv /dev/random /dev/random.ORIG ; ln /dev/urandom /dev/random

  將/dev/random 指向/dev/urandom

2.4.3 最好的解決辦法: 修改Linux上Weblogic使用的jdk $JAVA_HOME/jre/lib/security/java.security 文件,

將 securerandom.source=file:/dev/urandom 修改爲securerandom.source=file:/dev/./urandom

這樣可以解決任何一個域Weblogic啓動慢的問題。

2.4.4 其他(與 1 差不多)

JAVA_PROPERTIES="${JAVA_PROPERTIES} ${WLP_JAVA_PROPERTIES}"

export JAVA_PROPERTIES

 

JAVA_OPTIONS="${JAVA_OPTIONS} ${JAVA_PROPERTIES} -Duser.timezone=GMT+08 -Djava.security.egd=file:/dev/./urandom -DUseSunHttpHandler=true -Dwlw.iterativeDev=${iterativeDevFlag} -Dwlw.testConsole=${testConsoleFlag} -Dwlw.logErrorsToConsole=${logErrorsToConsoleFlag}"

export JAVA_OPTIONS

 

如上,在JAVA_OPTIONS 後面加上

-Duser.timezone=GMT+08 -Djava.security.egd=file:/dev/./urandom -DUseSunHttpHandler=true

 

ps:由於Windows上對/dev/urandom實現機制不一樣,所以在Windows上不會出現上述爲題。

 

2.5 修改weblogic jvm 參數(調優)

bin 目錄下,修改setDomainEnv.sh

if [ "${VM_TYPE}" = "HotSpot" ]; then

WLS_MEM_ARGS_64BIT="-Xms512m -Xmx1024m"

export WLS_MEM_ARGS_64BIT

WLS_MEM_ARGS_32BIT="-Xms512m -Xmx1024m"

export WLS_MEM_ARGS_32BIT

fi

 

評論區歡迎討論!覺得有用點個贊再走吧。感謝!!!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章