性能分析-nginx(tomcat、nginx【配置】、负载均衡)

tomcat

像kyj项目请求直接对接 tomcat,tomcat的连接池就会直接影响“并发用户数”

如果这种情况下做性能测试的时候,并发用户数不能满足要求,可以适当加大线程池的配置。

如:项目性能测试发现项目所在机器,资源利用率不高,系统的整体负载不高。-------服务器的资源没有得到足够利用。

适当调大线程池的大小,也要去调整堆栈大小,两个一起搭配,才可能让整个tomcat的性能提升。

nginx

目前企业项目做集群的首选软件,但是不是唯一的软件。

反向代理服务器  vs 代理服务器

代理服务器:自己机器的ip,通过一个代理服务器的ip,转发请求包,到另外一个网络中,代理服务 器,会记录从我们机器上发出的所有请求包信息。

反向代理:网络中一个数据包进来,经过反向代理服务器,分发到内部机器上。

数据分发到内部机器是有策略。策略要说:负载均衡

负载均衡不等于平均分配

安装nginx

  • 方法1:用源码包安装------这种方法安装的nginx是可以安装扩展功能,扩展功能主要是可以添加监控
yum install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel -y

# 安装pcre
tar -xzvf pcre-8.44.tar.gz

进入解压后的文件夹
./configure && make && make install

# 下载nginx的包
wget http://nginx.org/download/nginx-1.19.5.tar.gz

解压,进入解压后的文件夹
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --withhttp_ssl_module

make && make install
此时,nginx安装的路径 /usr/local/nginx
启动文件: /usr/local/nginx/sbin/nginx
配置文件: /usr/local/nginx/conf/nginx.conf
检查命令: /usr/local/nginx/sbin/nginx -t
重新加载配置命令:/usr/local/nginx/sbin/nginx -s reload
停止nginx: /usr/local/nginx/sbin/nginx -s stop
  • 方法2:编译包安装------这种方法安装很简单,但是不能安装扩展功能
  • 方法3:dcoker方式安装

这三种方式,配置文件的路径可能都不相同。但是要记住第1种安装方式的配置文件路径。

这个配置文件,就是用于配置nginx集群和反向代理策略的文件。

集群

集群:是相同服务能力输出的服务集合在一起,提供更强能力输出。

相同的服务数量应该在2个以上

nginx配置

nginx+tomcat负载均衡

记录tomcat机器的ip和端口(如果在同一台服务器上记得修改tomcat服务的ip和端口,不然无法启动tomcat服务)

策略:静态策略和动态策略

静态策略:如轮询

动态策略:如iphash

静态策略和动态策略,没有说那种就好或坏,根据业务的实际情况,哪种最合理,相对而言这种就是最 好的。

如果有一个集群,现在要你对这个集群做性能测试,怎么做?

如:kyj的项目,配置了nginx就可以通过ip直接访问项目, kyj的集群是由2个服务构成 如果你自己使用 ip不带端口,这个时候测试的性能,就是2个kyj项目的整体集群的性能。如果我只想测某一个,我可以调整集群的策略

nginx实战

nginx的监控  可以参考这里

nginx的安装必须是源码包安装方式,不能使用rmp包安装方式

安装nginx-module-vts

下载: git clone https://gitee.com/mirrors/nginx-module-vts.git
下载是放在 /opt路径下
进入nginx的解压文件夹
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --withhttp_ssl_module --add-module=/opt/nginx-module-vts/


make && make install

安装 nginx-vts-exporter   默认端口是 9913

wget https://github.com/hnlq715/nginx-vtsexporter/releases/download/v0.10.3/nginx-vts-exporter-0.10.3.linux-amd64.tar.gz

解压
进入解压后的文件夹
nohup ./nginx-vts-exporter -nginx.scrape_uri=http://localhost/status/format/json
&

此时把项目和nginx都启动了,但是访问http://ip:9913,可以正常访问页面,但是页面没有数据。

