设为首页 收藏本站
查看: 718|回复: 0

[经验分享] Weblogic应用服务器性能监控--笔记(1)

[复制链接]
发表于 2017-2-17 12:32:47 | 显示全部楼层 |阅读模式
一、             深入理解Java虚拟机
JVM是一个用来模拟实际机器的计算机软件
JVM解释并运行Java语言编译后所形成的中间码
微软虚拟机曾经最快
Android也有虚拟机(不遵循sun的规范)
 
 
一次编译,多次运行(跨平台)、but still needs jvm form different platforms
 
²        Jvm内存分配
1、  heap: 对象
2、  stack: 变量(在针上面,并指向堆中的对象,执行完pop出去)
3、  代码区:常量、类及其定义
 
C语言内存泄露(问题在栈stack
GC(垃圾回收,同时带来负担,调优调GC
GC收集是一个将程序不再使用的对象实例自动销毁并释放其所占用的资源的过程
垃圾收集只针对堆(heap)里的对象
 
Java平台的垃圾收集使程序员不需要手动管理对象的销毁过程,简化了开发,减少了造成内存泄露的可能。
 
Jvm的监控器:在bin中有诊断工具,jVisualVm.exe监控虚拟机运行情况
 
垃圾回收时间合理应控制在<5%
 
要不断的测试以调优性能。
要用大量的数据来发现问题。
 
²        垃圾收集方法的发展
1、  引用计数器法(有引用时加1,没引用时减1,检查堆中的对象的引用计数是否为0,是则释放掉。同时看GC什么时候运行。)
堆如果越大,GC要先扫描,则扫描时间更长。GC扫描时,会造成系统长时间的停顿。
 
优点:简单易用,速度快,CPU消耗低
问题:内存碎片问题(无法解决的)、堆越大时间越多、循环引用(如:双向链表,可扩展的集合。在树状列表,无法解决;对象a引用b,b引用c,c引用dd引用a;引起内存泄露)
缺点:不能循环引用
 
 
2、  对象图法
对象引用遍历从一组对象开始,沿着整个对象图上的每条链接,递归确定可到达(reachable)的对象。如果某对象不能从这些根对象的一个(至少一个)到达,则将它作为垃圾收集。
 
步骤:
1.       标记(浏览对象图,并作标记,比较耗时)
2.       清除(删掉有删除标记的。)
3.       压缩(整理内存的过程,搬动内存的地址,匀出大块内存出来)
PS:不同虚拟机实现不同。安排不同的时间去安排工作。
 
优点:克服引用技术的缺点。解决循环引用。
缺点:执行速度较慢;会导致其它线程停顿。
(压缩的时候会独占,要重新赋值,其它线程不可以跑,导致整个虚拟机停顿。)
可能会同时运行。
 
S1=null;
 
 
 
 
对象图法实现
1)  复制收集器(把声明的堆空间分成两半,当发现不够用时,把所有需要使用的对象按顺序搬到另一半b,原来的一半a则剩下的全是不用的,则删除,然后b再搬回)
问题:内存空间增长很快且不可消除时,如cache。利用率高,搬动无意义。
不可回收的对象增长得很快,本来分配1G,但因为分两半,实际可用512M,可能更快内存溢出。
适用性:存在大量临时性的占用内存的情况。
 
2)  增量收集器:分块收集,平均分成多少块,每一块均等。
3)  分代收集器:在前两种之后提出的方法。在上面的基础之上。
基础要点:每一块对象不同,在分块收集的前提下,某一块可能存放某一特征的对象。来减少垃圾回收的频度。
分成三块:大小不一样,每一块里边实施不同的算法,每一块收集不同类型的对象,新对象永远产生在第一块,可能:第一块1/4,第二块1/2,第三块1/4
第一块:可以简单的扫描算法(如引用计数算法),当第一块不够用时,则作一次扫描,则使用复制方法将“还需要用的”放到第二块中。则这时第一块可以清空。这样,第23块不需要使用垃圾收集。当第2块满时,则作一次更详细的扫描,再调到第3块(第3块则是很长时间存在的,一般会一直存在。)
如果第3块也满了,则要3块作一次整的垃圾收集了。
 
 
分代:集合了增量和复制收集的方法。减少垃圾收集的频度,减少对用户使用的影响。
 
 
 
         堆如何进行分代的
有如下三种区域:使用不同的算法,运行效率不一样。
1)  年轻
2)  老年
3)  永久
java -jar tune_t001.jar 10000
 
 
 
二、JavaEE架构
1、  jdbc
1)  它是第一个面向企业的应用。
2)  Java ee 应用中非常重要的
3)  其性能好坏常常决定整个系统的性能
 
Application àjdbc api)àJDBC Driver(规范)à上层Api、下层api
除非你知道数据库文件的格式及读取方法,才可绕过jdbc这一层。
 
2005年企业级系统不成熟,存在很多系统问题,容易down机或性能差。
再后来,框架成熟。
 
Weblogic里调优,通过datasource来访问数据库,拿到我们的连接,再去访问数据库。
在这样的情况,weblogic才提供相应的监控手段。
如果对oracle熟悉,可以不用上面的,可以用oracle本身的监控工具。
 
可能问题:
1、  数据库连接不释放。(很容易监测,可以监测连接数,可以直接看oracle的连接数情况,max conection,现在很多orm框架(hibernate,ibatis)可以避免这个问题。
2、  连接缓冲池
3、  过于依赖数据库(用户使用页面,在什么页面放什么广告,
文件和数据库的性能是100倍的,静态化)
facebook,他们不用数据库,性能太差。
 
 
²        JNDI
问题:
1、  依赖网速带宽
2、  查找和认证用户时间比较多
 
 
²      JTAjava transaction api
需要跨越数据库的支持时,需要用到jta,属于global数据库,平常我们用的是local数据库
JPS:每秒事务数(loadrunner自己制定的事务数)
TPS:和上面是两回事

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-343501-1-1.html 上篇帖子: WebLogic Server高级管理之六:集群下的JMS配置 下篇帖子: ibatis与weblogic的jndi配置问题,犯了愚蠢的错误,希望对需要的人有用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表