前段时间客户方一个系统上线后出现性能问题,就是查询报表的时候出现宕机现象,应项目组要求过去帮忙测试优化问题。
  该项目的架构相对比较复杂,登录后要先进行认证服务器认证用户然后登录到应用系统A,在跳转到应用服务器B进行业务操作,如果有涉及到查询历史数据等需要使用到查询报表的,就要再次跳转到cognos服务器,然后从数据库中捞取数据,因为项目人员只是说登录很慢,而且应用系统也很慢,有时会内存溢出,经常重启,但是没说明是哪里出问题,所以对问题的定位分析确实很麻烦。
   于是只能逐层剥离测试分析方式来对各层次服务器进行问题定位分析解决。
  1、先测试挖掘分析web服务器问题,通过简单的测试系统登录退出,定位解决了apache配置问题。
  2、认证服务慢的问题是存在,但是是另外一个系统问题,所以不做任何优化修改。
  3、本项目的应用服务器问题诊断分析,通过测试一些交易类型的不跟报表打交道的业务功能点发现weblogic的JDBC、JVM等配置方面的问题,但是这时只能说发现问题,虽然JDBC调整大小可以解决连接数问题但是JVM设置问题,还需要考虑业务模型测试模型配比进行调整,因为报表展现的数据需要加载到应用JVM然后在展现出来,所以这方面的调整只能综合场景测试,才能进行分析优化调整。
  
  4、cognos服务配置测试诊断分析,通过测试查询报表数据,进行测试应用、报表展现分析问题,cognos的相关参数配置,如cognos Sort buffer size、CQEConfig.xml修改、最大进程数调整等进行调整然后针对JVM进行调整。
 
  4、数据库问题,在测试过程没有发现SQL写法问题,引发数据性能问题都是数据库缓存配置问题引发的,报表服务器的数据库是可以适当把缓存参数设置大一些,提高性能,如数据缓存、高数区缓存等配置,提高数据命中率等问题。
  5、JVM的配置差异性:虽然都是使用同种类型的linux操作系统和硬件配置,同样使用jrockit JDK,但是面对的处理的技术和业务逻辑的差异性,导致对JVM配置也相应有一定的差异,如应用服务器是面对不只是报表数据展现也有管理类交易的而cognos服务器是针对数据的展现,如果历史数据的查询展现等为主,所以应用服务器和报表服务器对于的JVM配置方式不能设置一样,如 应用服务器JVM配置如 -Xms1024m -Xmx1024m -Xns:256m -Xgc:gencon
  而报表服务器配置-Xms1024m -Xmx1024m -Xgcprio:throughput  –XnoOpt -Xverify:none,在测试过程中性能最佳。 –XnoOpt -Xverify:none这两个参数的使用虽然有测试过是否加入会影响性能,但是这两个参数的真正意义原理不是很了解。
  6、应用展现设计问题,如查询类的不同机构的查询默认情况下,登录页面后都会把所有机构的数据展现出来,经讨论开发的改为该机构的用户只能展现本机构的机构以及下级机构的数据。  而不是设计而所有的一级行机构都展现然后在根据权限问题查看只能查看本机构的数据。而且也是要用的时候才去展现机构树,而不是每次登录都刷新展现加载一次。
 
  经这些调整后响应时间从10个用户五十几秒,到50用户报表生成响应时间4.46S。