因为nginx.conf 的配置文件没有修改

http{

vhost_traffic_status_zone;
vhost_traffic_status_filter_by_host on;


server{

location /status {
vhost_traffic_status_display;
vhost_traffic_status_display_format html;

}

}

}

我们搭建监控平台,是把grafana+Prometheus放在同一台机器上,这两个都不要放到被测服务器上

Prometheus数据库,与xxx_exporter所在的机器,网络一定要通。 在Prometheus的机器上,执行

telnet xxexporterIp port

引入模板id:2949

数据基本相同就说明负载均衡一般没有问题。

nginx一般不会成为性能瓶颈,但也不是说,就不会有性能问题。

如果在做性能测试时发现多个接口在某一并发用户数的时候会出错(一小部分)。-----比较明显告诉你

应该是入口地方有性能问题,这个入口很多时候就是nginx。 这种问题大概率就是nginx配置的连 接数不够。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/536567.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

hexo接入github Discussions评论系统

评论存储仓 可以是你的博客项目的(github)仓库,也可以单独新建一个评论存储仓库。 我的博客项目在gitee上,就以新建存储仓为例: 使用Discussions评论系统必须开通Discussions模块! 安装giscus插件 https://github.com/apps/…

书客、月影、欧普护眼大路灯哪款好?三款落地灯真实对比测评

作为在照明电器领域资深的评测员,我对市面上各种新颖的照明家电有着深入的探索和研究。大路灯能够提供舒适健康的照明光线,目前正受到许多用眼人群的广泛欢迎。,当然随着大路灯的普及,市场中也充斥着一些低劣的大路灯产品&#xf…

中国平安金融壹账通交付管理中心总经理崔羽先生受邀为第十三届中国PMO大会演讲嘉宾

全国PMO专业人士年度盛会 中国平安金融壹账通交付管理中心总经理崔羽先生受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾,演讲议题为“项目管理成与败,人才是第一要素”。大会将于5月25-26日在北京举办,敬请关注! 议题简要…

消息队列之-----------------zookeeper机制

目录 一、ZooKeeper是什么 二、ZooKeeper的工作机制 三、ZooKeeper特点 四、ZooKeeper数据结构 五、ZooKeeper应用场景 5.1统一命名服务 5.2统一配置管理 5.3统一集群管理 5.4服务器动态上下线 5.5软负载均衡 六、ZooKeeper的选举机制 6.1第一次启动选举机制 6.2非…

Java中的TCP通信

TCP通信 TCP通信Socket客户端ServerSocket服务端 例子:一发一收例子:多发多收异常捕获 例子:服务器与多个客户端同时通信多客户端通信架构服务端代码ServerReaderThread 服务端读数据线程 TCP通信 特点:面向连接、可靠通信 通信双…

[C++][算法基础]树的重心(树图DFS)

给定一颗树,树中包含 n 个结点(编号 1∼n)和 n−1 条无向边。 请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。 重心定义:重心是指树中的一个结点,如果将这个点删除后&a…

为什么越来越多的网工运维转行网络安全?

最近越来越多的网工运维小伙伴都在吐槽:干网工、运维多年,薪资还是5.6K,技术也遇瓶颈上不去,考虑转岗或者转行。其中大部分的网工运维小伙伴们纷纷瞄准了高薪高前景的网络安全工程师岗位 网络安全是怎样的岗位? 人才…

星抖短剧养猪,闲鱼出售金币,日收益50-200+,零成本副业项目

自3月31日推出以来,“星斗短剧”平台迅速获得了众多团队的关注和推崇,用户数量持续增长。 目前,已有超过26万的用户群体活跃在平台上。用户数量的庞大直接映射了市场的广阔和需求的多样性,为我们提供了赚取收益的良机。 公 众号…

自然语言处理、大语言模型相关名词整理

