文档章节

nGrinder在大型组织中的实际布署和应用

nGrinderChina
 nGrinderChina
发布于 2013/03/12 18:28
字数 1757
阅读 1614
收藏 5

原文 : nGrinder Real Deployment in the Large Organization By JunHo.Yoon

    我们的公司,NHN,拥有多个大型的产品。其中一个是韩国最受欢迎的搜索门户网站NAVER,拥有超过5千万的用户。另一个是“Line”,这是目前最受欢迎的移动通信工具,注册用户超过1亿。另外还有涉及网络应用和游戏等类型的一些产品。除了这些,我们还开发了多种多样的开源平台产品,包括CUBRID-支持高可用性的开源关系数据库管理系统-nGrinder Wiki网站就包含在CUBRID的Wiki中:)。在NHN公司内部有1000多名开发者,他们总是努力实现那些杰出的想法并转化成产品,并使这些产品更具扩展性。

    为了使这些产品更稳定,速度更快,从2011开始我们集中地使用nGrinder。目前我们在公司内部运行了多个nGrinder实例。但是我们要求的员工从最大的实例开始使用,它是由5个controller,40个agent以及5个不同的IDC(互联网数据中心)组成的。 我们有官方的DNS名称:http://ngrinder.nhncorp.com(只有NHN员工可以访问),在这5个控制器是指向L4(负荷平衡器)的。怎么做才能布署这样大型的nGrinder系统?请看Controller Clustering Guide

 <nGrinder deloyment across IDCs>
 

    大部分IDC是位于韩国的,唯一例外的一个位于新加坡。一个nGrinder Controller和Agent的通信速度B/W并不高,这样我们就可以把所有的controller放在一个韩国的IDC而把Agent分散到每个IDC中。我们还在nGrinder系统中部署了的SSO插件和网络溢出插件,所以每个人都可以随时访问nGrinder而无需额外的登录步骤,还可以控制可能会导致巨大的网络流量的异常测试执行。我们的nGrinder SSO插件从nGrinder管理中免除了用户管理的开销。它与SiteMinder共同起作用,如果用户不存在,当用户用他/她的SSO帐户登录时,便会创建一个新的用户帐号。

    目前我们在每个IDC的实际服务区域,使用的是10G主干网。但我们的开发区域只有3Gbps, B/W模式的IDC的带宽甚至更小。 因此,我们估计如果nGrinder产生了大量的网络流量,特别是在每个网络边缘的时候, 会使该网络中另外的系统服务不正常。 这样的情况在我们之前使用Performance Center的时候的确发生过。所以我们设置了网络溢出插件,使每个test最大使用1Gbps流量。如果一个test占用贷款超过了1Gbps,这个插件会自动强制停止它。如果开发者需要运行产生超过1Gbps流量的test,我们会请他在与目标机所处的相同的交换机范围内中安装独立的nGrinder controller和agent。他安装一个自己的nGrinder实例一般只需要1小时。

    我们通常只允许每个用户在没有额外的步骤的情况下使用5个agent。 这使得agent最大化地被多个用户所分享。我们观察到90%的test在10分钟内结束。一些IDC拥有10个agent。这意味着至少个测试可以同时运行。如果用户需要更多的agent,我们建议他/她安装用户属于自己的agent而不是增加限制的数量。我们不仅使用这些系统的方法,我们也用比较人性化的方式促进nGrinder使用。

     有一个nGrinder专职的工程师,会持续观察所有的测试(他的名字叫乔.JiWon,“JiWon”在韩语中的意思是“支持”,他花约30%的工作时间在这上面。)。这里的大多数开发者是Java工程师,并且没有写Python代码的经验。他正在做事情就是帮助开发人员避免在脚本编写中感到茫然。 他拥有开启了超级用户权限的帐户,可以不必请求附加权限就可以看到nGrinder中所有的test,并且能够运行其他用户的脚本。

      所以,每当红色球(运行失败标识)出现在nGrinder性能test列表视图中,像下面这样,JiWon会点击脚本并验证它们,以找出用户做错了什么。当他发现线索,他就会用我们的内部通信工具与用户联系。这使得nGrinder用户仅在2~3次失败的尝试之后,就能够写出正确的脚本。有时,一些开发者说“离它(脚本)远点”, 但大多数开发者都会说“谢谢”,因为在他们忙得不可开交的时候,这小小的帮助能减少他们的开销。

 <It's time for JiWon to help this guy!!>

   如我先前所述,我们在所有的互联网数据中心预先部署了40个nGrinder Agent,并且安装了一些插件,让用户能够容易且安全地运行他们的测试。因此,当他们开始运行性能测试时,nGrinder用户不需要联系nGrinder管理员。开发者能够通过访问nGrinder URL,随时运行他们的测试。 这最终导致了一个跟我们之前经验完全不同的用户体验。

    如我之前所说的,我们曾经使用过Performance Center。在那个时候,开发者需要提前登记一个特定的时间段,因为PerformanceCenter在特定的时间内只允许一个测试,并且用户需要下载和安装一大堆的应用。而现在一切变得不同了,一切都是基于网络的,使用nGrinder是不需要预约的。这使得整个性能测试的成本大大降低了,而且许多开发者已经开始将nGrinder视为像Eclipse一样的日常开发工具中的一个。现在大多数的产品进行检测,不仅在在开发阶段的结束也在发展阶段ngrinder中间。我们观察到同时最多有3个test在同时运行,平均每10分钟就有1个test被启动。鉴于性能测试工具通常是在项目的最后阶段才被使用的情况来看,我们可以说这样的执行率是相当令人印象深刻的。

    

      <active nGrinder use in NHN. 2013-01-13 was Sunday.>

     这就是我们如何在大型组织范围内应用nGrinder的。我们相信,通过分享我们的经验,能够使得任何产品变得更加的稳定。欢迎给我们提供任何的意见。 请使用这个邮件列表给我们写信。期待你的体验反馈!

 nGrinder Home : http://www.nhnopensource.org/
 nGrinder Demo : http://ngrinder-demo.nhnopensource.org(登陆账户: user/user)

   


