1Weblogic 配置文件:配置用户名和密码,

(在startweblogic.sh 中配置这两项后,用rm -rf 时,删掉security也没有关系。)

image.png



2,内存大小

在startweblogic.sh中设置MEM_ARGS="-Xms2048m –Xmx2048m -XX:PermSize=128m" 。 最大和最小内存最好一致,这样是性能最优。这里就直接设置了内存大小,不需要其他地方设置。

 image.png

查看内存使用情况:

     在weblogic 控制台中,手动"垃圾收集"的时候,总是不能全部回收,一次比一次占用的内存多,说明内存有泄漏,需要查看。程序停止后,过一段时间内存会慢慢释放就没什么问题。

image.png


3 设置数据源: 

weblogic连接数:50-150 ,最大值比线程数多点就行了。

 image.png

 

查看连接池的使用情况:

image.png

一般当前活动连接数不会超过我们设置的最大连接数,如果连接池被占满,说明服务器压力比较大,或者某些业务比较慢,造成连接池等待。 




对连接池有效性检查的设置:在网络条件不好的情况下,必须要进行连接池有效性检查设置,

否则我们的系统会频繁报错。还有个好处就是重启数据库不用再重启weblogic,数据库启来后连接池会自动连接。

设置方法:

image.png

连接池自动收回时间的设置:在某些情况下,我们的应用服务器没有任何压力,数据库也没有压力,可连接池总是被占满,这种情况大多是由于我们测程序没有对连接池进行及时的关闭造成的,但我们又找不到程序错误的根源,这时我们可以开启weblogic的连接池空闲回收机制。一般我们设置100s如果连接100s 后没有被使用,则自动回收到连接池当中。

设置方法:

 image.png







4,Weblogic设置:

粘滞线程最长时间:3600

JTA超时时间:3000秒。



 5,查看线程阻塞问题

java线程数:来一个用户会占用一个线程,用完随即释放。 我们测试的只是登陆退出,所以退出后线程立马释放。在weblogic 控制台中会显示出线程活动数和空闲数,如果有等待的线程数说明这个线程数不够用。根据处理业务的大小判断,一个cpu可处理25-30个线程。

image.png

# 调整java进程数。

在setdomainenv.sh中添加如下两句话,即最大最小线程数:

export JAVA_OPTIONS="${JAVA_OPTIONS} -Dweblogic.threadpool.MinPoolSize=100"

export JAVA_OPTIONS="${JAVA_OPTIONS} -Dweblogic.threadpool.MaxPoolSize=550"


linux下系统对用户的默认线程数做了限制,可以通过:

ulimit -a 命令进行查看:

其中

max user processes              (-u) 1024

表示当前系统允许的最大线程数,可以把此参数设大一些。

ulimit -u 5000



设置当前系统用户最大允许的线程数,只对本次会话有效,如果想要永久生效,可以通过修改:

$ cat /etc/security/limits.d/90-nproc.conf 

# Default limit for number of user's processes to prevent

# accidental fork bombs.

# See rhbz #432903 for reasoning.

 

*          soft    nproc    1024

只需要将1024改成你需要的值即可,设置完需要重启系统已生效。



image.png

cpu的线程数并不是越大越好,而是够用即可,过大会降低系统性能,所以一般一个cpu是20个线程数,逐渐增加时可通过增加5个,查询cpu的利用率,最优是cpu利用率在90%。但是实践证明修改线程数提升性能并不大。 




设置阻塞线程最长时间:weblogic服务器默认阻塞线程最长时间是600s,一般情况下够用,但有些时候我们的程序在做大业务时可能要超过10分钟。这样我们需要将阻塞线程时间加大。

设置方法:stuck thread max time 设置这个值。

image.png

image.png



监控队列执行情况:

一般情况下,队列的等待应该为0,如果队列的等待不为0 ,说明当前应用服务器的压力比较大, 这时可以监控数据库的运行情况, 一般是由于我们应用程序的

性能低下造成的。有时候队列的数会随即释放这也没关系, 要是队列一直不释放,需要查看一下阻塞的线程,查一下是什么程序引起的。 

image.pngimage.png



6,weblogic控制台登录慢

1、找到java的路径:可以看到,我的路径是:/usr/local/JDK/jdk1.7.0_75

2、编辑文件,修改相关参数

配置文件路径:$JAVA_HOME/jre/lib/security/java.security

将第一句改成第二句:

 #securerandom.source=file:/dev/urandom

 securerandom.source=file:/dev/./urandom (中间多加一个点)



7,打开文件数的优化

Weblogic默认打开文件数是1024个,如果系统对文件操作比较多的话weblogic就会报文件打开数过多的错误。一般我们在java中操作文件时,要及时对文件进行关闭。

解决方法:

weblogic安装目录下找到/bea/wlserver_10.3/common/bin/commEnv.sh文件,找到resetFd()将该函数的内容进行注释,然后增加内容:ulimit -n 4096

例如:

image.png




8,部署应用程序的优化

取消jsp 和servlt的有效性检查,将检查频率改为-1 :

image.png

image.png

image.png




9,日志优化

weblogic频繁的写日志也会影响性能,在这里我们取消不必要的日志,降低日志级别,也能提高性能

weblogic日志的设置:

image.png

image.png

image.png

image.png