性能工具之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]  >>>  '''  演算法分析:  第一次找到最大值放到最後面  第二次去掉最大值再找到最大值放到最後面  。。。。以此類推  '''