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

 

评论区欢迎讨论!觉得有用点个赞再走吧。感谢!!!

 

你可能感兴趣的:(开发笔记)