Tsung笔记之100万用户压测执行步骤篇

2023-11-26 04:20

本文主要是介绍Tsung笔记之100万用户压测执行步骤篇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

总是说细节、理论,会让人不胜其烦。我们使用Tsung来一次100万用户压测的吧,或许能够引起好多人的兴趣 :))

下面,我根据在公司分享的PPT《分布式百万用户压测你的业务》,贴出其中的关键部分,说明进行一次100W(即1M)用户压测的执行步骤。

如何做分布式百万用户的压测 ?

假定面向小白用户,因此才有了下面可执行的10个步骤用于开展分布式百万用户。

看着步骤很多,一旦熟悉并掌握之后,中间可以省却若干。

1. 阅读Tsung文档

建议大家在使用Tsung之前,花费一点时间阅读完整个用户手册,虽然是英文的,阅读起来也不复杂。读完之后,我们也就知道如何做测试了,遇到的大部分问题,也能够在里面找到答案。

  • 官网:http://tsung.erlang-projects.org/
  • 在线手册:http://tsung.readthedocs.io/en/latest/index.html
2 确定压测目标

  • 要对线上系统压测100万用户,为了尽可能降低线上服务器负载压力,这里设置每秒产生500个用户,将在60分钟内产生完毕
  • 要压测的服务器所填写网络访问地址可以根据需要填写多个
3. 计算所需要从机数量






  • Tsung为主从模型,我们启动了主节点之后,主节点会按需启动从节点
  • 设定所用服务器可用内存大于3G,并且都只有一个IP地址
  • 一台从机可用模拟6万用户,需要17台从机
  • 若资源充足,可以少用几台服务器,配置多个IP地址
  • 找到所需要的压测用服务器,在资源层面满足测试测试集群需要,这个是关键
4. 部署Tsung

因为Tsung依赖于Erlang,因此需要首先安装:

wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
sudo yum install erlang

然后再是安装Tsung,建议直接使用Tsung 1.6.0修改版,主要提供IP只连支持(具体细节,可参考这里 http://www.blogjava.net/yongboy/archive/2016/07/28/431354.html ):

git clone https://github.com/weibomobile/tsung-1.6.0.git
./configure --prefix=/usr/local
make install
5. 下载SSH替代者-tsung—rsh

为什么要替换掉SSH,主要原因:

  • SSH在一般网络机房环境内服务器之间被禁止连接通信,这会导致主节点无法启动从节点,无法建立分布式压测集群
  • 就算是SSH没被禁用,主从之间需要设置免秘钥SSH登录方式,十分麻烦

可进一步参考:Tsung笔记之分布式增强跳出SSH羁绊篇。

6. 编写压测内容



要把业务定义的所有会话内容完整的整理映射成Tsung的会话内容,因为用户行为很复杂,也需要我们想法设法去模拟。

其实,演示所使用的是私有协议,可以参考 Tsung笔记之插件编写篇 。

当完成压测会话内容之后,users_100w.xml文件已经填写完毕,我们可以开始压测了。

7. 运行Tsung

  • -F 10.10.10.10 主节点IP地址,IP直连特性
  • -rsh rsh_client.sh 远程终端,SSH通道被替换
  • -s 压测端启用erlang smp特性,按需使用所有CPU核心

我们启动了从节点,然后从节点被启动,开始执行具体压测任务了。

8. 压测过程中,我们该做什么

紧密关注服务器服务状态、资源占用等情况就对了,最好还要作为一个终端用户参与到产品体验中去。

9. 压测结束,生成Tsung报表

Tsung压测结束之后,不会主动生成压测结果报表的,需要借助于 tsung_stats.pl perl脚本生成,要查阅可借助python生成临Web站点,浏览器打开即可。

10. 回顾和总结

小结

其实,一旦熟悉并掌握Tsung之后,步骤1-6都可以节省了,循环执行步骤7-10。

你若以为仅仅只是谈论Tsung如何做1M用户压测,那就错了,只要机器资源够,这个目标就很容易实现。我们更应该关注,我们压测的目的是什么,我们应该关注什么,这个应该形成一个完整可循环过程,驱动着系统架构健康先前发展。

转自:http://www.blogjava.net/yongboy/category/55089.html

这篇关于Tsung笔记之100万用户压测执行步骤篇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/425108

相关文章

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

Win11安装PostgreSQL数据库的两种方式详细步骤

《Win11安装PostgreSQL数据库的两种方式详细步骤》PostgreSQL是备受业界青睐的关系型数据库,尤其是在地理空间和移动领域,:本文主要介绍Win11安装PostgreSQL数据库的... 目录一、exe文件安装 (推荐)下载安装包1. 选择操作系统2. 跳转到EDB(PostgreSQL 的

Python3.6连接MySQL的详细步骤

《Python3.6连接MySQL的详细步骤》在现代Web开发和数据处理中,Python与数据库的交互是必不可少的一部分,MySQL作为最流行的开源关系型数据库管理系统之一,与Python的结合可以实... 目录环境准备安装python 3.6安装mysql安装pymysql库连接到MySQL建立连接执行S

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

Spring Boot3虚拟线程的使用步骤详解

《SpringBoot3虚拟线程的使用步骤详解》虚拟线程是Java19中引入的一个新特性,旨在通过简化线程管理来提升应用程序的并发性能,:本文主要介绍SpringBoot3虚拟线程的使用步骤,... 目录问题根源分析解决方案验证验证实验实验1:未启用keep-alive实验2:启用keep-alive扩展建

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用

Python下载Pandas包的步骤

《Python下载Pandas包的步骤》:本文主要介绍Python下载Pandas包的步骤,在python中安装pandas库,我采取的方法是用PIP的方法在Python目标位置进行安装,本文给大... 目录安装步骤1、首先找到我们安装python的目录2、使用命令行到Python安装目录下3、我们回到Py

SpringBoot项目使用MDC给日志增加唯一标识的实现步骤

《SpringBoot项目使用MDC给日志增加唯一标识的实现步骤》本文介绍了如何在SpringBoot项目中使用MDC(MappedDiagnosticContext)为日志增加唯一标识,以便于日... 目录【Java】SpringBoot项目使用MDC给日志增加唯一标识,方便日志追踪1.日志效果2.实现步

Linux系统中配置静态IP地址的详细步骤

《Linux系统中配置静态IP地址的详细步骤》本文详细介绍了在Linux系统中配置静态IP地址的五个步骤,包括打开终端、编辑网络配置文件、配置IP地址、保存并重启网络服务,这对于系统管理员和新手都极具... 目录步骤一:打开终端步骤二:编辑网络配置文件步骤三:配置静态IP地址步骤四:保存并关闭文件步骤五:重

mysql删除无用用户的方法实现

《mysql删除无用用户的方法实现》本文主要介绍了mysql删除无用用户的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 1、删除不用的账户(1) 查看当前已存在账户mysql> select user,host,pa