优化设置
Weblogic服务程序设置:
1、设置JDK内存:
修改weblogic\user_projects\domains\base_domain\bin下的文件:
修改前:
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_PERM_SIZE_32BIT=-XX:PermSize=48m
set MEM_MAX_PERM_SIZE_32BIT=-XX:MaxPermSize=128m
修改后:
if "%JAVA_VENDOR%"=="Sun"
    set WLS_MEM_ARGS_64BIT=-Xms512m –Xmx1024m
    set WLS_MEM_ARGS_32BIT=-Xms512m –Xmx1024m
else
    set WLS_MEM_ARGS_64BIT=-Xms1024m –Xmx1024m
    set WLS_MEM_ARGS_32BIT=-Xms1024m –Xmx1024m
set MEM_PERM_SIZE_32BIT=-XX:PermSize=128m
set MEM_MAX_PERM_SIZE_32BIT=-XX:MaxPermSize=256m
说明:红字体为修改的内容,具体修改值根据实际物理内存确定
-Xmx3550m:设置JVM最大堆内存为3550M;
-Xms3550m:设置JVM初始堆内存为3550M;此值可以设置与-Xmx相同,以避免每次JVM动态分配内存所浪费的时间;
-XX:PermSize=256M:设置堆内存持久代初始值为256M;貌似是Eclipse等IDE的初始化参数
jvm调优参数-XX:MaxPermSize=512M:设置持久代最大值为512M;
32位操作JDK内存系统:最大可设置1.5G,如果设置过大,会导致服务无法启动
64位操作JDK内存系统:最大设置为物理内存的60~80%
2、设置线程数:
修改weblogic\user_projects\domains\base_domain\bin下的中在JAVA_OPTIONS中添加如下:
set JAVA_OPTIONS=%JAVA_OPTIONS% JAVA_OPTIONS=%JAVA_OPTIONS% 说明:
以后每个线程栈大小为1M,但是操作系统对一个进程内的线程数还是有限制的,不能无限生成;32位操作系统根据JVM最大堆内存设置;64位操作系统经验值在3000~5000左右;
3、Weblogic数据库连接池连接数设置:
受Oracle数据库连接数的影响,可以参照同一时间连接数据库的用户数量,进行设置,数据库的最大连接数不能小于高峰时期同一时间连接用户的数量;点击数据源,进入后选择连接池:
初始容量:20
最大容量:50
容量增长:5
说明:
设置前得设置数据库的最大并发线程数下面有介绍Oracle数据库线程数设置方法,因为weblogic节点的连接池最大连接数之和不能大于数据库的最大线程数;
初始容量要在创建连接池时创建的物理连接数;如果无法创建这一数量的连接,创建此连接池的操作将会失败;此连接数也是连接池将保持的最小可用物理连接数;
最大容量此连接池可容纳的最大物理连接数;
容量增长将新连接添加到连接池时创建的连接数;不再有可用的物理连接来满足连接请求时,WebLogic Server 会创建该数量的附加物理连接并将它们添加到连接池中;MBean 属性 不适用于应用程序模块:;
4、Weblogic的服务设置配置\优化:
接受积压:300
登录超时:5000
说明:
接受积压对于此服务器的常规和 SSL 端口,应该允许的新 TCP 连接请求的积压数量;将积压设置为 0 可以防止此服务器接受某些操作系统上的所有传入连接;MBean 属性:;最小值:
0
登录超时此服务器的默认常规 非 SSL 监听端口的登录超时;这是允许建立新连接的最长时间;如果值为 0,表示无最大值;MBean 属性:最小值:0;最大值:100000;安全值:5000
weblogic调优参数
Weblogic的调优主要从SEVERExecuteQueueJDBC等几个方面的相关参数进行调优:
一、SERVER
  mydomain->Servers->myserver->Configuration->Tuning->“Enable Native IO”中:
  1Native IOEnabled
    TRUE,表示该Server使用本地I/O
  2SocketReaders
    设置在执行线程中专用做Socket Readers的百分比
  3Maximum Open Sockets
    最大打开Socket
  4Stuck Thread MaxTime
    堵塞线程时间,超过这个时间没有返回的执行线程,系统将认为是堵塞线程
   如果weblogic认为某个队列中的所有的线程全部堵塞的话,weblogic将会增加执行线程的数量;
   注意:执行线程的数量一旦增加,目前weblogic不会去减少他,如果增加了一些线程以后再次出现overflow的警告,weblogic会继续增加执行线程的数量,一直到达到上限为止;
  5Stuck Thread Timer Interval
    系统检查堵塞线程的时间间隔
  6Low Memory GC Threshold
    当可用内存小于该百分比时,垃圾回收启动
  7Low Memory Granularity Level
    当两次检测的可用内存变化超过该百分比时,垃圾回收启动
  8Low Memory Sample Size
    在一次检测中的取样次数
  9Low Memory Time Interval
    检测间隔时间
  10Accept Backlog
    等待队列中最多可以有多少TCP连接等待处理,如果在许多客户端连接被拒绝,而在服务器端没有错误显示,说明该值设得过低;如果连接时收到connection refused消息,说明应提高该值,
每次增加25
二、ExecuteQueue
  在、ThreadCount
    服务器初始创建的执行线程的数量,设置原则:
  增大机器的最大并发线程数使处理器利用率达到最大;对于服务器端操作比较多的线程,应该减少线程计数;对于客户端操作比较多的,应该增加线程计数;并发线程数理论上等于本地主机CPU个数+Stuck线程数,够用即可,过大会降低系统性能
  2QueueLength
    在等待队列里的请求数,理想状态下是0
  3QueueLength Threshold Percent
    一个百分数,当request的数量达到队列长度的这个比例的时候,weblogic会发出overflow的标志信息
  4ThreadsIncrease
    如果weblogic发出overflow的标志信息,weblogic会尝试增加这个数量的执行线程,以解决处理矛盾
  5ThreadsMaximum
    最大执行线程数
  6Threads Minimum
    最小执行线程数
  7ThreadPriority
    线程优先级
三、JDBC
service->JDBC-> JDBC Connection Pools->Configuration->name->Connections
  1 Initial Capacity
    初始数据库物理连接数
  2MaxCapacity
    最大数据库物理连接数
  3Capacity Increment
    每次数据库物理连接增加数