性能测试实例(http和ldap协议压测)

一、某授权服务器生成授权码效率验证(http协议)

  1. 测试背景
    在存量数据23万条的情况下,生成一条授权数据,需要10秒左右,用户反应数据生成效率太差,需要优化。初步判断是由于在授权数据生成时,有查询逻辑在数据生成之前导致。需进行压力验证。

  2. 测试场景设计
    在满足用户当前存量数据的基础上,对可见的将来的数据增长进行可预估的数据模拟,并进行数据生成效率进行验证
    ①测试环境部署
    CPU:8c(intel i3)
    RAM:8g
    ②模拟23万条用户数据
    ③模拟50万条用户数据
    ④模拟100万条用户数据
    ⑤在数据量增加明显的情况下,数据查询效率验证

  3. 基准测试
    ①单条授权数据生成时间在13秒左右,消耗时间与生产环境类似,且从监控的后台服务器和数据服务器的资源消耗情况看,服务器无瓶颈,性能瓶颈判断为接口逻辑需要优化;
    在这里插入图片描述

  4. 压力测试
    ①系统调优后,重新对序列号生成接口进行测试,验证优化结果
    ②分别基于23万、50万、100万条序列号的基础上进行单用户生成序列号效率验证
    ③23万条数据时,单接口,页面手动生成,多次验证,1次生成1个序列号的时间不到1秒(200毫秒);查询(以单位、批次、序列号、合同)时间不到1秒;见截图

④50万条数据时,单接口,页面手动生成,多次验证,1次生成1个序列号的时间不到1秒(400毫秒)见截图
在这里插入图片描述
⑤50万条数据时,单接口,页面手动生成,多次验证,1次生成100个序列号的时间约7秒,见截图
在这里插入图片描述
⑥100万条数据时,单接口,页面手动生成,多次验证,1次生成1个序列号的时间不到1秒(700毫秒),见截图
在这里插入图片描述
⑦100万条数据时,单接口,页面手动生成,多次验证,1次生成100个序列号的时间约7秒,见截图
在这里插入图片描述
⑧100万条数据时,单接口,查询(以单位、批次、序列号、合同)时间约3秒,见截图
在这里插入图片描述
5. 测试结论
a. 授权服务经过调优后,性能有了极为明显的提升(13s—>1s)
b. 生成单条序列号时,在100万数据的基础上,不到1秒
c. 序列号查询时,在100万数据的基础上,以批次、合同号、序列号等方式进行查询,约3秒左右
d. 上述验证都是在1个并发(1个使用)的场景进行的测试,服务器资源使用较低,无性能瓶颈,未截图

二、freeipa登录相关接口验证(ldap协议)

  1. 测试背景
    用户反馈在1000个左右域账户在早9:00—9:30登录高峰时,有部分无法登录;
    在完成问题修复,并提供解决方案后,用户希望获取实际的压测数据进行方案验证。
  2. 测试场景设计
    ① 测试环境准备(使用行方现有测试环境)
    环境:虚拟机
    CPU:4c (2.0Ghz)
    RAM:16g
    ② 数据准备:生成14000个测试账户
    ③ 模拟1000、2000、4000、8000用户登录场景
    ④ 通过多次持续压测,验证用户反馈场景(可复现)
    ⑤ 对代码进行调整后,设置并发用户1000、2000、4000、8000、10000等场景进行反复压测,以获取最优的并发用户数、响应时间、及吞吐量数值;在未见异常时,单次压测时间持续约30分钟
  3. 基准测试
    ① 准备总计约14000个账号,模拟dap并发登录,验证生产域控登录失败的问题;基础单接口场景,登录时间不到1秒(30毫秒)
  4. 压力测试
    ①并发1000个用户时,接口响应时间约8秒;
    在这里插入图片描述
    ②2000并发时,约16秒;
    在这里插入图片描述
    ③4000并发时,约30秒;
    在这里插入图片描述
    ④8000并发时,约70秒;
    在这里插入图片描述
    ⑤10000并发时,在压测10分钟左右,出现异常,freeipa服务停止
    ⑥服务器监控(nmon)
    在这里插入图片描述
  5. 测试结论
    ① 由压测结果分析,freeipa登录接口对系统cpu资源占用较高,在各个并发场景下,ipa docker 服务cpu资源都会几乎占满,但对内存使用影响不大;最优的并发用户数为1000,其吞吐量为130,响应时间为8秒;其他并发场景2000、4000、8000都可正常完成并发请求,吞吐量约120,响应时间随着并发用户的增加逐渐增大;更大并发用户数10000时,出现异常(ldap服务停止,需重启);当前测试环境最大支持的并发用户数为8000
    ② 在对ldap配置优化调整后,测试环境最大可满足60秒8000人的并发登录需求;因ldap并发对cpu资源占用最高,而生产环境cpu配置比测试环境更高(4核–>8核),且实际60秒登录8000人的可能性较低,预期生产环境可满足8000人以上并发登录需求

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot中的事件与JMS消息集成

