zoukankan      html  css  js  c++  java
  • nGrinder 架构

    转载:https://blog.csdn.net/yhfmj123/article/details/80318887

    nGrinderr(version: 3.4.1)是NAVER(韩国最大互联网公司NHN旗下搜索引擎网站)开源的性能测试工具,直接部署成web服务,支持多用户使用,可扩展性好,可自定义plugin。

    nGrinder 是一款在一系列机器上执行 Groovy 或 Jython 测试脚本的应用,内部引擎是基于 Grinder。 nGrinder 使用 controller 和 agent 分别包装了 Grinder 的 console 和 agent ,而且扩展了多种功能使其能够支持并发测试。

    nGrinder 由两个主要的组件组成

    Controller
    提供性能测试的web接口。
    协调测试进程。
    整理和显示测试的统计结果
    让用户创建和修改脚本。
    Agent
    在代理服务器上加载运行测试进程和线程。
    监控目标机器的系统性能(例如:CPU/MEMORY/网卡/磁盘)
    这里写图片描述

    target
    被测服务所在的服务器。

    **思考点**:为什么要部署多个agent??
    当线程数量过多的时候,实际的压力可能不会提升。由于agent本身的瓶颈,导致压力下发不下去。
    当压力测试结果表现为:线程数量增多,响应时间和tps数却无变化,说明agent本身已经达到瓶颈了,无法再增加更多的压力。
    这时候就需要部署多个agent给被测服务。

    当 agent 启动时,它们试图连接到 controller,然后他们都附属在 AgentControllerServer 组件上。AgentControllerServer (可以看做为一个 agent 的池)管理当前 agent 池。每当用户开始性能测试时,一个新的 console 被创建,同时由 AgentControllerServer 提供所需数量的 agent。 SingleConsole (不是 Grinder 中的 Console ) 发送测试脚本和测试源码到多个指定的 agent , 同时开始控制测试流,直到测试结束。当测试完成后,所使用的 agents 归还给 AgentControllerServer ,以便在以后的其他测试中使用。 同样,SingleConsole 也会归还给 ConsoleManager 。

    nGrinder 和 Grinder 最大的区别在于 nGrinder 在 controller 中保持多个 console 实例 和 agent 。每个 console 都是独立的,所有 console 都可以同时运行。每当有需要时,许多 agent 可以提前被提前关联和分配。与 grinder 不同,nGrinder 最大化 agent 机器的利用率。

    集群架构
    nGrinder 从 3.1 版本开始支持 controller 集群
    这里写图片描述
    1. 集群中所有的 controller 共享同一个 DB(数据库) 和 文件系统。所有的 nGrinder controller 都要指定相同的 NGRINDERHOMENFS()2.controllercontrollerNGRINDERHOME通过NFS(网络文件系统)共享的目录。2.每个controller可以有它自己的特殊配置和日志输出目录。这些信息将会被保存在每个controller的{NGRINDER_EX_HOME} 中。
    3. 所有的 controller 复制彼此的 EhCache 数据(EhCache 的集群模式)确保 controller 集群中看见的都是一样的数据。

    每个 controller 都可以向 nGrinder 提供 相同的 wen 内容服务,但是会根据 region 处理不同的测试集。默认情况下,我们没有提供会话集群。所以你可能遭遇到登陆问题,因为会话存储在一个 controller 并没有复制到其他的 controller 。你可能需要参考 Tomcat 的会话集群配置,或者 L4 的粘性会话配置。如果你不是这方面的专家,请只让用户链接同一个 controller,这样简单些。

    如何配置集群模式呢?
    简单的集群模式指南 https://github.com/naver/ngrinder/wiki/Easy-Clustering-Guide
    高级的集群模式指南 https://github.com/naver/ngrinder/wiki/Advanced-Clustering-Guide

    非集群模式
    这里写图片描述
    1. nGrinder 使用一个内嵌的 svn 服务管理脚本文件,svn 的库存储于 ${NGRINDER_HOME} 目录
    2. nGrinder 使用 EhCache 提升从DB和SVN库的数据检索性能。
    3. nGrinder 使用 Spring Security 保护系统安全,同时使用 Atlassian Plugin 框架进行扩展。

  • 相关阅读:
    【西北师大-19软工】第十次作业成绩汇总
    第十七周博客作业<西北师范大学|李晓婷>
    第十六周博客作业<西北师范大学|李晓婷>
    第十五周博客作业<西北师范大学|李晓婷>
    第十四周博客作业<西北师范大学|李晓婷>
    第十二周博客作业<西北师范大学|李晓婷>
    第十一周博客作业<西北师范大学|李晓婷>
    【西北师大-19软工】第六次作业成绩汇总
    第九周博客作业<西北师范大学|李晓婷>
    第八周博客作业<西北师范大学|李晓婷>
  • 原文地址:https://www.cnblogs.com/ceshi2016/p/13854070.html
Copyright © 2011-2022 走看看