当前位置: 首页 > news >正文

【性能测试】中间件优化

1、Tomcat

  1. 优化连接数、线程池

在这里插入图片描述打开tomcat安装目录\conf\server.xml文件,在server.xml中 有以下配置:

tomcat HTTP/1.1
<Connector port="8080" protocol="HTTP/1.1"
maxThreads="1000"
acceptCount="1500"
connectionTimeout="20000"
redirectPort="8443"
minProcessors="5"  
maxProcessors="75"/>

参数说明:
• maxThreads 客户请求最大线程数,表示Tomcat可创建的最大的线程数,默认值是200
• minSpareThreads Tomcat初始化时创建的 socket 线程数
• maxSpareThreads Tomcat连接器的最大空闲 socket 线程数
• enableLookups 若设为true, 则支持域名解析,可把 ip 地址解析为主机名
• acceptAccount 监听端口队列最大数,满了之后客户请求会被拒绝(不能小于maxSpareThreads )
• connectionTimeout 连接超时
• minProcessors 服务器创建时的最小处理线程数
• maxProcessors 服务器同时最大处理线程数

  1. 配置JVM
JAVA_OPTS="-server  -Xms2048M -Xmx2048M -XX:PermSize=256M -XX:MaxPermSize=512M

参数说明:
• -Xms:设置JVM初始内存大小(默认是物理内存的1/64)
• -Xmx:设置JVM可以使用的最大内存(默认是物理内存的1/4,建议:物理内存80%),一般我们会把Xms和Xmx设置一样大,这样在服务器启动时就是最大值可以避免内存膨胀和回落时带来的资源的消耗。特别是回落时会带来cpu的高速运转进行垃圾回收,系统可能会出现几秒甚至几十秒的卡顿现象。
• -XX:PermSize :为JVM启动时Perm的内存大小
• -XX:MaxPermSize :为最大可占用的Perm内存大小(默认为32M)

2、Nginx

  1. 最大打开文件数
    打开nginx/nginx.conf文件:
worker_rlimit_nofile 65535; #一个nginx 进程打开的最多文件,可与ulimit -n一致,65535
  1. Nginx运行CPU亲和力(默认为2)
    打开nginx/nginx.conf文件:
worker_processes 8; nginx 进程数,建议按照cpu 数目来指定,一般为它的倍数 (,2个四核的cpu计为8)
  1. 单个进程最大连接数
    打开nginx/nginx.conf文件:
worker_connections 65535; 是单个worker进程允许客户端最大连接数,这个数值一般根据服务器性能和内存来制定,实际最大值就是worker进程数乘以work_connections
  1. gzip 调优
gzip on;
gzip_min_length 2k;
gzip_buffers 4 32k;
gzip_http_version 1.1;
gzip_comp_level 6;
gzip_typestext/plain text/css text/javascriptapplication/json application/javascript application/x-javascriptapplication/xml;
gzip_vary on;
gzip_proxied any;
gzip on; #开启压缩功能

使用gzip压缩功能,可能为我们节约带宽,加快传输速度,有更好的体验,也为我们节约成本,所以说这是一个重点。
Nginx启用压缩功能需要ngx_http_gzip_module模块,apache使用的是mod_deflate。
一般我们需要压缩的内容有:文本,js,html,css,对于图片,视频,flash什么的不压缩,同时也要注意,我们使用gzip的功能是需要消耗CPU的

3、Redis

  1. 合理设置内存使用

    在Redis中,一般会设置maxmemory参数来限制Redis使用的最大内存,这个参数可以通过redis.conf配置文件中的maxmemory参数设置。例如,我们可以通过下面的命令打开redis.conf文件并修改maxmemory参数的值:

    maxmemory 4gb
    

    这里将Redis的最大内存限制设置为4GB。保存修改后,重启Redis服务即可生效。该参数如果不设置或者设置为0,则redis默认的内存大小为:
    32位下默认是3G
    64位下不受限制
    一般推荐Redis设置内存为最大物理内存的四分之三。

  2. 调整配置文件中的参数

    Redis的性能参数可以在redis.conf配置文件中进行设置。这里介绍几个参数的含义和作用:

    • tcp-keepalive:开启TCP连接保活机制,通过发送心跳包保持连接状态。

    • tcp-backlog:设置TCP连接队列的长度。

    • client-output-buffer-limit:客户端输出缓冲区限制。
      例如,修改tcp-keepalive和tcp-backlog参数:

      # 开启TCP连接保活机制
      tcp-keepalive 60
      # 设置TCP连接队列长度
      tcp-backlog 128
      
  3. 修改系统中redis配置
    在这里插入图片描述