Spring Boot事件机制 Spring框架的事件处理是其核心特性之一,通过ApplicationEvent类和ApplicationListener接口实现。在Spring Boot应用中,事件机制是实现模块间消息传递的重要方式,通常用于业务逻辑内部通信。 内置事件类型 Spring应用上下文在启动时会触发多种内置事件…

第12次12: 修改和删除收货地址

第1步:在users应用下views.py中新增实现修改收货地址的视图类 class UpdateDestroyAddressView(LoginRequiredJSONMixin, View):def put(self, request, address_id):"""修改收货地址"""json_dict json.loads(request.body.decode(…

python常用库-pandas、Hugging Face的datasets库(大模型之JSONL(JSON Lines))

文章目录 python常用库pandas、Hugging Face的datasets库(大模型之JSONL(JSON Lines))背景什么是JSONL(JSON Lines)通过pandas读取和保存JSONL文件pandas读取和保存JSONL文件 Hugging Face的datasets库Hugg…

【论文笔记】SecAlign: Defending Against Prompt Injection with Preference Optimization

论文信息 论文标题:SecAlign: Defending Against Prompt Injection with Preference Optimization - CCS 25 论文作者: Sizhe Chen - UC Berkeley ;Meta, FAIR 论文链接:https://arxiv.org/abs/2410.05451 代码链接:h…

NLP学习路线图(十六):N-gram模型

一、为何需要语言模型?概率视角下的语言本质 自然语言处理的核心挑战在于让机器“理解”人类语言。这种理解的一个关键方面是处理语言的歧义性、创造性和结构性。语言模型(Language Model, LM)为此提供了一种强大的数学框架:它赋…

HTML 中 class 属性介绍、用法

1、🔖 什么是 class class 是 HTML 元素的一个核心属性,用来为元素指定一个或多个类名。它在网页开发中承担三大作用: 🎨 连接样式(CSS):让元素应用预定义的视觉效果⚙️ 绑定行为&#xff08…

MybatisPlus(含自定义SQL、@RequiredArgsConstructor、静态工具类Db)

大家在日常开发中应该能发现,单表的CRUD功能代码重复度很高,也没有什么难度。而这部分代码量往往比较大,开发起来比较费时。 因此,目前企业中都会使用一些组件来简化或省略单表的CRUD开发工作。目前在国内使用较多的一个组件就是…

信贷风控规则策略累计增益lift测算

在大数据风控业务实践过程中,目前业内主要还是采用规则叠加的办法做策略,但是会遇到一些问题: 1.我们有10条规则,我上了前7条后,后面3条的绝对风险增益是多少? 2.我的规则之间应该做排序吗,最重…

Python窗体编程技术详解

文章目录 1. Tkinter简介示例代码优势劣势 2. PyQt/PySide简介示例代码(PyQt5)优势劣势 3. wxPython简介示例代码优势劣势 4. Kivy简介示例代码优势劣势 5. PySimpleGUI简介示例代码优势劣势 技术对比总结选择建议 Python提供了多种实现图形用户界面(GUI)编程的技术&#xff0c…

Linux 操作系统安装及基本使用

Linux 操作系统安装及基本使用 在信息技术飞速发展的今天,Linux 操作系统凭借其开源、高性能、稳定性强等优势,在服务器、云计算、嵌入式等领域占据着重要地位。本文将详细介绍如何在 VMware 虚拟机下安装 Linux 系统(以 CentOS 为例&#x…

Python数学可视化——显函数、隐函数及复杂曲线的交互式绘图技术

Python数学可视化——显函数、隐函数及复杂曲线的交互式绘图技术 一、引言 在科学计算和数据分析中,函数与方程的可视化是理解数学关系和物理现象的重要工具。本文基于Python的Tkinter和Matplotlib库,实现一个功能完善的函数与方程可视化工具&#xff…

【MySQL基础】库的操作:创建、删除与管理数据库

MySQL学习: https://blog.csdn.net/2301_80220607/category_12971838.html?spm1001.2014.3001.5482 前言: 在上一篇我们已经讲解了数据库的基本内容,相信大家对数据库已经有了一些自己的理解,从这篇开始我们就开始正式进入如何…

Linux服务器系统配置初始化脚本

服务器系统配置初始化脚本 #!/bin/bash set -euo pipefail # 安全设置:遇错退出、未定义变量报错、管道错误处理# 设置时区并同步时间 timedatectl set-timezone Asia/Shanghai >/dev/null || ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime# 安装c…

Milvus单机模式安装和试用

1.安装ollama的package包; # install package pip install -U langchain-ollama2.我们直接使用ChatOllama实例化模型,并通过invoke进行调用; from langchain_ollama import ChatOllamallm ChatOllama(model"deepseek-r1") messa…

秒出PPT正式改名秒出AI,开启AI赋能新体验!

在现代办公环境中,借助智能工具提升工作效率已经成为趋势。秒出AI作为一款集AI PPT制作、动画、巨幕、视频、设计以及智能简历功能于一体的综合办公平台,为用户提供一站式智能内容生成解决方案,极大地简化了内容创作流程。 1. AI驱动的一键P…

Rust 学习笔记:发布一个 crate 到 crates.io

Rust 学习笔记:发布一个 crate 到 crates.io Rust 学习笔记:发布一个 crate 到 crates.io提供有用的文档注释常用标题文档注释作为测试注释所包含的项目 使用 pub use 导出一个方便的公共 API设置 crates.io 账户添加 metadata 到一个新的 crate发布到 c…

C++输入与输出技术详解

文章目录 引言一、C标准输入输出流1.1 cin与cout1.2 cerr与clog 二、C风格输入输出函数2.1 scanf与printf2.2 fgets与puts 三、输入输出优化四、总结 引言 在C编程中,输入与输出(I/O)操作是程序与用户、文件或其他系统组件交互的核心环节。C…

安全编码与AI接口权限控制

安全编码与AI接口权限控制 在AI系统中,模型服务的开放接口往往涉及敏感数据、核心算法与算力资源,如果缺乏有效的安全编码与权限控制机制,极易引发数据泄露、滥用调用或非法操作等问题。本节将从“接口安全策略”“权限验证流程”“Token管控机制”“多租户身份隔离”四个方…

redis五种数据结构详解(java实现对应的案例)

一、简述 Redis是一款高性能的键值对存储数据库,它支持五种基本数据类型,分别是字符串(String)、列表(List)、哈希(Hash)、集合(Set)、有序集合(Sorted Set)。 二、五种基本数据类型 2.1 字符串(String) String是Redis最基本的类型,一个key对…

大数据-273 Spark MLib - 基础介绍 机器学习算法 决策树 分类原则 分类原理 基尼系数 熵

点一下关注吧!!!非常感谢!!持续更新!!! 大模型篇章已经开始! 目前已经更新到了第 22 篇:大语言模型 22 - MCP 自动操作 FigmaCursor 自动设计原型 Java篇开…