自然语言处理相关名词整理 零样本学习(zero-shot learning)词嵌入(Embedding)为什么 Embedding 搜索比基于词频搜索效果好? Word2VecTransformer检索增强生成(RAG)幻觉采样温度Top-kTop-p奖励模…

HarmonyOS实战开发-WebSocket的使用。

介绍 本示例展示了WebSocket的使用,包括客户端与服务端的连接和断开以及客户端数据的接收和发送。 WebSocket连接:使用WebSocket建立服务器与客户端的双向连接,需要先通过createWebSocket方法创建WebSocket对象,然后通过connect…

node express 请求参数接收方式汇总

express 安装使用 express官网 express 是node.js 中写后端服务比较流行的框架。 安装express npm install -g express安装 express-generator 相当于vue的cli 用来快速生成express项目 npx express-generator生成项目mynode -e是使用ejs模版 express -e mynodeexpress生成器生…

TouchGFX 控件附加 ClickListener 功能的方法介绍

1. 引言 TouchGFX 是专用于 STM32 的图形界面设计软件,可用来低成本开发优秀的图形界面,TouchGFX 现已变的越来越流行。为了帮助客户更加深入地理解和使用 TouchGFX ,本文介绍了 TouchGFX Designer 中的 Mixin 功能,从基础示例 B…

Docker核心特征

Docker的基本概念 Dockerfile:制作进行的文件,可以理解为制作镜像的一个清单。 镜像:用来创建容器的安装包,可以理解为给电脑安装操作系统的系统镜像。 容器:通过镜像来创建的一套运行环境,一个容器里可…

每日一题 — 将 x 减到 0 的最小操作数

思路: 题目要求是让我们从数组的最左端和最右端进行操作,这样的话解题的难度大大提升,我们可以用 正难则反 的思想: 题目中要求是减去数组中的数刚好等于X,我们可以转换成 数组中某一段的和等于 数组的总长减去X(sum -…

vue $set()使用复习总结

一维数据: this.$set(数组, 下标, 内容); this.$set(this.typeList, 1, 榴莲); 数组对象: this.$set( target要更改的数据源(可以是对象或者数组), key要更改的具体数据, value重新赋的值 ) 用法一: 循环外,单独使用 用法二 &…

仿真测试平台设计资料:921-6U CPCI卫星接口仿真测试平台

6U CPCI卫星接口仿真测试平台 一、设备概述 卫星接口仿真测试平台基于6U CPCI的结构,包含信号接口前板、后板,计算机主板、机箱、电源等硬件。硬件设计包括:信号接口前板、后板(直接遥测遥控、串行RS422、LVDS,模拟量输…

【MySQL】数据库开篇

SueWakeup 个人主页:SueWakeup 系列专栏:学习技术栈 个性签名:保留赤子之心也许是种幸运吧 本文封面由 凯楠📸友情提供 目录 本系列传送门 1. 什么是数据库? 2. 为什么使用数据库 3. 数据库的分类 4. NoSQL 与关系…

Springboot+vue的粮仓管理系统的设计与实现(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频: Springbootvue的粮仓管理系统的设计与实现(有报告)。Javaee项目,springboot vue前后端分离项目。 项目介绍: 采用M(model)V(view)C(controller&am…

服务器感染了.rmallox勒索病毒,如何确保数据文件完整恢复?

引言: 随着网络技术的发展,勒索病毒已经成为当今数字时代的一大威胁。近期出现的.rmallox勒索病毒更是引发了广泛关注。本文将深入探讨.rmallox勒索病毒的特点,并提供一系列应对这一威胁的高效策略。如果受感染的数据确实有恢复的价值与必要…

PHP Storm 2024.1使用

本文讲的是phpstorm 2024.1最新版本激活使用教程,本教程适用于windows操作系统。 1.先去idea官网下载phpstorm包,我这里以2023.2最新版本为例 官网地址:https://www.jetbrains.com/zh-cn/phpstorm/ 2.下载下来后安装,点下一步 …