相关文章:

【性能测试】中间件优化

1、Tomcat 优化连接数、线程池 打开tomcat安装目录\conf\server.xml文件&#xff0c;在server.xml中 有以下配置&#xff1a; tomcat HTTP/1.1 <Connector port"8080" protocol"HTTP/1.1" maxThreads"1000" acceptCount"1500" c…...

【算法】查找类——二分查找算法

二分查找算法算法总结 算法描述 该算法属于查找算法。当需要从有序数组中查找某一元素时&#xff0c;可以使用该算法进行查找。&#xff08;本文章假设数组是升序排列的数组&#xff09; 算法思想 每次进行对半查找&#xff0c;获取中间元素值&#xff0c;然后与目标值进行…...

Ansible FIle模块,使用Ansible File模块进行文件管理

当使用 Ansible 进行自动化配置和管理时&#xff0c;file 模块是一个强大的工具&#xff0c;用于在目标主机上创建、修改和删除文件和目录。它提供了一种简单而灵活的方式来处理文件系统操作。在本文中&#xff0c;我们将详细介绍如何使用 Ansible 的 file 模块。 1. 创建文件 …...

索尼mp4变成rsv修复案例(ILME-FX3)

索尼mp4的修复案例讲过很多&#xff0c;这次是索尼的ILME-FX3也算是一个畅销的机型&#xff0c;一般索尼没有封装的文件是RSV文件&#xff0c;但是极少遇到有多个RSV文件的&#xff0c;下边我们来讲下这个特殊案例。 故障文件:4个RSV文件&#xff0c;大小在1.78G~28G多 故障现…...

抓拍摄像机开关量控制4K高清手机远程看图建筑生长定时缩时相机

作为物联网数据采集解决方案专业提供商,数采物联网小编daq-iot 在这里做以下内容介绍,并诚挚的欢迎大家讨论和交流。 项目案例参考视频&#xff1a; https://www.bilibili.com/video/BV1Kp4y1T7wQ/?spm_id_from333.999.0.0 4K高清太阳能供电定时拍照相机&#xff0c;通过光…...

c++使用http请求-drogon框架

创建drogon框架 drogon_ctl create project test_ctrl添加一个控制器 进入controllers目录下 drogon_ctl create controller -h check_ctrl编写主函数 #include <drogon/drogon.h> int main() {//Set HTTP listener address and port//drogon::app().addListener("…...

幼儿棒球运动宣传介绍·野球6号位

幼儿棒球运动宣传介绍 1. 棒球对幼儿成长的重要性 棒球运动对幼儿协调能力和团队协作的培养 棒球运动对幼儿协调能力和团队协作的培养非常重要。通过棒球运动&#xff0c;孩子们可以学习如何与队友合作&#xff0c;如何在压力下保持冷静&#xff0c;以及如何快速做出决策。这…...

grpc多语言通信之GO和DART

