weblogic调优

    写这篇文章是因为今天旁听了一课,觉得学到了不少,应该记录一下。

    其实优化应该基于压力测试结果来进行,但是下面几项可以提前做。

一、jvm启动参数

         -Xms1024m -Xmx1024m -XX:PermSize=512m  -XX:MaxPermSize=512m

         搞java开发的对这几项参数大家应该眼熟吧?说来惭愧,以前只知道加这些参数就不会导致内存不足,但是对其含义并不明白。今天总算明白了,这里我也再说明一遍,不正确的地方还请大家指正。 

         -Xms -Xmx 这两个参数是jvm创建对象时所占用的最小最大内存,一般建议他们俩设成一样的,并且是1024m,为什么呢?因为当java对象占用的内存达到这个最大值时,会进行强制GC,也就是内存回收。可能大家会认为这个内存越大越好,大一点确实有好处,这样强制GC的周期可能会长点,比如设置4096m的内存,假设系统要1小时才进行一次GC,而1024m 15分钟可能就进行一次GC,但是进行GC时系统会有一定时间的延迟,延迟时间跟内存大小有很大关系,假如4096m的内存GC完成需要10秒,但是1024m可能就2-3秒,虽然看上去差不了多少,但是对客户体验是非常重要的,比如一个业务平常只要3秒,但是碰到系统进行垃圾回收这个点,太长时间的等待会让客户产生疑惑。

         -XX:PermSize  -XX:MaxPermSize这两个参数的作用请参见Jon Masamitsu's Weblog 因为本人英文不好,怕翻译不准确,误导大家。但总得来说它存放的是不会被GC回收的内容,比如类的方法,类的名字等等。这个参数建议也是一样大,512m足矣,如果还不够就需要看看是不是程序有问题。

        当然设置上面两个参数还要结合实际的物理内存来考虑,另外特别要注意还要加上jvm本身占用的内存。

二、初始线程池

       -Dweblogic.threadpool.MinPoolSize=50 -Dweblogic.threadpool.MaxPoolSize=100

      这两个参数是设置Weblogic最少最多线程数,初始状态是5,太少了!这个值是根据CPU的核数来定的。具体计算公式我也不太清楚,个人认为核数*10应该行了,太多浪费资源,而且CPU性能反而下降,因为在他们之间调度是有损性能的。

三、初始连接池

       注意这不是线程池!连接池的作用大家也应该清楚了,就是在程序需要用到数据库连接的时候可以直接从连接池里拿来用,而不需要先建立连接,再去请求数据库,这样效率会提高很多。weblogic初始值是1,最大容量是15,容量增长是1。这样的设定大多数也是不合理的!视应用的访问量和数据库的连接上限而定,我们可以适当把初始量加大,比如10,最大容量我们加到50,容量增长每次增长10。这里要特别说明一下容量增长这个值,一般不建议使用默认的1,因为高峰的时候,当初始连接用完了,weblogic会去向数据库申请新的连接,如果每次增长1,那效率无疑会受到严重影响。所以建议一次多取点。

       设置这个参数特别要注意的地方,假如是集群的话,要根据数据库连接上限合理设置最大容量,比如有10台Server,数据库连接上限是500,那么每台最多有50个连接。

       连接池里还有个参数:语句高速缓存大小。它相当于PreparedStatement???这个我不敢确定,请大家指教。但是可以肯定的是,数据库对于这个东西跟连接一样是有上限的,如果是集群,更加要注意,因为它的理论数量是:连接最大容量*语句高速缓存大小*Server数。比如连接最大容量50,高速缓存大小10,10台Server,那么总共就有50*10*10 = 5000的预处理语句,这一般是数据库的上限了,所以这个参数要根据这个三者来权衡设定。

        另外还要提到这个驱动程序类名称这个参数,带有XA字眼的是用于分布式事务的驱动包(比如oracle.jdbc.xa.client.OracleXADataSource),但是它性能要差一点,如果应用里没有用到如JTA或者EJB这些分布式事务的东西,那么这个驱动需要换掉。

       高级设置里有个保留时测试连接,这个默认没有勾上。实际上建议勾上。虽然每次执行SQL之前会先执行这个sql(严格来说不是每次,它是有频率的,可以设置),但是它对性能的影响可以说是微乎其微,但是好处多多。比如你一个连接失效了,它会重新获取一个新连接,而不会傻乎乎的拿来用,但是报500错误。又比如数据库服务器宕机了,随后又恢复过来,如果没有勾选这个参数,那么应用服务器还是认为数据库无法连接,那么你可能需要重启服务器。但是勾选它则不需要了。

四、不要轻易改动设置

        因为weblogic出厂时已经把参数调到适当了,所以不需要太多的改动,还是开始的那句话,需要结合压力测试来调优

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WebLogic 是一个功能强大的企业级应用服务器,它具有以下优势: 1. 可靠性和稳定性:WebLogic 提供了高度可靠的运行环境,具备故障恢复能力和高可用性。它能够处理大规模的负载,并且在面对高并发和复杂业务场景时表现稳定。 2. 扩展性:WebLogic 支持水平和垂直扩展,可以根据需求动态调整服务器集群的规模。它能够处理大量的并发请求,保证系统的可扩展性和弹性。 3. 安全性:WebLogic 提供了多层次的安全机制,能够保护应用程序和数据的安全。它支持各种身份验证和授权机制,包括基于角色的访问控制、SSL 加密、单点登录等,确保应用程序在网络环境中的安全性。 4. 高性能:WebLogic 通过优化和调优技术,提供了高效的请求处理和资源管理。它支持多线程和连接池技术,能够快速响应用户请求,并提供良好的性能表现。 5. 多样化的功能:WebLogic 提供了丰富的功能和工具,包括事务管理、集群管理、缓存管理、消息队列等。它还支持多种编程语言和开发框架,如Java EE、Spring、Hibernate等,使开发人员能够快速构建复杂的企业级应用程序。 总之,WebLogic 是一款成熟、稳定、安全且功能丰富的应用服务器,适用于企业级应用的开发和部署。它能够满足高可靠性、高性能和高扩展性的需求,是许多企业选择的首选解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值