© 著作权归作者所有

共有 人打赏支持
nGrinderChina
粉丝 11
博文 11
码字总数 9715
作品 0
朝阳
项目经理
私信 提问
nGrinder-世界上最简单但潜力无限的压力工具

此次此刻,我很高兴能把nGrinder-也许是这世界上最简单但潜力无限的压力工具介绍给大家。我是Emily, 来自NDT(nGrinder开发团队)的发言人。 下面这些问题正在烦扰着你么? -想要优化你的网...

nGrinderChina
2013/01/31
0
0
使用nGrinder实现性能测试驱动开发

来自 : Performance Driven Development 作者 : Juno.Yoon 使用nGrinder实现性能测试驱动开发 在许多项目中,开发者们通常不会在项目中期就考虑到各种非功能性要点。他们经常只是专注于功能...

nGrinderChina
2013/03/06
0
0
在eclipse代建nGrinder开发环境

本文介绍如何用eclipse搭建nGrinder开发环境! 首先向大家推荐 Spring Tool Suite (STS) 作为开发平台,因为它很好的集成Git和Maven等工具,让开发项目变得更方便快捷。 下面开发搭建nGrinde...

Matt_MYB
2013/02/01
0
4
开源nGrinder-3分钟学会世界上最简单但潜力无限的压力工具

nGrinder运行一个压力测试只需3步启动1个test: 1)Python脚本编写测试场景;2)配置虚拟用户数,周期,步长控制,资源监控;3)运行结束报告自动生成,TPS/MeanTime/Errors, 监控CPU/Memor...

nGrinderChina
2013/02/20
0
0
nGrinder 集群模式配置

前文已经介绍了nGrinder 集群模式基本框架,本文就要涉及具体配置了! 假设大家已经对nGrinder 单一模式配置方法有所了解。 在nGrinder集群模式下多个Controller端使用同一DB和文件系统.所以...

Matt_MYB
2013/01/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

0008-如何卸载CDH(附一键卸载github源码)

1.前置条件 本文档将介绍Cloudera Manager与CDH的卸载,并基于CDH使用parcels安装且未配置安全(AD/LDAP, Kerberos, Data Encryption)的集群,以下是本次测试环境,但不是本操作手册的硬限制...

Hadoop实操
28分钟前
1
0
MySQL 安装配置 Windows下免安装配置

1 安装MySQL软件 1.1 下载MySQL 依据ipems_dvp产品选型需求,选择mysql-5.7.17-winx64。可自行从网上下载,也可从公司拷贝,以下为下载目录和公司归档目录。 下载地址:https://downloads.m...

PeakFang-BOK
36分钟前
2
0
遍历java项目后台线程

遍历java项目后台线程,加深对项目后台运行线程理解 直接贴代码 import org.springframework.stereotype.Service;import java.lang.management.ManagementFactory;import java.lang.man...

王俊博客
50分钟前
2
0
iOS切面编程

aop编程(面向切面编程),其原理也就是在不更改正常的业务处理流程的前提下,通过生成一个动态代理类,从而实现对目标对象嵌入附加的操作。在iOS中,要想实现相似的效果也很简单,利用OC的动态性,...

RainOrz
57分钟前
2
0
PAT(Basic Level) 乙级练习题 ------ 1047 编程团体赛 java

1047.编程团体赛 题目: 编程团体赛的规则为:每个参赛队由若干队员组成;所有队员独立比赛;参赛队的成绩为所有队员的成绩和;成绩最高的队获胜。 现给定所有队员的比赛成绩,请你编写程序找...

Carol998
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部