性能工具之nGrinder分布式简单环境搭建介绍

  • 2019 年 11 月 3 日
  • 筆記

背景

nGrinder是一款分布式高并发开源压测软件,它是基于Grinder开源框架基础上由NHN公司所做的二次开发。nGrinder工具主要分由controller、agent、monitor三部分组成,其中controller(包含web管理后台)负责管理和控制测试流程、下发测试任务以及查看测试报告,agent负责启动压测进程&线程,压测目标服务器,monitor来监控目标服务器&被压测站点各项性能指标。 nGrinder的主体部分由controller和连接它的多个agent组成,用户可以通过web管理界面来创建压测脚本和测试任务,查看测试报告。controller会把压测脚本和压测数据分发到一个或多个agent去执行。用户通过在压测任务中配置多个进程和线程来并发的执行该脚本,依托线程内重复执行压测脚本下发请求到目标服务器,模拟多用户(vuser)并发压测站点的目的。

环境部署

Linux环境部署

配置jdk环境变量参考:

vi /etc/profile  向文件里面追加以下内容:  JAVA_HOME=/usr/java/j1.8.0_211  JRE_HOME=/usr/java/1.8.0_211/jre  PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin  CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib    export JAVA_HOME JRE_HOME PATH CLASSPATH    ESC 退出编辑模式     :wq 保存退出  source /etc/profile   立即生效

检查:java -version

java version "1.8.0_211"  Java(TM) SE Runtime Environment (build 1.8.0_211-b12)  Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)

查看防火墙

参考命令:

1、查看firewall服务状态  systemctl status firewalld  出现Active: active (running)切高亮显示则表示是启动状态。  出现 Active: inactive (dead)灰色表示停止,看单词也行。  2、查看firewall的状态  firewall-cmd --state  3、开启、重启、关闭、firewalld.service服务  # 开启  service firewalld start  # 重启  service firewalld restart  # 关闭  service firewalld stop  4、查看防火墙规则  firewall-cmd --list-all  5、查询、开放、关闭端口  # 查询端口是否开放  firewall-cmd --query-port=8080/tcp  # 开放80端口  firewall-cmd --permanent --add-port=80/tcp  # 移除端口  firewall-cmd --permanent --remove-port=8080/tcp  #重启防火墙(修改配置后要重启防火墙)  firewall-cmd --reload    # 参数解释  1、firwall-cmd:是Linux提供的操作firewall的一个工具;  2、--permanent:表示设置为持久;  3、--add-port:标识添加的端口;

检查显示为:

部署tomcat

上传ngrinder.war并且进行验证

验证是否启动成功

使用admin/admin登录:

下载Agent

选择

下载agnet到本机

上传agent包

安装上传文件命令:

yum install -y lrzsz

怎么上传你懂的,不用教了

修改配置win的agent配置为

修改linux环境中agent配置

启动linu/win中的agent

登录控制台验证

点击代理管理

验证

以上是简单分布式环境部署

应该还有很多细节需要自己去调试与修改。

分享一个经典冒泡算法

>>> arr = [1,21,3,232,12,8]  >>> for i in range(len(arr)-1):  ...         for j in range(len(arr) - i-1):  ...             if arr[j] > arr[j +1 ]:  ...                 arr[j],arr[j+1]=arr[j+1],arr[j]  ...  >>> print(arr)  [1, 3, 8, 12, 21, 232]  >>>  '''  算法分析:  第一次找到最大值放到最后面  第二次去掉最大值再找到最大值放到最后面  。。。。以此类推  '''