• 如何对应用服务性能问题诊断(Tomcat、Weblogic中间件)


    在我们web项目中,我们常见的web应用服务器有Tomcat、Weblogic、WebSphere。它们是互联网应用系统的基础架构软件,也叫“中间件”,负责处理动态在页面请求,并为应用提供了名字、事务、安全、消息、数据访问等,此外,它们还是提供应该构建的开发、部署、运行及管理功能。

    当我们对项目做性能测试时,我们如何更好地监控它们,并诊断出性能问题呢?下以是我对Tomcat和Weblogic的一些性能监控分析方法:

    1、  Tomcat性能监控分析

    Tomcat是一个免费的开放源代码的web应用服务器软件,主要用来支持运行Java Servlet/JSP。Tomcat运行时占用的系统资源小,扩展性好,支持负载平衡和邮件服务等开发应用系统常用的功能,而且它还不断的改进和完善中,使用Tomcat作为web应用服务器,在系统应用性能上有很大帮助,以下介绍几种监控Tomcat性能的方法:

    1)  Tomcat自带的监控功能

    使用过Tomcat的人大概都知道,它附带了一个监控页面,先修改配置文件/conf目录下的tomcat-users.xml文件,为监控的用户添加权限,并且需要添加一个名为“manager-gui”的角色,如下:

    1 <role rolename="manager-gui"/>
    2 
    3 <user username="monitor" password="123456" roles="manager-gui"/>
    4  

    保存后,访问http://localhost:8088/manager/status,如图,可查看Tomcat性能情况

     2)  用LambdaProbe监控Tomcat

    网上下载probe压缩文件,http://www.lambdaprobe.org/ 解压后,可以看到有个probe.war文件,接着需要修改两个文件

    a、修改tomcat下conf/ tomcat-users.xml文件,添加如下代码:

    1 <role rolename="manager"/> 
    2 <role rolename="poweruser"/> 
    3 <role rolename="poweruserplus"/> 
    4 <role rolename="probeuser"/> 
    5 <user username="probe" password="123456" roles="manager,probeuser,poweruser,poweruserplus"/>
    6  

     b、修改tomcat下bin/Catalina.bat文件,添加如下代码:

    set CATALINA_OPTS=-Xms512m -Xmx1024m -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=29001 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
     

     启动tomcat后,访问http://localhost:8088, 输入用户名:probe,密码123456,登录后,

    在页面中“WAR file to deploy”点击“浏览”将probe.war文件发布到tomcat应用中

     访问http://localhost:8088/probe/,查看tomcat实时运行的应用程序的性能,如图

     3)  LoadRunner编写脚本实现Tomcat性能监控

    LR不支持直接监控Tomcat,但是可以在VUGen中编写脚本来获取性能数据,其实是编写大量的关联函数web_reg_sava_param()及lr_user_data_point函数,例如:

     1 double atof(const char *string);
     2 
     3 extern char * strtok(char * token, const char * delimiter);
     4 
     5 collectMetrics(){
     6 
     7 int countP, counts,  countF, countF, countR, countK;
     8 
     9 int numValues;
    10 
    11 static int loggedVersionInfo = FALSE;
    12 
    13 lr_save_string(“127.0.0.1”,”ServerName”);
    14 
    15 web_set max_html_param_len(65565);
    16 
    17 web_set_user(“admin”,”admin”,”{ServerName}”);
    18 
    19 lr_start_transaction(“monitor tomcat”);
    20 
    21 web_reg_save_param(“JVMFreeMemory”,”LR=Free memory”,”RB=MB”,”Ord=1”,LAST);
    22 
    23 略……………这里添加多个监控指标
    24 
    25 Lr_end_transaction(“monitor tomcat”,LR_AUTO);
    26 
    27  
    28 
    29 写入Tomcat JVM度量数据
    30 
    31 Lr_user_data_point(“Tomcat JVM Free memory”,atof(lr_eval_string(“{JVMFreeMemory}”)));
    32 
    33 }
    34  

    然后在Run-time中设置数据收集的间隔“pacing”,最好设置在5-10s,最后在Controller中设置脚本运行,场景运行完毕后,在Analysis分析结果图标中添加“User Defined Data Points”,查看收集到的Tomcat性能数据。

    4)  JMX监控Tomcat

    使用JMX监控Tomcat,需要编写JMX提供接口的实现类,该接口是任何java程序都可以调用访问的,编写java程序来收集Tomcat性能数据,在此就略过啦!

    5)  优化JVM提高Tomcat性能

    a、  修改Tomcat启动/最大时的运行内存来监控性能指标的影响,即修改bin/Catalina.bat文件;

    JAVA_OPTS=-Xms512m -Xmx1024m

    b、  修改conf目录下server.xml文件maxThreads的值来调整Tomcat的最大连接线程数;

    c、  同上,修改connectionTimeout的值来调整连接超时数;

    d、  同上,修改acceptCount的值来调整最大排队数;

     2、  Weblogic中间件监控性能分析

    a、  在weblogic控制台页面调整Session策略;

    b、  JDBC连接数监控及参数的调整,如Initial Capacity、Maximum Capcity等;

    c、  JVM监控分析,可设置JVM启动时的参数;

  • 相关阅读:
    java基础-代理模式
    java基础-反射(细节)
    java基础-反射
    设计模式之单例
    23种设计模式汇总整理
    dialog--not attached to window manager
    java之设计模式
    android-sdk和api版本
    studio之mac快捷键
    控件之ReleLayout属性
  • 原文地址:https://www.cnblogs.com/luihengk/p/3763383.html
Copyright © 2020-2023  润新知