都是一个吗生的,找下例子 上一篇文章说到go实现的grpc方法已经实现了一个grpc的server端, 注意: 这两个项目的.proto文件应当是完全一致的,只是方法用各自的语言实现罢了 报错了: Caught error: gRPC Error (code: 12, codeName: UNIMPLEMENTED, message: grpc: Decompresso…...

基于FPGA的RGB图像转Ycbcr实现,包括tb测试文件以及MATLAB辅助验证

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 将FPGA的数据导入到matlab进行显示 2.算法运行软件版本 Vivado2019.2 matlab2022a 3.部分核心程序 timescale 1ns / 1ps // // Company: // E…...

centos 编译安装的php多版本 切换

centos 编译安装的php多版本 切换 wheris php php: /usr/bin/php /usr/lib64/php /etc/php.ini /etc/php.d /usr/local/php /usr/local/php7.4 /usr/share/php /usr/share/man/man1/php.1.gz/usr/bin/php: php可执行脚本&#xff0c;任何版本的php 通过软连接到这可以实现全局…...

Unity 性能优化之Shader分析处理函数ShaderUtil.HasProceduralInstancing: 深入解析与实用案例

Unity 性能优化之Shader分析处理函数ShaderUtil.HasProceduralInstancing: 深入解析与实用案例 点击封面跳转到Unity国际版下载页面 简介 在Unity中&#xff0c;性能优化是游戏开发过程中非常重要的一环。其中&#xff0c;Shader的优化对于游戏的性能提升起着至关重要的作用。…...

2023数学建模国赛E题黄河水沙监测数据分析完整代码分析+处理结果+思路文档

已经写出国赛E题黄河水沙监测数据分析完整代码分析处理结果思路分析&#xff08;30页&#xff09;&#xff0c;包括数据预处理、数据可视化&#xff08;分组数据分布图可视化、相关系数热力图可视化、散点图可视化&#xff09;、回归模型&#xff08;决策树回归模型、随机森林回…...

玩转Mysql系列 - 第19篇:游标详解

这是Mysql系列第19篇。 环境&#xff1a;mysql5.7.25&#xff0c;cmd命令中进行演示。 代码中被[]包含的表示可选&#xff0c;|符号分开的表示可选其一。 需求背景 当我们需要对一个select的查询结果进行遍历处理的时候&#xff0c;如何实现呢&#xff1f; 此时我们需要使…...

【量化分析】Python 布林线( Bollinger)概念

一、说明 布林线(BOLL)&#xff0c;Bollinger Bands&#xff0c;利用统计原理&#xff0c;求出股价的标准差及其信赖区间&#xff0c;从而确定股价的波动范围及未来走势&#xff0c;利用波带显示股价的安全高低价位&#xff0c;因而也被称为布林带。 二、布林带基本概念 布林线…...

MySQL的权限管理与远程访问

MySQL的权限管理 1、授予权限 授权命令&#xff1a; grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名用户地址 identified by ‘连接口令’; 该权限如果发现没有该用户&#xff0c;则会直接新建一个用户。 比如 grant select,insert,delete,drop on atguigudb.…...

在Qt创建的UI中放一个显示点云的窗口(PCL+QT5)

1、首先在Qt Designer创建UI后&#xff0c;拖一个Widget窗口出来 2、在对象查看器中右击该Widget&#xff0c;选择提升窗口部件&#xff0c;如下操作&#xff1a; 3、把UI转出来放在VS项目中&#xff0c;其中你的UI代码头文件会自带QVTKOpenGLNativeWidget.h&#xff0c;当然你…...

element ui el-table分页多选功能

selection-change&#xff1a;当选择项发生变化时会触发该事件&#xff08;当分页切换时&#xff0c;选中的数据都会自动清空&#xff09; 一、在el-table中添加 :row-key“id” <el-table :data"tableData" border style"width: 95%" selection-change…...

理解网络通信的基础:OSI七层模型与TCP/IP五层模型

在今天的数字化世界中&#xff0c;网络通信已经成为我们日常生活和商业活动的重要组成部分。为了更好地理解和管理网络通信&#xff0c;网络工程师和管理员使用不同的模型来组织和解释网络协议和通信过程。本文将介绍两种最重要的网络模型&#xff1a;OSI七层模型和TCP/IP五层模…...

Python爬虫-爬取文档内容,如何去掉文档中的表格,并保存正文内容

前言 本文是该专栏的第58篇,后面会持续分享python爬虫干货知识,记得关注。 做过爬虫项目的同学,可能或多或少爬取过文档数据,比如说“政务网站,新闻网站,小说网站”等平台的文档数据。爬取文档数据,笔者这里就不过多详述,而本文,笔者将主要介绍在爬取文档数据的过程中…...

【使用Cpolar和Qchan搭建自己的个人图床】

文章目录 前言1. Qchan网站搭建1.1 Qchan下载和安装1.2 Qchan网页测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar云端设置2.2 Cpolar本地设置 3. 公网访问测试总结 前言 图床作为云存储的一项重要应用场景&#xff0c;在大量开发人员的努力下&#xff0c;已经开发出大…...

MyBatis 中 CDATA 的实战应用与避坑指南

1. 为什么MyBatis需要CDATA 在MyBatis的日常开发中&#xff0c;我们经常需要在XML映射文件中编写SQL语句。但XML本身对特殊字符有着严格的限制&#xff0c;比如小于号(<)、大于号(>)、和号(&)等字符在XML中都有特殊含义。这就导致了一个很现实的问题&#xff1a;当我…...

项目管理工具怎么选?8款主流产品测评与选型建议

项目管理工具怎么选&#xff1f;真正需要比较的&#xff0c;不只是功能多少&#xff0c;而是它是否适合团队的协作方式、项目复杂度和管理阶段。本文围绕场景匹配、流程灵活性、信息沉淀、管理视图和落地成本&#xff0c;对8款主流项目管理工具做一轮顾问式测评。引言很多企业在…...

Teensy41嵌入式FTP服务器库:轻量协议栈与多网络适配

1. 项目概述FTP_Server_Teensy41 是一款专为 Teensy 4.x 系列微控制器&#xff08;特别是 Teensy 4.0 和 Teensy 4.1&#xff09;深度定制的嵌入式 FTP 服务器库。它并非从零构建&#xff0c;而是基于 Jean-Michel Gallego 开发的成熟开源项目 Arduino-Ftp-Server 进行了系统性…...

C++ Template 特化机制详解

C模板特化机制是泛型编程中的核心特性之一&#xff0c;它允许开发者针对特定类型或条件提供定制化的实现&#xff0c;从而在保持代码通用性的同时优化性能或处理特殊场景。本文将深入解析模板特化的核心机制&#xff0c;帮助读者掌握这一高阶技巧&#xff0c;并理解其在实际项目…...

计算机毕业设计springboot基于的游戏后台管理系统 基于SpringBoot的网游运营管理平台的设计与实现 基于SpringBoot架构的电子竞技服务支撑系统的设计与实现

计算机毕业设计springboot基于的游戏后台管理系统&#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。随着互联网技术的飞速发展和智能终端设备的全面普及&#xff0c;游戏产业已迅速…...

嵌入式开发中的静态代码分析工具与应用

嵌入式代码静态分析工具深度解析1. 静态代码分析技术概述1.1 传统编译器的局限性标准C语言编译器通常只能检测代码中的语法错误和部分潜在缺陷&#xff0c;对于程序架构设计和逻辑层面的问题往往无能为力。这种局限性在嵌入式开发中尤为明显&#xff0c;因为嵌入式系统对代码质…...

高效安全备份QQ空间历史说说:GetQzonehistory智能工具全指南

高效安全备份QQ空间历史说说&#xff1a;GetQzonehistory智能工具全指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 在数字记忆日益珍贵的今天&#xff0c;QQ空间作为承载无数青春回…...

3步深度配置Obsidian Copilot:打造专属AI知识工作流

3步深度配置Obsidian Copilot&#xff1a;打造专属AI知识工作流 【免费下载链接】obsidian-copilot A ChatGPT Copilot in Obsidian 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-copilot 在信息爆炸时代&#xff0c;知识工作者面临的最大挑战不是获取信息&am…...

STM32F103测风扇转速,除了输入捕获,你还可以试试这个更省资源的“数脉冲”法

STM32F103风扇测速实战&#xff1a;输入捕获与数脉冲法的资源博弈 在嵌入式开发中&#xff0c;风扇转速监测是个看似简单却暗藏玄机的任务。面对STM32F103这类资源有限的Cortex-M3内核单片机&#xff0c;如何在保证功能的前提下最大化硬件利用率&#xff1f;传统输入捕获法虽精…...

Orleans分布式追踪终极指南:Jaeger与Zipkin深度对比分析

Orleans分布式追踪终极指南&#xff1a;Jaeger与Zipkin深度对比分析 【免费下载链接】orleans dotnet/orleans: Orleans是由微软研究团队创建的面向云应用和服务的分布式计算框架&#xff0c;特别适合构建虚拟 actor模型的服务端应用。Orleans通过管理actors生命周期和透明地处…...