免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 无风之谷
打印 上一主题 下一主题

[WebLogic] 中间件WebLogic/Tuxedo/GoldenGate的排错与优化(获奖名单已公布) [复制链接]

论坛徽章:
0
21 [报告]
发表于 2012-02-15 09:46 |只看该作者
很好,感谢戴老师为我们解答疑惑,大力支持一下!

论坛徽章:
71
15-16赛季CBA联赛之同曦
日期:2018-08-23 15:41:42辰龙
日期:2014-08-15 09:07:43狮子座
日期:2014-06-03 13:55:33亥猪
日期:2014-06-02 11:17:08巨蟹座
日期:2014-05-06 10:02:03午马
日期:2014-05-04 08:18:27亥猪
日期:2014-04-29 11:11:32技术图书徽章
日期:2014-04-24 15:51:26技术图书徽章
日期:2014-04-17 11:01:53辰龙
日期:2014-04-15 12:45:46亥猪
日期:2014-04-11 09:06:23射手座
日期:2014-04-01 15:28:10
22 [报告]
发表于 2012-02-15 09:51 |只看该作者
请问楼主OOM级别级别如何处理?

论坛徽章:
0
23 [报告]
发表于 2012-02-15 09:52 |只看该作者
好活动,支持!

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
24 [报告]
发表于 2012-02-15 10:00 |只看该作者
好活动,支持一下.对中间件不熟悉

论坛徽章:
0
25 [报告]
发表于 2012-02-15 10:26 |只看该作者
回复 22# zhaopingzi

谢谢提问,这个问题涵盖的范围有些大,所以在《WebLogic实战》连续的第16/17/18章都是相关内容。

总体而言,几个注意要点:
1. 最简单的,JVM本身开的空间即不够,可以调节起始值-Xms和最大值-Xmx;32位的经常还需要调节操作系统参数才能将分配给JVM的内存扩上去;不过这里面有些杂七杂八的小技巧:
(1) 在一般的JDK实现中,在生产环境多将两个值设成一样以提高性能;
(2) 但在IBM的AIX生产环境下,反而需要设成不一样来优化内存碎片,因为它的实现不是基于标准的代的概念,而是P簇/K簇这样的思路;
(3) 在HP的UX环境下,通常随着这两个参数不同,会自适应触发出不同的进程模式,所谓q3p,q4p等,可用最大Heap空间大小是变动的。

2. 另外,在大多数JDK实现中,一般会保留一个相关的各种Class的代码段,通常所说的Permanent区域,也可能是这个不够;因为它不参与垃圾回收,所以需要给出足够的空间;

3. 再者,由于JVM顾名思义,是虚拟机,所以不会象硬件CPU一样,有ALU,有AX/BX/PC等诸多寄存器和运算器,所以其映射为一个个Frame帧来模拟,如果Frame链的空间不够,多半会体现在堆栈溢出上;

4. 当然,最常见的还是内存泄漏,需要捕获内存镜像(多次最好),比如JDK自带的命令Jmap等,然后用工具分析,MAT/HA等,这个需要实际处理的经验,就象医生看X光片一样:
(1) 找内存占用最大的几个部分;
(2) 找内存占用变化最大的几个部分;

5. 还有比较隐藏比较深的,比如内存碎片,虽然整个Heap的空余空间绰绰有余,但还是报内存不够,主要起因于空闲内存空间不连续,就象以前硬盘小做磁盘整理时,星星点点的红色区域无法移动一样;

6. 此外,象JMS/EJB等,或者应用上,大规模的对象申请和占用,都会容易触发该类问题,在GIS系统,基于WLI/OSB的工作流和业务系统都容易碰到。

   

论坛徽章:
0
26 [报告]
发表于 2012-02-15 13:34 |只看该作者
好活动,支持啊~~

论坛徽章:
0
27 [报告]
发表于 2012-02-15 13:42 |只看该作者
【常见的中间件调优手段】
1、在什么情况下,我调整AdminServer的启动参数能够达到性能优化的目的?比如说,当AdminServer管理的节点服务器数很多?要部署的应用很大?
2、当我在console中,对某个节点服务器执行shutdown操作时,节点迟迟不能被停掉,后台log中会打出一些thread dump日志,这是什么原因?
3、我的环境是AdminServer通过node manager对节点服务器进行管理,对应后台的.out为标注输出日志,如果节点服务器一直运行,该.out日志会持续不断增大,如何对weblogic的日志进行优化?

