精华内容
下载资源
问答
  • Weblogic提高并发处理性能的设置 对于1. 设置Weblogic线程数 2. 设置Weblogic JDBC 缓冲池 4. 修改 startWeblogic.cmd 文件
  • 设置Weblogic的线程数有两种方法, 第一种,通过启动参数设置: -Dweblogic.threadpool.MinPoolSize=1000 -Dweblogic.threadpool.MaxPoolSize=1000   可以加在setDomainEnv.sh文件JAVA_OPTIONS下面; 第二种...

    使用Weblogic版本:Weblogic 11g(10.3.6)

    设置Weblogic的线程数有两种方法,

    第一种,通过启动参数设置:

    -Dweblogic.threadpool.MinPoolSize=1000 -Dweblogic.threadpool.MaxPoolSize=1000

     

    可以加在setDomainEnv.sh文件JAVA_OPTIONS下面;

    第二种,通过config.xml配置文件:

    
     
    1. <server>

    2.     <name>AdminServer</name>

    3.     <self-tuning-thread-pool-size-min>1000</self-tuning-thread-pool-size-min>

    4.     <self-tuning-thread-pool-size-max>1000</self-tuning-thread-pool-size-max>

    5. </server>

     

     

    Window环境下设置完应该直接重新启动就可以生效,Linux下,有可能会出现以下错误:

    
     
    1.  
    2. Attempting to allocate 4G bytes

    3.  
    4. There is insufficient native memory for the Java

    5. Runtime Environment to continue.

    6.  
    7. Possible reasons:

    8.   The system is out of physical RAM or swap space

    9.   In 32 bit mode, the process size limit was hit

    10.  
    11. Possible solutions:

    12.   Reduce memory load on the system

    13.   Increase physical memory or swap space

    14.   Check if swap backing store is full

    15.   Use 64 bit Java on a 64 bit OS

    16.   Decrease Java heap size (-Xmx/-Xms)

    17.   Decrease number of Java threads

    18.   Decrease Java thread stack sizes (-Xss)

    19.   Disable compressed references (-XXcompressedRefs=false)

    20.  
    21. java.lang.OutOfMemoryError: Resource temporarily unavailable in tsStartJavaThread (lifecycle.c:1097).

    22.  
    23. Attempting to allocate 4G bytes

    24.  
    25. There is insufficient native memory for the Java

    26. Runtime Environment to continue.

    27.  
    28. Possible reasons:

    29.   The system is out of physical RAM or swap space

    30.   In 32 bit mode, the process size limit was hit

    31.  
    32. Possible solutions:

    33.   Reduce memory load on the system

    34.   Increase physical memory or swap space

    35.   Check if swap backing store is full

    36.   Use 64 bit Java on a 64 bit OS

    37.   Decrease Java heap size (-Xmx/-Xms)

    38.   Decrease number of Java threads

    39.   Decrease Java thread stack sizes (-Xss)

    40.   Disable compressed references (-XXcompressedRefs=false)

     

    出现这个原因的问题可能是因为Linux下系统对用户的默认线程数做了限制,可以通过:

    ulimit -a

     

    命令进行查看:

    
     
    1. core file size          (blocks, -c) 0

    2. data seg size           (kbytes, -d) unlimited

    3. scheduling priority             (-e) 0

    4. file size               (blocks, -f) unlimited

    5. pending signals                 (-i) 515223

    6. max locked memory       (kbytes, -l) 64

    7. max memory size         (kbytes, -m) unlimited

    8. open files                      (-n) 1024

    9. pipe size            (512 bytes, -p) 8

    10. POSIX message queues     (bytes, -q) 819200

    11. real-time priority              (-r) 0

    12. stack size              (kbytes, -s) 10240

    13. cpu time               (seconds, -t) unlimited

    14. max user processes              (-u) 1024

    15. virtual memory          (kbytes, -v) unlimited

    16. file locks                      (-x) unlimited

     

    其中

    max user processes              (-u) 1024

     

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

    ulimit -u 5000

     

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

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

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

    3. # accidental fork bombs.

    4. # See rhbz #432903 for reasoning.

    5.  
    6. *          soft    nproc    1024

     

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

    展开全文
  • 设置Weblogic以提高并发处理性能

    千次阅读 2014-12-08 09:42:36
    转自:... 1. 设置Weblogic线程数 将 Thread Count 改为一个较大的值,如 100。 2. 设置Weblogic JDBC 缓冲池 3. 关闭Weblogic服务器

    转自:http://it.chinawin.net/softwaredev/article-e520.html


    1.      设置Weblogic线程数

    如何设置Weblogic以提高并发处理性能

    如何设置Weblogic以提高并发处理性能

    如何设置Weblogic以提高并发处理性能

    将 Thread Count 改为一个较大的值,如 100。

    2.      设置Weblogic JDBC 缓冲池

    如何设置Weblogic以提高并发处理性能

    3.      关闭Weblogic服务器

    4. 修改 startWeblogic.cmd 文件

    打开 {mydomain}\startWebLogic.cmd,找到下面的行:

    @rem Set MEM_ARGS to the memory args you want to pass to java. For instance:

    @rem set MEM_ARGS=-Xms32m -Xmx200m

    set MEM_ARGS=

    改为:

    @rem Set MEM_ARGS to the memory args you want to pass to java. For instance:

    @rem set MEM_ARGS=-Xms32m -Xmx200m

    set MEM_ARGS=-Xms1024m -Xmx1024m -XX:MaxPermSize=128m -XX:MaxNewSize=384m -XX:NewSize=384m -XX:ThreadStackSize=4m

    注意第3行是一行,中间没有换行,这里因为显示不下才变成了两行。

    5、 重新启动Weblogic服务

    Weblogic性能优化-并发量

    转自:http://leexh8382.blog.163.com/blog/static/54409020105183011688/

     并发量的优化主要是两个队列和处理Thread数:
                     1、OS控制的TCP队列:存放操作系统已经接受,而Weblogic还没有接受的Socket;
                     
                2、Weblogic默认的Request队列:存放Weblogic已经接受,但是WebContainer还没有处理的Request;
                     3、Thread数量:Weblogic处理线程,和CPU数量及业务逻辑相关。
                 
                     如果用户并发量很大,由于WebContainer的处理能力有限,会产生以下结果:
                     1、OS的Tcp队列满,用户的请求被拒绝,这时还没有到达Weblogic,所以Weblogic日志中没有任何记录;
                     2、OS的Tcp队列未满,这时用户的请求将会进入Tcp队列:
                         1)Weblogic处理忙,来不及接受Socket,导致连接超时,这时Weblogic日志中同样没有任何记录;
                         2)Socket连接被Weblogic接受进入Request队列;
                     3、Request队列由Thread处理,OS调度Thread,处理Request请求:
                         1)Request请求仍然在队列中,达到超时时间,连接中断,Weblogic日志中会记录错误信息;
                         2)Thread接受Request,进入OS的Thread调度队列;
                     4、Thread队列;
                         1)OS繁忙,队列中的部分Thread会超时中断,这时Weblogic日志中会记录错误信息;
                         2)Thread数量少,OS空闲多。
                 
                     所以,优化并发量,需要遵循下列步骤:
                     1、调整Thread数量,使其与CPU数量相当:
                         1)如果Thread数量《CPU数量,就需要增加Thread数量;
                         2)如果Thread数量》CPU数量,并且延迟很多,就需要减少Thread数量;
                     2、调整OS Tcp等待队列:
                         1)如果客户方出现连接中断,但是Weblogic日志中没有任何信息,就增加队列长度;
                         2)增加幅度:每次增加25%;
                     3、调整程序,减少Thread处理及等待时间:
                         1)分割长事务,划分为多个短事务;
                         2)优化数据库;
                         3)减少远程调用;



    展开全文
  • 1.简介由于J2EE规范的限制,在Servlet和EJB中执行用户自定义的多线程并发与定时器服务一直以来是困扰J2EE开发人员的一个大问题。现在CommonJ项目中的Work Manager和Timer规范将是解决这些问题的一个优秀方法。...

    1.简介

    由于J2EE规范的限制,在Servlet和EJB中执行用户自定义的多线程并发与定时器服务一直以来是困扰J2EE开发人员的一个大问题。现在CommonJ项目中的Work Manager和Timer规范将是解决这些问题的一个优秀方法。

    CommonJ 定时器(Timer)规范提供了一个在Servlet和EJB中设置定时器的简单方法,同时允许在Servlet和EJB中响应定时器的提醒。该规范提供了一个在不能或者不方便使用java.util.Timer环境中使用定时器功能的替代方法。

    现在在WebLogic Server 9.0中已经提供了对Work Manager和Timer规范的支持,在WebLogic Server 7和8中需要使用该项功能请参考这里,xcommonj-work。

    2.定时器的使用办法:

    (1)在web.xml或者ejb-jar.xml中增加定时器的描述:

    timer/MyTimer

    commonj.timers.TimerManager

    Container

    Unshareable

    (2)定义定时器到时间的回调类:

    import commonj.timers.*;

    public class TestListener

    implements TimerListener

    {

    public TestListener()

    {

    }

    public void timerExpired(Timer timer)

    {

    System.out.println("TimerExpired.");

    }

    }

    (3)在其它任何地方启动定时器,并设置定时器的任务即可实现定时功能了。

    InitialContext ctx = new InitialContext();

    TimerManager mgr = (TimerManager)ctx.lookup("java:comp/env/timer/MyTimer");

    TimerListener listener = new TestListener();

    mgr.schedule(listener,4000);//定时器执行一次

    mgr.scheduleAtFixedRate(listener,5000,2000);//定时器周期执行

    //按照日历来执行定时器

    Calendar cal = Calendar.getInstance();

    cal.set(Calendar.HOUR, 12);

    mgr.schedule(listener, cal.getTime());

    展开全文
  • 由于部署在weblogic上的一般来说都是大数据量高并发量的应用,所以性能调优就成了非常重要的一环,本文整理了一些Weblogic性能调优的基本方案供参考。 注:下面的介绍是以Weblogic8.1为例的,其它版本的Weblogic可能...
    

    Weblogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。由于部署在weblogic上的一般来说都是大数据量高并发量的应用,所以性能调优就成了非常重要的一环,本文整理了一些Weblogic性能调优的基本方案供参考。

    注:下面的介绍是以Weblogic8.1为例的,其它版本的Weblogic可能会有些不同。

    1) 设置JAVA参数:

    a) 编辑Weblogic Server启动脚本文件;
    BEA_HOME\user_projects\domains\domain-name\startWebLogic.cmd(startWebLogic.sh on Unix)
    BEA_HOME\user_projects\domains\domain-name\startManagedWebLogic.cmd(startManagedWebLogic.sh on Unix) -这个是做集群的时候用
    b) 编辑set JAVA_OPTIONS命令,如:set JAVA_OPTIONS=-Xms256m -Xmx256m;
    (在UNIX下把MEM_ARGS=”-Xms1024m -Xmx1024m -Xmn128m”加到上述两个.sh文件中即可)
    c) 保存,重启即可。

    注:在WebLogic中,为了获得更好的性能,BEA公司推荐最小Java堆等于最大Java堆。

    2) 开发模式 vs. 产品模式:

    开发模式和产品模式的一些参数的默认值不同,可能会对性能造成影响。下面是对性能有影响的参数列表:
    参数 开发模式默认值 产品模式默认值
    Execute Queue: Thread Count 15 threads 25 threads
    JDBC Connection Pool: MaxCapacity 15 connnections 25 connections

    通过启动管理控制台,在域(如:mydomain)> 配置 > 常规选择产品模式。

    (这个在创建weblogic的domain的时候是有选择的,选择”产品”模式就可以了,如果后期需要修改,可以按照上面的方法修改。)

    3) 尽量开启本地I/O:

    通过启动管理控制台,在域(如:mydomain)> 服务器 > server实例(如:myserver)> 配置 > 调整选择启用本地I/O。

    注:此值也可通过手动的修改config.xml配置文件。

    4) 调优执行队列线程:

    a) 修改默认执行线程数

    在这里,执行队列的线程数表示执行队列能够同时执行的操作的数量。但此值不是设的越大越好。太小了,执行队列中将会积累很多待处理的任务;太大了,则会消耗大量的系统资源从而影响整体的性能。在产品模式下默认为25个执行线程。

    (一般来说,其上限是每个CPU对应50个线程,其按照CPU个数线性增长。)

    为了设置理想的执行队列的线程数,我们可以启动管理控制台,在域(如:mydomain)> 服务器 > server实例(如:myserver)> 监视 > 性能中监控最大负载时执行队列的吞吐量和队列中的等待请求数,据此确定理想的数值。

    理想的默认执行线程数是由多方面的因素决定的,比如机器CPU性能、总体体系架构、I/O、操作系统的进程调度机制、JVM的线程调度机制。随着 CPU个数的增加,WebLogic可以近乎线性地提高线程数。线程数越多,花费在线程切换的时间也就越多;线程数越小,CPU可能无法得到充分的利用。为获取一个理想的线程数,需要经过反复的测试。在测试中,可以以25*CPU个数为基准进行调整。当空闲线程较少,CPU利用率较低时,可以适当增加线程数的大小(每五个递增)。对于PC Server和Windows 2000,则最好每个CPU小于50个线程,以CPU利用率为90%左右为最佳。

    通过启动管理控制台,在域(如:mydomain)> 服务器 > server实例(如:myserver)> Execute Queue > weblogic.kernel.Defalt > 配置中修改线程计数。

    b) 设定执行队列的溢出条件

    Weblogic Server提供给默认的执行队列或用户自定义的执行队列自定义溢出条件的功能,当满足此溢出条件时,服务器改变其状态为”警告”状态,并且额外的再分配一些线程去处理在队列中的请求,而达到降低队列长度的目的。

    通过启动管理控制台,在域(如:mydomain)> 服务器 > server实例(如:myserver)> Execute Queue > weblogic.kernel.Defalt > 配置下面几项:

    ●队列长度:此值表示执行队列中可容纳的最大请求数,默认值是65536,最后不要手动改变此值。
    ●队列长度阈值百分比:此值表示溢出条件,在此服务器指出队列溢出之前可以达到的队列长度大小的百分比。
    ●线程数增加:当检测到溢出条件时,将增加到执行队列中的线程数量。如果CPU和内存不是足够的高,尽量不要改变默认值”0″。因为Weblogic一旦增加后不会自动缩减,虽然最终可能确实起到了降低请求的作用,但在将来的运行中将影响程序的性能。
    ●最大线程数:为了防止创建过多的线程数量,可以通过设定最大的线程数进行控制。

    在实际的应用场景中,应根据具体情况适当的调整以上参数。

    c) 设定执行队列监测行为

    Weblogic Server能够自动监测到当一个执行线程变为”阻塞”。变为”阻塞”状态的执行线程将无法完成当前的工作,也无法再执行新请求。如果执行队列中的所有执行线程都变为”阻塞”状态,Weblogic server可能改变状态为”警告”或”严重”状态。如果Weblogic server变为”严重”状态,可以通过Node Manager来自动关闭此服务器并重新启动它。具体请参考:Node Manager Capabilities文档。

    通过启动管理控制台,在域(如:mydomain)> 服务器 > server实例(如:myserver)>配置 > 调整下可配置下面几项:

    ●阻塞线程最长时间:在此服务器将线程诊断为阻塞线程之前,线程必须连续工作的时间长度(秒)。默认情况下,WebLogic Server 认为线程在连续工作 600 秒后成为阻塞线程。
    ●阻塞线程计时器间隔:WebLogic Server 定期扫描线程以查看它们是否已经连续工作了 “阻塞线程最长时间” 字段中指定的时间长度的间隔时间(秒)。默认情况下,WebLogic Server 将此时间间隔设置为 600 秒。

    5) 调优TCP连接缓存数:

    WebLogic Server用Accept Backlog参数规定服务器向操作系统请求的队列大小,默认值为50。当系统重载负荷时,这个值可能过小,日志中报Connection Refused,导致有效连接请求遭到拒绝,此时可以提高Accept Backlog 25%直到连接拒绝错误消失。对于Portal类型的应用,默认值往往是不够的。

    Login Timeout和SSL Login Timeout参数表示普通连接和SSL连接的超时时间,如果客户连接被服务器中断或者SSL容量大,可以尝试增加该值。

    通过启动管理控制台,在域(如:mydomain)> 服务器 > server实例(如:myserver)>配置 > 调整下可配置”接受预备连接”。

    6) 改变Java编译器:

    标准的Java编译器是javac,但编译JSP servlets速度太慢,为了提高编译速度,可以使用sj或jikes编译器取代javac编译器。下面介绍更改Java编译器:
    通过启动管理控制台,在域(如:mydomain)> 服务器 > server实例(如:myserver)>配置 > 常规下改变Java 编译器,默认为javac。输入完整路径,如:c:\visualcafe31\bin\sj.exe。然后打开高级选项,在预规划到类路径填写编译 Java 代码时为 Java 编译器类路径预规划的选项,如:BEA_HOME\jdk141_02\jre\lib\rt.jar。

    7) JDBC应用调优:

    JDBC Connection Pool的调优受制于WebLogic Server线程数的设置和数据库进程数、游标的大小。通常我们在一个线程中使用一个连接,所以连接数并不是越多越好,为避免两边的资源消耗,建议设置连接池的最大值等于或者略小于线程数。同时为了减少新建连接的开销,将最小值和最大值设为一致。

    增加Statement Cache Size对于大量使用PreparedStatement对象的应用程序很有帮助,WebLogic能够为每一个连接缓存这些对象,此值默认为10。在保证数据库游标大小足够的前提下,可以根据需要提高Statement Cache Size。比如当设置连接数为25,Cache Size为10时,数据库可能需要打开25*10=250个游标。但是,当遇到与PreparedStatement Cache有关的应用程序错误时,需要将Cache Size设置为0。

    尽管JDBC Connection Pool提供了很多高级参数,在开发模式下比较有用,但大部分在生产环境下不需调整。这里建议最好不要设置测试表, 同时Test Reserved Connections和Test Released Connections也无需勾上。 当然如果数据库不稳定,时断时续,可能需要按照上述的参数打开。

    最后是驱动程序类型的选择,以Oracle为例,Oracle提供thin驱动和oci驱动,从性能上来讲,oci驱动强于thin驱动,特别是大数据量的操作。但在简单的数据库操作中,性能相差不大,随着thin驱动的不断改进,这一弱势将得到弥补。而thin驱动的移植性明显强于oci驱动。所以在通常情况下建议使用thin驱动。而最新驱动器由于WebLogic server/bin目录下的类包可能不是最新的,请以Oracle网站为准: http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc9201.html

    8)JSP调优:

    设置jsp-param pageCheckSeconds=-1;
    设置serlet-reload-check=-1或ServletReloadCheckSecs=-1;
    设置jsp-param precompile=true,关闭JSP预编译选项。

    展开全文
  • 默认Connector中没有设置最大并发数:=“假”重定向端口=“8443协议=”还可以打开上述注释,修改“=”25“=”75“默认最小并发数和最大并发数,实现并发控制。假如 4核 8g的weblogic单台的服务器 最大支持多少并发...
  • Weblogic数据库连接池相关参数说明

    千次阅读 2016-10-10 15:52:09
    比较容易混淆的参数解释   1:Inactive Connection Time...这个字段的具体官方解释在10.3.0.0的版本如下,在XX系统中实际反映的情况是,如果该参数设置为30(即:30S)的话,在大并发下会出现weblogic认为的leaked的
  • weblogic JVM初始化配置

    千次阅读 2016-05-11 09:48:32
    域启动模式:建域时选择生产模式,如果用开发模式,并发访问有限 VM运行模式:JAVA_VM=-server ,64位JDK已经默认,32位JDK还是需要设置 内存设置:-Xms4096m -Xmx4096m -XX:PermSize=1024m -XX:MaxPermSize=1024m -...
  • weblogic数据库连接池参数配置详解

    万次阅读 2013-01-06 16:21:34
    比较容易混淆的参数解释   1:Inactive Connection Time...这个字段的具体官方解释在10.3.0.0的版本如下,在XX系统中实际反映的情况是,如果该参数设置为30(即:30S)的话,在大并发下会出现weblogic认为的leaked的
  • weblogic10线程数配置

    2010-01-19 16:50:55
    需要设置并发线程数设置。 根据网上资料,需要在config.xml的server部分配置修改,如下:  &lt;server&gt;  &lt;name&gt;AdminServer&lt;/name&gt;  &lt;execute-queue&gt; ...
  • 1.简介 由于J2EE规范的限制,在Servlet和EJB中执行用户自定义的多线程并发与定时器服务一直以来是困扰J2EE开发人员的一个大问题。现在CommonJ项目中的Work Manager和Timer规范将是解决这些问题的一个优秀方法。 ...
  • tomcat,weblogic,redis等应用优化 一、 tomcat优化 禁用tomcat的AJP协议 在服务状态页面中可以看到,默认状态下会启用AJP服务,并且占用8009端口。...maxThreads:最大并发数,默认设置 200,一般建议在 500 ~ 1
  • 比较容易混淆的参数解释   1:Inactive Connection ...这个字段的具体官方解释在10.3.0.0的版本如下,在XX系统中实际反映的情况是,如果该参数设置为30(即:30S)的话,在大并发下会出现weblogic认为的leaked的...
  • 我不懂weblogic,所以不知道能否调整设置或参数,让weblogic减少生成的log文件,但是仍保留基本的内容让开发能看出大概是什么地方出了问题? 希望有性能测试经验的兄弟指点一二。 [b]问题补充:[/b] [quote=...
  • 4.3.1 并发访问和隔离 198 4.3.2 事务属性 199 4.4 EJB的事务管理 201 4.4.1 容器管理事务(CMT) 201 4.4.2 Bean管理事务(BMT) 201 4.5 事务超时设置 201 4.6 本章小结 203 第5章 JNDI和远程方法调用 204 5.1 JNDI的...
  • 这是怎么回事儿呢,现在想脱离F5(此设备由其它厂商维护,不请楚具体设置),采用直接向WEB应用做并发测试,于由公司的服务器都是普通的PC,并发大了就无响应了,正在积极解决此问题! 在这里发贴是想...
  • 但是在3月份,出现了100会话并发时,系统CPU使用为,大量交易回滚,无法提供正常的ATM终端服务,为此需要对故障进行分析,对系统进行优化,优化系统性能以大幅提高处理能力  1.2 应用环境  WebLogic应用服务器、...
  • 性能调优

    2019-10-08 12:47:59
    由于并发比较大,weblogic数据库连接池没有释放,导致连接池不够用,并发用户大时,连接池不够用处理方法:调整连接池大小,设置最大连接池调整连接池方法:http://172.20.8.50:7017/console Action.c(55): ...
  • 一次性能测试中,使用loadrunner录好脚本,并调试完成、设置好2000并发的负载场景后,压测异常,后来发现是因为系统的外网地址是https协议。当时的情况是,系统外网地址是https协议,而在各个weblogic节点上是http...
  • 211

    2010-04-21 14:07:00
    JAVA参数"-Xms 512m —Xmx1536m 修改为"-Xms 2048m —Xmx2048m 修改 Startweblogic.sh线程线程池的数量应该是估计最大并发数的125%本次测试中发现线程设置为 500-500为佳,线程设置低了会有新线程的生成开销,影响...

空空如也

空空如也

1 2 3
收藏数 52
精华内容 20
关键字:

weblogic设置并发