Docker部署nGrinder性能測(cè)試平臺(tái)過(guò)程解析
什么是nGrinder?
nGrinder是用于壓力測(cè)試的平臺(tái),使您可以同時(shí)執(zhí)行腳本創(chuàng)建,測(cè)試執(zhí)行,監(jiān)視和結(jié)果報(bào)告生成器。開(kāi)源nGrinder通過(guò)消除不便并提供集成環(huán)境,提供了進(jìn)行壓力測(cè)試的簡(jiǎn)便方法。它是根據(jù)Apache許可版本2.0許可的,是基于Grinder的開(kāi)源的web性能測(cè)試平臺(tái),由韓國(guó)最大互聯(lián)網(wǎng)公司NHN公司的開(kāi)發(fā)團(tuán)隊(duì)進(jìn)行了重新設(shè)計(jì)和完善。
http://naver.github.io/ngrinder/
nGrinder由三個(gè)組件組成
controller:一個(gè)Web應(yīng)用程序,使性能測(cè)試人員可以創(chuàng)建測(cè)試腳本并配置測(cè)試相關(guān)參數(shù),自動(dòng)分發(fā)測(cè)試腳本到agent。
agent:在代理服務(wù)器上加載運(yùn)行測(cè)試進(jìn)程和線程,建議不要部署在被測(cè)試的服務(wù)器上。
Monitor:用于監(jiān)控被測(cè)服務(wù)器的系統(tǒng)性能(例如:CPU/MEMORY),必須部署在被測(cè)試服務(wù)器上。
nGrinder架構(gòu)
工作原理
由一個(gè)控制端controller和多個(gè)代理端agent組成,通過(guò)控制端(瀏覽器訪問(wèn))建立測(cè)試場(chǎng)景,然后分發(fā)到代理端進(jìn)行壓力測(cè)試。
用戶按照一定規(guī)范編寫(xiě)測(cè)試腳本,controller會(huì)將腳本以及需要的資源分發(fā)到agent,用jython執(zhí)行。
在腳本執(zhí)行的過(guò)程中收集運(yùn)行情況、相應(yīng)時(shí)間、測(cè)試目標(biāo)服務(wù)器的運(yùn)行情況等。并且保存這些數(shù)據(jù)生成測(cè)試報(bào)告,通過(guò)動(dòng)態(tài)圖和數(shù)據(jù)表的形式展示出來(lái)。用戶可以方便的看到TPS、被測(cè)服務(wù)器的CPU和內(nèi)存等情況。
部署方式
1、單Controller多agent
2、多Controller和多agent
Docker上運(yùn)行nGrinder
運(yùn)行controller
docker pull ngrinder/controller
docker run -d -v ~/ngrinder-controller:/opt/ngrinder-controller --name controller -p 80:80 -p 16001:16001 -p 12000-12009:12000-12009 ngrinder/controller
控制器在/ opt / ngrinder-controller下創(chuàng)建一個(gè)數(shù)據(jù)文件夾,以維護(hù)測(cè)試歷史記錄和配置數(shù)據(jù)。為了持久地保留數(shù)據(jù),您應(yīng)該將容器上的文件夾/ opt / ngrinder-controller映射到主機(jī)上的文件夾。
端口信息:
80:默認(rèn)控制器Web UI端口。
9010-9019:代理通過(guò)這些端口連接到控制器集群。
12000-12029:控制器通過(guò)這些端口分配壓力測(cè)試。
運(yùn)行agent
docker pull ngrinder/agent
docker run -d --name agent --link controller:controller ngrinder/agent
docker-compose快速部署
使用docker-compose服務(wù)編排裝一個(gè)Controller和兩個(gè)agent:
編寫(xiě)yml
vim docker-compose.yml
ngrinder-controller-1: image: ngrinder/controller container_name: ngrinder-controller-1 hostname: ngrinder-controller-1 ports: - 8087:80 - 16001:16001 - 12000-12009:12000-12009 volumes: - /data/ngrinder/controller-1:/opt/ngrinder-controller ngrinder-agent-1: image: ngrinder/agent container_name: ngrinder-agent-1 hostname: ngrinder-agent-1 volumes: - /data/ngrinder/agent-1:/opt/ngrinder-agent command: - 10.255.254.25:8087 ngrinder-agent-2: image: ngrinder/agent container_name: ngrinder-agent-2 hostname: ngrinder-agent-2 volumes: - /data/ngrinder/agent-2:/opt/ngrinder-agent command: - 10.255.254.25:8087
啟動(dòng)
docker-compose -f docker-compose.yml -d up
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Docker內(nèi)網(wǎng)穿透frp部署實(shí)現(xiàn)過(guò)程解析
- Docker 部署Mysql 服務(wù)和Redis 服務(wù)的方法
- docker安裝tomcat并部署Springboot項(xiàng)目war包的方法
- Docker容器上用DockerFile部署多個(gè)tomcat服務(wù)的步驟
- Docker鏡像的制作,上傳,拉取和部署操作(利用阿里云)
- docker+gitlab+gitlab-runner部署詳解
- Docker 部署單機(jī)版 Pulsar 和集群架構(gòu) Redis(開(kāi)發(fā)神器)的方法
- Docker部署Consul配置過(guò)程解析
相關(guān)文章
dockerfile部署前端vue打包的ist文件實(shí)戰(zhàn)
這篇文章主要為大家介紹了dockerfile部署前端vue打包的ist文件實(shí)戰(zhàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10在Docker中安裝Oracle數(shù)據(jù)庫(kù)超詳細(xì)步驟
oracle作為全球最強(qiáng)大的關(guān)系型數(shù)據(jù)庫(kù),應(yīng)用在各行各業(yè),下面這篇文章主要給大家介紹了關(guān)于在Docker中安裝Oracle數(shù)據(jù)庫(kù)的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01Navicat 連接服務(wù)器端中的docker數(shù)據(jù)庫(kù)的方法
這篇文章主要介紹了Navicat 連接服務(wù)器端中的docker數(shù)據(jù)庫(kù),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03Docker 網(wǎng)絡(luò)模式(四種)詳細(xì)介紹
這篇文章主要介紹了Docker 網(wǎng)絡(luò)模式詳細(xì)介紹的相關(guān)資料,這里提供了四種網(wǎng)絡(luò)模式的介紹,Docker 作為輕量級(jí)容器技術(shù),很多比較不錯(cuò)的功能,網(wǎng)絡(luò)不是多好,這里就整理下,需要的朋友可以參考下2016-11-11使用遠(yuǎn)程Docker進(jìn)行集成測(cè)試的環(huán)境搭建過(guò)程
使用docker可以幫助我們快速的搭建項(xiàng)目依賴環(huán)境,但是本地化的docker依賴,依然讓我們的代碼在測(cè)試時(shí),不夠純粹,對(duì)其各個(gè)運(yùn)行環(huán)境,都有本地docker安裝的要求2021-07-07Docker構(gòu)建python Flask+ nginx+uwsgi容器
這篇文章主要介紹了Docker構(gòu)建python Flask+ nginx+uwsgi容器,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09docker引起服務(wù)器磁盤(pán)爆滿的問(wèn)題解決
本文主要介紹了docker引起服務(wù)器磁盤(pán)爆滿的問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06docker中容器運(yùn)行時(shí)如何將目錄和宿主機(jī)進(jìn)行掛載
對(duì)于一個(gè)已經(jīng)運(yùn)行的容器,如果后續(xù)需要新掛載一個(gè)目錄怎么辦?下面這篇文章主要給大家介紹了關(guān)于docker中容器運(yùn)行時(shí)如何將目錄和宿主機(jī)進(jìn)行掛載的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-05-05