cognos服务器性能测试诊断分析优化过程记录的更多相关文章

  1. 执行3小时超长SQL的分析优化过程:从索引遇见IS NULL,到最佳实践

    月底高峰期,对一个典型项目抽查分析时,发现了一个超级慢.全表扫描的SQL,语句很简单,AWR中赫然在列,在我统计的截止时间内还没有结束... 使用v$active_session_history进一步 ...

  2. 服务器上安装caffe的过程记录

    1. 前言 因为新的实验室东西都是新的,所以在服务器上要自己重新配置CAFFE 这里假设所有依赖包学长们都安装好了,我是没有sudo权限的 服务器的配置: CUDA 8.0 Ubuntu 16.04 ...

  3. 使用百度云服务器BCC搭建网站,过程记录

    1.买了个最低端的百度云云服务器:1G内存+1核+40系统盘,获得一个静态服务IP地址,之前在阿里那边买个一个域名,在百度云备案一下,通过后就可以正常解析,把域名和IP对应起来了,主要目的是熟悉一下整 ...

  4. 【JVM】JVM优化过程全记录

    请大神移步:https://segmentfault.com/a/1190000010510968?utm_source=tuicool&utm_medium=referral 今天看JVM群 ...

  5. 性能测试平台效率优化的一次经验(python版)

    在做性能测试平台的优化过程中,由于启动任务相对其他测试任务比较频繁,而目前30次两个包的交叉对比(30次)测试需要耗时30分钟整,因此打算优先对测试流程做一次优化,将测试时间消耗降低到20分钟. 由于 ...

  6. 详解服务器性能测试的全生命周期?——从测试、结果分析到优化策略(转载)

    服务器性能测试是一项非常重要而且必要的工作,本文是作者Micheal在对服务器进行性能测试的过程中不断摸索出来的一些实用策略,通过定位问题,分析原因以及解决问题,实现对服务器进行更有针对性的优化,提升 ...

  7. 高性能Linux服务器 第10章 基于Linux服务器的性能分析与优化

    高性能Linux服务器 第10章    基于Linux服务器的性能分析与优化 作为一名Linux系统管理员,最主要的工作是优化系统配置,使应用在系统上以最优的状态运行.但硬件问题.软件问题.网络环境等 ...

  8. 基于Linux服务器的性能分析与优化

    作为一名Linux系统管理员,最主要的工作是优化系统配置,使应用在系统上以最优的状态运行,但硬件问题.软件问题.网络环境等的复杂性和多变性,导致了对系统的优化变得异常复杂,如何定位性能问题出在哪个方面 ...

  9. 性能分析之TCP全连接队列占满问题分析及优化过程(转载)

    前言 在对一个挡板系统进行测试时,遇到一个由于TCP全连接队列被占满而影响系统性能的问题,这里记录下如何进行分析及解决的. 理解下TCP建立连接过程与队列 从图中明显可以看出建立 TCP 连接的时候, ...

随机推荐

  1. 史上最轻松入门之Spring Batch - 轻量级批处理框架实践

    从 MariaDB 一张表内读 10 万条记录,经处理后写到 MongoDB . Batch 任务模型 具体实现 1.新建 Spring Boot 应用,依赖如下: <!-- Web 应用 -- ...

  2. java中的无穷大和无穷小

    double型和float型都可以如下表示无穷大和无穷小 import static java.lang.Double.NEGATIVE_INFINITY;import static java.lan ...

  3. recovery模式差分(增量)升级小结

    最近在做recovery模式下的升级,简单的总结一下. 先说说recovery模式,他是个升级小系统,有单独的kernel,通过特定的系统命令就可以进入到此系统中,选择进入正常系统的kernel还是r ...

  4. Java基础(三十二)JDBC(2)连接数据库

    一.连接数据库的过程 连接数据库的过程:加载数据库驱动程序,不过只需在第一次访问数据库时加载一次,然后在每次访问数据库时创建一个Connection实例,然后执行操作数据库的SQL语句,并返回执行结果 ...

  5. fenby C语言 P18

    #include <stdio.h> int main(){ int i; for(i=1;i<=15;i++) { if((i%2==1)) { printf("%d\n ...

  6. spring boot 面试题详解

    1.什么是springboot 用来简化spring应用的初始搭建以及开发过程 使用特定的方式来进行配置(properties或yml文件) 创建独立的spring引用程序 main方法运行 嵌入的T ...

  7. zabbix导入数据库报错1046 (3D000) : No database selected

    Zabbix导入数据库时报错 使用如下命令导入Zabbix数据库时报错 zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -u ...

  8. 获得shell的几种姿势

    windows提权 1.通过sqlmap连接mysql获取shell (1)直接连接数据库 sqlmap.py -d "mysql://root:123456@127.0.0.1:3306/ ...

  9. 关于生成器generator

    generator:个人认为是产生值的,和列表生成式类似,但是比列表生成式更加节省空间 我们平常自己构造的函数中,一般返回值时都会使用return,在generator中,我们使用的是yield yi ...

  10. Python文件处理:创建、打开、追加、读、写

    在Python中,不需要导入外部库来读取和写入文件.Python为创建.写入和读取文件提供了内置的函数. 在本文中,我们将学习 如何创建文本文件 如何将数据附加到文件中 如何读取文件 如何逐行读取文件 ...