1) 包括内存设置和参数调整。
2) 内存设置:
a) 32位系统上JVM的可配置的大内存在 1.5G左右。64位则不受此限制。
b) 内存参数受jdk版本的影响,在不同的jdk版本中,各参数代表的意思不一样。
c) 在32位的weblogic版本中,内存设置不能突破一个阙值(通常这个阙值被认为是2G或1.7G)。
根据系统的大并发用户数来设置不同的内存参数:
d) 系统大并发用户在20及以下:
i. 内存设置在512M比较合适。
ii. 根据jdk版本,格式分别如下:(4种jdk版本的设置,分别是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) 位置:相应域的bin目录/ setDomainEnv.sh
b) 如: MEM_ARGS="-Xms1536m -Xmx1536m"
MEM_ARGS="${MEM_ARGS} -XX:MaxPermSize=256m"
3. IBM jdk:MEM_ARGS="-Xms512m –Xmx1024m
e) 系统大并发用户在30~50:
i. 内存设置在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) 系统大并发用户在50及以上
i. 内存设置在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) 参数调整:
a) Execute Queue and Threads Count
i. 执行队列可以理解为一个排队的任务群。每当客户端发出一个任务请求,就会被放到执行队列中。
ii. 执行队列的线程数的意思是同时启动多少个线程来执行队列中的任务。如果队列中的任务数大于线程数,那就表明有的任务需要等待。所以线程数的大值应该和系统的大并发数一致,相应的,最小值应该和系统的最小并发量一致。
iii. 如果是WebLogic 9以上版本,线程数由系统自己分配,无须配置。
iv. 一般来说,这个参数和并发用户数有关:
1. 并发用户数在20及以下,线程数可以设置为20;
2. 并发用户数在30~50,线程数可以设置为30;
3. 并发用户数在60及以上,线程数可以设置为40或50。
a) 位置: 相应域的config目录/config.xml
b) Accept Backlog
i. Accept Backlog参数表明Weblogic向操作系统请求的队列大小。
ii. 当客户端连接weblogic服务器时,在服务器上就监听到一个客户端的连接请求。
iii. 但是管理客户端连接请求的任务是由操作系统来完成的,而非Weblogic。操作系统把这些连接请求存储在一个先进先出的队列中。
iv. 当队列中的连接请求达到了队列的大数时,Weblogic服务器所在的主机操作系统会拒绝新的连接请求。只有当队列中的连接请求和Weblogic成功建立连接后,才会使队列腾出空位,这时队列才能继续加入新的连接请求。
v. 当客户端收到类似connection refused的信息,就表明队列已经满了,这时候可以调大Accept Backlog的值。目前在部署的过程中,一般都设置为100。
vi. Weblogic 92的位置,点击服务器,进入服务器属性页面,点击配置,再点击调整,接受预备连接,即是。
c) Jdbc数据库连接池
i. 当操作数据库的事务并发量很大时,需要调大JDBC连接数的大值,否则会报得不到JDBC连接的问题。
ii. 大值的设置不应该超过执行队列中线程大值的设置,更不要超过数据库中的Processes值。
iii. 一般来说,这个参数和并发用户数有关:
1. 并发用户数在20及以下:
Initial Capacity 5
Maximum Capacity 20
Capacity Increment 2
2. 并发用户数在30~50:
Initial Capacity 10
Maximum Capacity 30
Capacity Increment 5
3. 并发用户数在60及以上:
Initial Capacity 20
Maximum Capacity 40
Capacity Increment 5
例如:
Initial Capacity 100
Maximum Capacity 100
Capacity Increment 1
Statement Cache Size 200(登陆web页面的用户数)
d) JTA
i. JTA就是Java事务管理接口,主要用来管理EJB的事务。我们通常关注的就是事务的超时时间。
ii. 因为有些事务比较大,如果超时时间设置过短,会造成事务处理失败并回滚。
e) LOG
i. 在Weblogic中有多个地方会产生日志。比如:
1. 域日志:
2. 每个服务器的日志
3. 每个服务器的http日志
例如:所在域/ servers/AdminServer/logs 目录下:AdminServer.log、access.log和xxx_domain.log
ii. 日志的调优,主要是担心无限制的日志增长导致磁盘空间不足
1. 限制保留的日志文件数:这个选项设置生成文件的数量不大于指定值。在weblogic8中,需要手动设置该选项,在weblogic9中,该参数默认是选中的。
2. 日志级别:这个选项控制生成日志的多少。建议weblogic8和weblogic9中都设置成error,以减少系统I/O。