一次性能测试调优过程记录 一次性能测试调优过程记录怎么写
lipiwang 2024-11-02 13:39 12 浏览 0 评论
近期进行了应用集成项目性能等方面的测试,主要对系统稳定性、并发、部署、负载、高可用、灰度升级测试以及数据大批量测试,在测试过后发现测试结果不尽如人意,系统的并发以及Redis读写达不到指定的要求,经过排查发现是Nginx没有调优导致,在调优后达到了预期效果。
经过以上事件对影响性能等因素进行了排查以及优化,主要对产品的配置、系统、JVM、Redis、Nginx以及数据库方面进行优化,具体优化点以及说明详见下文。
整体说明
本章主要针对测试的主要内容、测试的ESB应用集成流程具体实现情况以及遇到问题应该如何处理等进行详细的说明。
1.测试思路
在测试时主要针对1千条、1万条、10万条、100万条、1000万条数据级别进行测试验证,测试分为两个模块,具体如下:
1.对环境进行优化,分别优化主数据及ESB的CPU、内存,并对Redis、JVM、CentOS、Nginx等进行优化;
2.对每个数量级进行ESB层面测试,先用代码构造对应的入参,在使用ESB数据适配器中的数据插入组件记录每个数量级的同步时间;
3.复制原有集成流程,加入主数据调度接口进行数据的同步,记录同步时间,并于数据库批量插入同步时间进行对比,查看是否是因为同步接口降低了同步时效;
4.对测试结果进行总结,将相关问题反馈至产品负责人员进行优化,并进行再次测试。
2.部署架构
测试环境整体部署架构如下:
本次测试以及性能调优主要针对K8S集群配置下进行测试,对网络层Nginx、Ridis、容器中的产品的JVM等内容进行优化。
3.测试过程
测试流程主要是针对不同数据量级别对ESB数据插入性能等进行测试,主要测试100W条及1000W条数据的写入测试,具体流程如下:
1.批量处理具体流程如下:
a)初始化操作记录数据起始时间;
b)查询出1千/1万条数据,并进行记录;
c)数据库直接批量数据插入;
d)记录截止时间并进行时间计算。
2.循环批量处理流程如下:
a)初始化操作记录数据起始时间;
b)使用Java转换节点构造1万条数据;
c)数据库直接批量数据插入;
d)索引自增长并进行循环;
e)构造集成日志参数并记录流程执行时间。
4.调优内容
本次性能调优主要对产品、数据库、Nginx、Redis、CentOS、内存CPU等进行调优,具体调优过程如下。
产品调优
产品调整过程主要对数据库连接数、日志级别调整、产品缓存调整、线程参数调整、JVM性能调整以及CPU、内存等进行扩充,具体调整如下。
1.数据库连接数
主要对数据库连接hotweb.properties文件进行调整,调整数据库最大连接数和空闲连接数。
文件位置:/webapps/bpm/WEB-INF/classes
调整样图:
2.日志级别调整
Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。程序会打印高于或等于所设置级别的日志,设置的日志等级越高,打印出来的日志就越少。如果设置级别为INFO,则优先级高于等于INFO级别(如:INFO、WARN、ERROR)的日志信息将可以被输出,小于该级别的如DEBUG将不会被输出。
调整日志级别将日志级别debug调整为info,样图如下:
3.产品缓存调整
在ServiceContext.xml中使用Redis缓存,不要使用本地缓存,注解掉本地缓存,使用redis缓存。
调整文件目录:/webapps/bpm/WEB-INF/classes
4.线程参数调优
调整server.xml文件,调整线程池,参数说明:
1.maxThreads:最大线程数,大并发请求时,tomcat能创建来处理请求的最大线程数,超过则放入请求队列中进行排队,默认值为200;
2.minSpareThreads:最小空闲线程数,任何情况都会存活的线程数,即便超过了最大空闲时间,也不会被回收,默认值4;
5.JVM性能调整
调整JVM内存大小,调整内容如下:
文件位置:/bin
具体参数说明:
注意:慎用最小限制选项Xms、PermSize以节约系统资源。
6.CPU内存调整
调优方面主要使用UMC对主数据、ESB等进行CPU及内存扩充,调整内存为4G—8G,主数据方面:
ESB方面调整同上:
系统调优
系统调优主要调整sysctl文件,通过调整其内核配置,从而对CentOS进行调优。
1.参数说明
具体参数说明如下:
2.其它说明
在上述基础上还可以进行SYN洪水保护、避免放大攻击的设置、增加系统文件描述符限制等其它设置,具体说明如下:
3.调整过程
对CentOS进行调优,调整sysctl.conf文件。
之后按照上述说明增加如上配置,之后使配置文件生效即可。
其它调优
主要对Redis、Nginx等进行优化,具体优化过程如下。
1.Redis调优
通过调整Redis配置文件对Redis进行调优。
添加、修改配置:
需要关闭redis实例节点,重启后生效。
验证方法:
输入“info”命令查看已经改为5G内存,已启用allkeys-lru模式。
2.Nginx调优
Nginx方面调整使用epoll模式、调整最大连接数、超时时间、请求头缓冲区、请求体缓冲区等等。
3.数据库调优
服务器优化主要是为了提高服务器本身的性能瓶颈,保证数据库在优化过程中不会因为服务器性能瓶颈影响到数据库的性能调整没有生效,提高数据库的优化空间,因此在数据库优化配置过程中,要根据服务器性能做适当调整,保证在合理范围之内能够生效,提高数据库的效率,数据库优化本次主要调整my.cnf文件。
心得体会
通过本次的大批量数据同步测试验证使自身在性能调优等方面有了一定的提升,同时也总结了一些心得,现从文档记录、意识形态以及技术积累层面总结如下。
1.文档记录
在工作学习过程中通过不断地记录文档,可以从多方面提升自身的综合能力。一方面可以感觉得到自己的逻辑思维有了很显著的提升,尤其是在记录教程类的文档时,例如某些系统的使用手册。可以重新梳理一遍系统的技术要点,通过对系统的梳理,过程中可以不断提高自己的逻辑思维能力。一方面在有了清晰的逻辑思路后,对自己的技术能力和水平都有了系统的提升。同时撰写文档也是一个总结、反思的过程,能够帮助个人促进深入思考的能力。
2.意识形态
通过查阅现有Nginx、Redis等调优的记录文档,发现文档中有一些内容需要优化,伴随着自身专业知识的不断积累,对知识的认知也不断提高。当回过头来看自己之前记录的工作文档,会发现有很多漏点存在,这时就需要再次完善工作文档了。在这个完善的过程中又把初学时的理解和当下做了比较,可以了解到当时的自己有哪些不足,思维逻辑有了怎样的改善。技术、认知在不断地更新,工作文档也在不断地更新,在这个不断迭代更新的过程中,使自己的知识点不知不觉连成了线。
3.技术积累
本次数据同步验证使自身Linux系统调优方面有了一定的提升,同时也暴露了自己在调配置文件不仔细所产生的问题,不能仅停留于敲代码的层面,在日常的工作过程也是一样,在后续的学习工作过程中要避免此类问题重复发生。
Linux系统作为目前服务器端最常用的系统,学好它的重要性不言而喻,作为一款字符串操作为主流的系统,想要学好Linux其实并不用容易,想要熟练掌握,也需要投入很多的精力,只有不断地学习积累才能使自身知识体系更加完善。
本文由@数通畅联原创,欢迎转发,仅供学习交流使用,引用请注明出处!谢谢~
相关推荐
- 如何在 Linux 中压缩文件和目录?(linux压缩文件夹到指定目录)
-
在Linux系统中,文件和目录的压缩是一项常见且重要的操作。无论是为了节省存储空间、便于文件传输,还是进行备份管理,掌握压缩技术都能极大地提升工作效率。Linux中常用的压缩工具1.tar:打...
- 什么是LIM模具?与普通硅胶模具有何本质区别?
-
要深入理解LIM模具及其与普通硅胶模具的本质区别,需从成型逻辑、技术架构、应用价值三个层面拆解,以下是系统性解析:一、LIM模具:定义与核心技术1.定义LIM模具(LiquidInj...
- 前后端安全机制(前后端分离安全的token)
-
一、密钥安全管理方案1.动态密钥分发机制密钥与会话绑定后端为每个用户会话生成临时密钥(如AES-256密钥),通过HTTPS加密传输给前端,会话结束后自动失效。例如:javascript//...
- Switch 2芯片细节曝光,英伟达专门定制支持DLSS,网友:掌机模式相当于PS4
-
Switch2处理器,细节被实锤!数毛社(DigitalFoundry)消息,已经确定Switch2采用的是英伟达真·定制版芯片,包含8核CPU和12GBLPDDR5X内存。GPU则基于Amp...
- 独立站的PageSpeed Insights 指标在seo中的作用?
-
这是一个非常关键的问题,关于独立站(如Shopify、WordPress、自建FastAPI/Vue等网站)的PageSpeedInsights指标(Google的网页性能评分工具)在...
- 前端工程化-webpack 分包的方式有哪些?
-
Webpack的分包(CodeSplitting)是优化应用性能的重要手段,主要通过合理拆分代码减少首次加载体积、提升缓存利用率。以下是常见的分包方式及生产/开发环境配置建议:一、Webpack...
- 液态硅胶(LSR)套啤注塑件的关键技术难点与解决方案?
-
液态硅胶(LSR)套啤注塑件(即二次注塑成型,一次成型基材+二次LSR包胶)在医疗、电子、汽车等领域应用广泛,但其关键技术难点需从材料、模具、工艺等多维度突破。以下是核心难点及解决方案:一、关...
- spa首屏加载慢怎样解决(spa首屏优化)
-
SPA(SinglePageApplication,单页应用)首屏加载慢是一个常见问题,主要原因通常是首次加载需要拉取体积较大的JavaScript文件、样式表、初始化数据等。以下是一些常见的...
- 揭秘|为什么新华三(H3C)要自主研发运维管理软件?
-
1概述1.1产生背景随着互联网技术的快速发展,企业对计算、网络的需求也越来越大。为了保证整个数据系统可靠、稳定地运行,相关企业对运维系统的要求越来越高,运维成本也在随之逐步增加。H3C公司自主研发的运...
- 动态主机配置协议——DHCP详解(dhcp动态主机配置协议的功能是?)
-
一、DHCP简介DHCP(DynamicHostConfigurationProtocol),动态主机配置协议,是一个应用层协议。当我们将客户主机ip地址设置为动态获取方式时,DHCP服务器就会...
- OGG同步到Kafka(oggforbigdata到kafka)
-
目的:测试使用OGG将数据单向同步到Kafka上。简要说明:Kafka使用单节点单Broker部署;单独部署简单ZooKeeper;需要使用到JAVA1.8;OGG需要2个版本,一个fororacl...
- Zabbix入门操作指南(zabbix4.0使用手册)
-
上篇:安装与配置一.概述在开始之前,一些概念和定义需要我们提前了解一下(以下内容摘自官方网站)。1.1几个概念架构Zabbix由几个主要的功能组件组成,其职责如下所示。ServerZabbixs...
- 绝对干货!升级MySQL5.7到MySQL8.0的最佳实践分享
-
一、前言事出必有因,在这个月的某个项目中,我们面临了一项重要任务,即每年一次的等保测评整改。这次测评的重点是Mysql的一些高危漏洞,客户要求我们无论如何必须解决这些漏洞。尽管我们感到无奈,但为了满足...
- pytorch v2.7.0震撼发布!Blackwell GPU支持+编译性能狂飙,AI开发
-
重点内容测试版(Beta):oTorch.Compile支持Torch函数模式oMega缓存原型(Prototype):o支持NVIDIABlackwell架构oPyTorch...
- kubernetes1.31.3集群搭建(上)(kubectl连接集群)
-
1集群规划1.1物理机环境电脑操作系统CPU内存硬盘网卡IP地址(静态)虚拟机软件服务器操作系统联想Windows11Intel12900K24核128GB4TBPcIE4.0无线网卡192...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- maven镜像 (69)
- undefined reference to (60)
- zip格式 (63)
- oracle over (62)
- date_format函数用法 (67)
- 在线代理服务器 (60)
- shell 字符串比较 (74)
- x509证书 (61)
- localhost (65)
- java.awt.headless (66)
- syn_sent (64)
- settings.xml (59)
- 弹出窗口 (56)
- applicationcontextaware (72)
- my.cnf (73)
- httpsession (62)
- pkcs7 (62)
- session cookie (63)
- java 生成uuid (58)
- could not initialize class (58)
- beanpropertyrowmapper (58)
- word空格下划线不显示 (73)
- jar文件 (60)
- jsp内置对象 (58)
- makefile编写规则 (58)