zoukankan      html  css  js  c++  java
  • 一次数据仓库报表测试(1)

    1.背景

    最近宝路接到了一个数据仓库报表POC的压测任务(就一个厂商为啥还叫POC….有点滑稽),本次记录下测试过程中遇到的问题及分析问题的思路。

    2.测试环境架构图

    image

    发压策略:LR模拟业务人员->>某BI报表系统->>PostgreSQL集群3.遇到的问题

    3.问题及分析

    往PostgreSQL集群节点存放文件

    PostgreSQL集群四台server是由一个管理节点进行统一管理的(宝路所使用的压力机无法直接链接),往目标服务器存放nmon监控文件就犯难了,即使用xshell从管理节点跳转到PostgreSQL节点(没有安装ftp),在使用xftp打开的仍然是管理节点传输文件窗口。

    解决方法:使用scp命令

    scp nmon admin@192.168.1.111:nmon  (在管理节点上执行,将nmon文件copy到指定服务器用户名目录下)

    scp admin@192.168.10.111:baobiao1_10vu.nmon /home/admin/baobiao1_10vu_111.nmon  (把nmon结果文件从远程主机copy到当前用户目录下并重命名)

    压测过程中遇到GC导致的问题

    单交易负载测试过程中遇到了GC回收到导致的STW现象,来看一张xxBI 服务器资源消耗图:

    baobiao3_20vu

    在场景执行约9分半时发生了FUll GC,GC后CPU骤降,磁盘逻辑读翻了几倍。当前场景停止后,继续重跑此场景,xxBI 服务器资源消耗图:

    baobiao3_20vu_new

    。。。。再来看下LR的TPS趋势图:

    image

    action中的报表查询事务一笔都没有执行。。。。

    不同的报表宝路都做了多次尝试都存在这个问题,那么是什么导致的呢?

    1. 第一感觉还是GC,比如垃圾回收器用的不合理,像这种大内存,建议采用G1垃圾回收器(具体为啥G1垃圾回收器合适以后专门给大家写文章来讲GC那些事),一般常用的是parNew+CMS,试想发生FULL GC时,新年代+老年代的垃圾对象总大小是非常大的,这就造成很长时间的STW现象。
    2. 如果xxBI系统就是采用的G1,发生FULL GC 后,讲道理场景重新执行,TPS也不会没有值。最大的可能是GC后,导致缓存失效了,此时我们的压测脚本采用的是匿名登陆(就是把压力机的IP配置到xxBI的白名单,访问报表就不需要登录了),怀疑此功能暂时失效。宝路尝试使用户正常从浏览器登陆xxBI系统进行查询报表,能正常查询,退出系统后查看任务管理器,CPU消耗约30%,嗯?此时并没有进行压测,这是为啥?猜测可能是这个操作触发了缓存。等CPU降下来后,再进行复测TPS曲线正常,再长时间压测就又出现FULL GC,然后。。。。。。

    最后还是需要xxBI厂商的人来排查这个问题,其实最开始时就有这个现象,可碰巧那天PostgreSQL集群的人调整了内存相关参数,PostgreSQL集群的负责人把参数还原后,复测仍然有这个问题。

  • 相关阅读:
    Linux下命令设置别名--alias(同实用于mac)
    mac 下配置连接Linux服务器方法,上传下载文件操作
    Jdbc和工具类
    MySQL和数据库
    validate和bootstrap学习
    jQuery学习
    JavaScripe学习
    CSS学习
    HTML学习
    Metail Design入门(一)
  • 原文地址:https://www.cnblogs.com/leebaul/p/11485581.html
Copyright © 2011-2022 走看看