论坛徽章:
0
28 [报告]
发表于 2012-02-15 14:41 |只看该作者
本帖最后由 三人行必有吾师 于 2012-02-15 15:03 编辑

回复 27# jqm2009

谢谢,这些在书中相关章节部分都有涉及。

总体来看,贵方应该采用的是多个WebLogic实例组合工作的模式,而不是单实例Standalone(即就一个单Admin Server,并在其上部署所有应用);这种情境下,业务主要跑在Managed Server上,Admin Server更偏向于管理功能和监控接口。这时,对于Admin Server调优的目标要很明确,不是按照常规网路上的文章,所谓优化线程,优化连接池等等;而是要去优化各服务器间的通讯和同步,防止Admin Server和各个Managed Server之间的阻滞,以及各个实例间同步的消耗;以前在极端情况下,真实的大型客户系统,由于前面F5的分发紊乱,Sesssion来回复制和迁移,导致每个实例一半的CPU都耗在同步上了,整个系统响应迟滞或不能正常快速登入;

可以:
(1) 给小的内存和线程资源,避免过多的浪费和内耗,毕竟不怎么跑业务;
(2) 采用Multicast,而不是Unicast,因为局域网上Multicast充份利用了以太网总线机制载波监听的特点,一组数据单点发布,其余各节点并行收到(IGMP隧道技术暂不在此讨论之列);用Unicast,其实就是个轮询,内部写了个循环,点对点挨个通讯一遍;
(3) 如果都在防火墙后,可以关闭Server之间的加密,比如t3s协议,比如Server间证书校验;
(4) 所有可以优化RJVM通讯的地方;比如控制台上关于协议那一页的参数;

还有,应用大小,对于从Admin Server发布到Managed Server的Stage模式,的确是会比较敏感;如果有条件,可以用non-stage或external-stage,否则光系统启动就得半天,忙着拷数据啊。我记得以前有个大客户,用Portal门户,而且带文件和图片上载功能的,发现系统越跑越慢,一年后启动一次要半个小时;结果一跟踪一看,历史图片文件都上N多了,启动时一直不断的从Admin Server在往Managed Server上发布呢

至于通过Node Manager,节点宕掉缓慢,一般有还在同步各Server间的状态,包括JNDI信息的;还有就是这个Managed Server自己运行状况出问题了,我估计那个Thread Dump是一些异常堆栈吧?需要看到这个,就比较明确了。一般而言,除非是主动触发了Thread Dump,或者内存方面的问题Managed Server挂掉了,JVM不会自己打出个完整的Thread Dump清单出来。如果真是down不下来,而其日志里又有完整的Thread Dump,很多情况下这个Managed Server已经提前挂了,而其中OOM的比率又比较高。

至于日志文件,看来不是指WebLogic自己的Server日志和Domain日志,那两个可以调节滚动机制的,比如按时间滚动,或者按大小滚动,保留多少个,等等。。。也可以调整日志输出级别来调整日志输出量的大小;应该是指把标准错误,标准输出到文件的输出日志,通常写法为"2>&1 1>xxx.out”,这个属于操作系统层面管理的,比较好的做法是,写个脚本定时备份和清理即可,比较简单,用“>”清空;“>>”追加。

论坛徽章:
0
29 [报告]
发表于 2012-02-15 15:09 |只看该作者
非常感谢您的解答。
我们的环境使用的是的JDK是jrockit-jdk1.6.0_20-R28.1.0-4.0.1,在启动脚本中是这样配置的MEM_ARGS="-Xms4096M -Xmx4096M -Xgc:gencon -Xns512M " ,不知道您推荐的怎样的参数配置?

论坛徽章:
0
30 [报告]
发表于 2012-02-15 15:58 |只看该作者
本帖最后由 三人行必有吾师 于 2012-02-15 16:04 编辑

回复 29# jqm2009

您好:谢谢!

如果仅就内存参数的讨论范围而言,这个值用在一个Managed Server上可能是合适的,但如果用在一个没有部署什么应用的Admin Server上就实在是浪费了。。。因为那些参数里指定了初始最小和最大的Heap相等是4G;用了普通的分代并行算法,Nursery大小为512兆(其实就是Young区);

如果是个单纯干净的Admin Server,给1G甚至更小就足够了,即-Xms1024M, -Xmx1024M

   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP