三、性能监控---4种监控方式
-
性能监控(监控性能测试过程,收集性能测试过程中数据,拥有性能分析----主要时收集被测服务器的资源使用情况)
1.被测服务器的资源:硬件资源: cpu、内存、io、网络 软件资源: tomcat、jvm、数据库、连接池、中间件..先硬件,在软件
2.监控工具 备注:监控工具是监控被测服务器的,所以监控工具要安装在被测服务器上,监控工具,本身也有资源消化,所以,选择监控工具,要尽可能选择资源消耗比较少的工具
1)nmon工具:这个工具,只能监控,linux服务器(不能监控windows),是一个独立工具,不依赖我们性能测试工具的,进行服务器资源监控时,本身资源消耗很少,收集的监控数据比较全 安装:nmon16m_helpsystems.tar.gz tar -zxvf 解压 开启: 查看当前当前 centos服务系统:cat /etc/redhat-release 看到系统架构 x84_64 :uname -a 根据当前系统启动对应nmon: ./nmon_x86_64_centos7 有3中交互模式:屏幕交互模式,数据收集模式—这一种用的比较多,定时执行模式 (已数据收集为主讲解) 数据采集:./nmon_x86_64_centos7 -f -s3 -c50 -f 数据交互模式 每3秒采集一次,采集50次 150秒 的时长,未指定文件,监控结果以文件形式输出,默认机器名+日期.nmon格式 ps -ef |grep nmon 查看当前nmon执行情况 报告结果分析:已sz 命令将监控结果文件导出到本地,用过nmon_analyse 文件,分析生产报告 监控结果nmon 解析文件
生成报告.xlsx
2)SeverAgent 工具:这个工具,可以和jmeter集成,在jmeter的GUI界面可以看到数据(可以监控window、linux)
安装: rz 命令 把ServerAgent zip包上传到被测服务器 unzip ServerAgent-2.2.3.zip 解压
启动: /startAgent.sh ----启动命令, ServerAgent服务的默认端口 4444 这个端口,在一些云服务器中,不允许对外开放,所以,我们在启动ServerAgent这个服务的时候,需要指定服务的端口 ./startAgent.sh --udp-port 0 --tcp-port 5689 修改指定端口
数据采集:jmeter 中监控:jp@gc - PerfMon Metrics Collector (在监听器的使用时,不同的单位,选择用多个监听器,不建议放在1个监听器中CPU,内存等等--单独监控)
3)grafana + influxdb + jmeter: 与jmeter集成,可以把jmeter进行性能测试过程中的数据,写入influxdb数据库中,通过grafana前端平台来展示出来
vs jmeter + severAgent: ServerAgent也可以和jmeter集成,但是,它只能在jmeter的gui界面中展示,脱离了jmeter的gui界面,就不能看到数据,也不能回看数据。
运行软件及原理:
grafana:专门用于数据展示的前端平台,通过浏览器来访问,它自身没有数据存储功能
influxdb:时序数据库;数据库: 持久化存储数据的管理系统dbms;时序数据库:时间序列 这个数据库中,存放的数据,肯定有时间字段 根据时间来存数据, 根据时间排序
jmeter:进行性能测试,产生数据, 数据要写入influxdb数据库,通过grafana进行数据显示
安装:influxdb
位置:不能安装在被测服务器上。要求安装在非被测服务器上。 写入数据影响性能
安装:influxdb-1.7.0.x86_64.rpm (influxdb数据库的版本,**建议使用1.x** (不能是用2.x ))通过命令 `yum install influxdb-1.7.0.x86_64.rpm -y` 执行完,把influxdb数据库已经安装成功;influxdb数据库默认端口 8086
启动:`influxd ` ---启动命令
进入数据库:需要启动另一个终端(一个终端用于启动,一个用于数据库创建);进入数据库命令:influx
` show databases;` 我们看到没有jmeter库,我们就需要去创建一个库: create database jmeter; 使用对应数据库:use jmeter;
查看表:show measurements;查看表,jmeter在执行时会自动创建一个为jmeter的表,无需自己创建
查看数据:select * from jmeter`
安装:grafana
位置:安装在与influxdb同服务器
安装:将安装包放在服务器grafana-7.4.3-1.x86_64.rpm 通过` yum install grafana-7.4.3-1.x86_64.rpm -y`命令安装
启动:systemctl restart grafana-server
配置:访问grafana: http://grafana-server-ip:3000 admin admin
设置:datasources: url http://influxdb数据库的IP:8086 database: jmeter 选择模版:指定模版号,可选择展示模版
运行:jmeter进行性能测试,把数据写入influxdb数据库中:监听器:后端监听器------后端监听实现选择:influxdb
查看:访问grafana: http://grafana-server-ip:3000 admin admin
4) grafana + prometheus + node_exporter
运行软件及原理:
grafana:专门用于数据展示的前端平台,通过浏览器来访问,它自身没有数据存储功能
prometheus:时序数据库;数据库: VS influxdb : https://www.jianshu.com/p/d666ee3147d2 ---------无需安装在被测服务器
node_exporter:收集数据(收集监控数据):收集linux**系统资源利用**数据, 这个解决方案中,node_exporter 是可变的,是根据你要收集**哪些数据来进行选择**—安装在被测服务器上
安装: prometheus:
prometheus-2.20.1.linux-amd64.tar.gz 压缩包直接解压 然后启动 `./prometheus,预览 :默认端口: 9090 http://prometheus_ip:9090
安装: node_exporter
node_exporter-1.1.1.linux-amd64.tar.gz 压缩包直接解压 然后启动 `./node_exporter‘’,预览 :默认端口: 默认端口:9100 http://node_exporter_ip:9100
配置: prometheus + node_exporter结合
修改prometheus配置文件: prometheus.yml : vim命令进入,i 进入插入模式,配置添加 node_exporte的ip端口,ESC 退出编辑模式,:w 保存;:q 退出 --------修改成功
监控: 启动:systemctl restart grafana-server
配置:访问grafana: http://grafana-server-ip:3000 admin admin data sources :prometheus_node import :导入模版