压测步骤-uload

1.在群里申请进行性能测试
2.搭建环境,开始测试
3.关闭服务,停掉所有相关进程
4.在群里通知大家环境可用
在压测机器 (2台)A B
杀掉RECOMMEND进程 ps -ef|grep recommend|awk '{print $2}'|xargs kill -9
其中一台搭建RS测试环境 提测branch分支和,main主线分支、RS的线上分支在branch流水线
注意 如果有词典更新,记得拉取dict。脚本很慢,大概需要16分钟。把词典拷贝到压测环境目录下
在压测机器搭建的2个环境rsbranch rsmain 起不同的端口 8603 8604
启动服务、测试服务是否启动成功、请求压测环境接口
压测工具uload:在发压机器也就是测试机器下载uload最新代码
2)修改conf/uload.conf
关键参数:
press_module : 1 ##post 请求设置为1
input_type : 14 ##post 请求设置为14
address : ip:port ## 发压地址(压测环境184机器的ipport),支持多个环境用逗号分割
input_file : ./test_file ##请求集地址
其他参数:
is_loop : 0 ##是否循环发送
press_size : 10 ##压力大小
press_number : 0 ##支持指定发送请求个数
press_time : 3600 ##支持控制发送时长(秒s 半小时或者1小时)
save_res : 1 ##是否保存后端返回的数据包
42 #压力使用的输入源
43 input_file : /home/work/xx/uload_all_file_old
先查看端口进程 user -avn tcp 8603
USER PID ACCESS COMMAND
8603/tcp work 16797 f.... recommend
开2个窗口在/home/xx/xx 分别执行
sh lookatUPID.sh -p 16797 -d 1 > responsebranch &
sh lookatUPID.sh -p 12627 -d 1 > responsemain &
执行完毕查看下lookatUPID进程 ps -ef|grep lookatUPID.sh
取线上3w用户的uid,让RD灌入redis,压测每个类型请求量在3w
实际操作:执行 python send_to_rs_all.py uid0824 23 ip:8503 请求传参类型为23的
跑完之后在 /home/work//res下生成req_file 和 res_file
每生成一个type类型的请求与返回后到 /home/work/xx/res 拷贝下文件重命名,以(类型+流量id)的格式把请求日志分别保存下来,否则会覆盖
最后整理到一个日志文件 作为发压请求
cat req_file_* > all_file_old
3)准备发压
1. 记得在此之前压测配置文件地址一定修改正确!!!
2.在184机器任意目录输入ulimit -c unlimited
3.记得删除184抗压机器服务的日志
4.以上OK之后在发压机器158机器 ./bin/uload &
启动服务,这样就可以在压测机器发压了
如果有问题,先停止uload进程
ps -ef|grep uload|grep -v grep|awk '{print $2}'|xargs kill -9
再杀掉lookatUPID.sh的进程
压测过程查看进程,登录184压测机器,查看会产生大量的进程。关注core日志
耗时统计脚本:根据耗时的flag统计耗时:statistics_rac_tag.py。
执行方式:拷贝脚本statistics_rac_tag.py到日志路径下面,执行:python statistics_rac_tag.py ./ $flag_t,可以统计所有日志的平均耗时的结果all_t,self_t等。生成的耗时结果文件放在log_statistics.all文件中。根据rec_type,dumisid统计耗时:rs_log_stat.sh。
执行方式:拷贝脚本rs_log_stat.sh到日志路径下面,执行:sh rs_log_stat.sh $log_path(required) $rec_type(required) $dumisid(optional)。
生成的结果:每个rec_type+dumisid为维度生成一个统计耗时文件,该文件以rec_type_$dumisid为前缀,拼上log_statistics.all。例如,sh rs_log_stat.sh ./ 20 50001,生成的rec_type=20的耗时结果文件是COMMON_GENERAL_50001_log_statistics.all。【每个rec_type对应日志中的一种类型,可以看下notice日志,例如,rec_type=20的请求,在notice日志中打的标记是COMMON_GENERAL】
这个脚本只支持已有的rec_type的统计,新增的不支持,需要自己添加
当前目录 统计all_t字段
把 recommend.log.notice.* 有耗时的日志写到test.log日志文件
因为代码里是打开test.log
cat recommend.log.notice*>test.log
把 recommend.log.notice.* 有耗时的日志写到rac.log日志文件
在主干分支 执行完后在生成log_statistics.all 这个文件不会被删除 会统计all_t的耗时 再执行self_t的时候再把self_t的耗时写进去到一个文件
注意修改rs_log_stat.sh文件,注意新增类型要增加配置,以及每个类型下每次插件可能变化,注意拿原始的recommend.log.notice.*到全部的总文件对比分析各耗时插件名称,及时补充修改rs_log_stat.sh文件。如果主干sh rs_log_stat.sh /home/xx/rsmain/output/log 13 506049报错,分析下temp日志,发现格式为all_t :144.05 self_t :9.894,实际正确的格式为all_t:210.94 self_t:10.435(正则是这样的)。用sed处理下sed 's/t :/t:/g' temp.log>temp.log.1
可能是正则有问题
tmp_compile = re.compile(" " + tag + ":[0-9]+")
tmp_compile = re.compile(" " + tag + ": *[0-9]+")
tmp_compile = re.compile(" " + tag + ": [0-9]+")
因为日志可能是 all_t:86.543 self_t:3.154
all_t: 86.543 self_t: 3.154
所以正则需要换下

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

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

相关文章

NAT的知识点和实现

1.NAT的作用: (1)、把内网私网IP转换公网IP; (2)、隐藏内网,起到保护内网作用; (3)、适当的缓解的IPv4地址空间枯竭; (4&#xff…

【数据分析面试】28.查找职工信息 (SQL文字处理/通配符查找)

题目 现在公司里有职工信息表Worker, HR需要你提供不同的职工信息,包括: 从 Worker 表中获取 “FIRST_NAME” 并以大写形式显示。从 Worker 表中获取 DEPARTMENT 的唯一值。查找 Worker 表中 FIRST_NAME 的前三个字符。查找 Worker 表中名为 ‘Amitabh…

值传递和地址传递

文章目录 目录值传递地址传递 目录 值传递 package com.zhang.parameter; //值传递 public class MethodDemo1 {public static void main(String[] args) {int a 10;System.out.println(a);System.out.println("~~~~~~~~~~~~~~~");change(a);//无论你传入的是什么 …

【Java, Git, React】Technical documentation 和 问题汇总解决

1. Technical documentation 1.1 Git 配置 git config --global user.name “名称” git config --global user.email “邮箱” git config --global http.sslVerify false git clone XXX 2. 问题汇总: 2.1 Permission Issue fatal: could not create work tree…

C脚本实现Wincc单按钮启动/停止

文章目录 前言实现步骤: 前言 在Wincc中实现单按钮启动/停止。即按一下,按钮关联的变量置位为1,再按一下,变量复位为0。 实现步骤: 在变量管理器新建变量"BF01_CP_HMI_SevName_Play";添加一个按…

备战Java面试

一.JAVA基础 1.八个基本数据类型,长,占几个字节,取值范围是多少。 基本类型: Byte 一般的数据 1个字节 取值范围 -128—127 short 极大的数据 2个字节 取值范围 -2的15次方到2的15次方减一 int 4个字节…

JS绘制电流闪烁流动效果

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>电流闪动动效</title><style>.sd1 {dis…

618买什么最划算?618买什么东西便宜?必备数码好物清单分享

​只不&#xff0c;马上又到了618购物节咯&#xff0c;数码产品的优惠力度尤为显著&#xff0c;是购买数码产品的绝佳时机。接下来&#xff0c;我将为大家分享几款性价比超高的数码产品&#xff0c;相信总有一款能吸引你的目光。 一、南卡OE MIX开放式蓝牙耳机 在618购物狂欢节…

linux中git的使用

为什么要有git git相当于一个仓库可以让我们更好的去管理我们的代码&#xff0c;实现版本的控制&#xff0c;上传到云端仓库。有了git,就可以实现多人同时开发一个项目&#xff08;每个负责一部分代码&#xff0c;最后都上传到同一个仓库&#xff09;。 git github/gitee 的区…

js 手写防抖、节流函数

防抖 在第一次触发事件时&#xff0c;不立即执行函数&#xff0c;而是给出一个期限值&#xff0c;比如200ms 如果在200ms内没有再次触发滚动事件&#xff0c;那么就执行函如果在200ms内再次触发滚动事件&#xff0c;那么当前的计时取消&#xff0c;重新开始计时 function de…

【Linux】LInux下的进程状态

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前正在学习c和算法 ✈️专栏&#xff1a;Linux &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章有啥瑕疵&#xff0c;希望大佬指点一二 如果文章对…

APP UI自动化测试,思路全总结在这里了

首先想要说明一下&#xff0c;APP自动化测试可能很多公司不用&#xff0c;但也是大部分自动化测试工程师、高级测试工程师岗位招聘信息上要求的&#xff0c;所以为了更好的待遇&#xff0c;我们还是需要花时间去掌握的&#xff0c;毕竟谁也不会跟钱过不去。 接下来&#xff0c…

react/vue跳转到文章指定位置简单demo

antd 好像有差不多功能的插件 &#xff0c; 但要求使用arco &#xff0c; arco上面的例子就很&#xff0c;&#xff0c;&#xff0c; 或者说根本就没有 不如自己写 &#xff0c;高度自定义 更加方便 &#xff0c; 有时候看别人的文档真的挺折磨的 vue跟react都差不多 &…

新书速览|数字身份认证技术与实践

本书不仅仅讲述标准解决方案以及相关理论&#xff0c;更重要的是以丰富的案例&#xff0c;讲透如何将这些理论应用到具体实际场景。 本书内容 《数字身份认证技术与实践》内容涵盖身份认证的基础理论&#xff0c;包括身份认证与授权的区别、常见的认证方式以及关键技术和协议&…

苹果App Store推出全新“关联定价”功能,助力开发者吸引留存订阅用户

苹果近日宣布推出App Store全新“关联定价”&#xff08;contingent pricing&#xff09;功能&#xff0c;旨在帮助开发者吸引并留住订阅用户。这项功能允许开发者为订阅用户提供折扣价格&#xff0c;前提是他们当前正在订阅另一项订阅服务。 苹果开发者网站上的一篇文章解释道…

代码随想录算法训练营33期 第五十天 | 188.买卖股票的最佳时机IV

dp[i][0] 不操作&#xff1b;d[i][1]第一次开始持有股票 //dp[i]当前天i的价值情况&#xff0c;dp[i][0]表示不操作的最大价值&#xff0c;dp[i][1]在当前天第一次持有的最大价值&#xff0c;dp[i][2]在当前天第一次卖出的最大价值, dp[i][3]在当前天第二次持有的最大价值&am…

苍穹外卖学习笔记(8.用户端历史订单模块,商家端订单管理模块)

目录 一、商家端订单管理模块1、查看历史订单2、查询订单详情3、取消订单4、再来一单5、代码开发6、测试 二、用户端历史订单模块1、订单搜索2、各个状态的订单数量统计3、查询订单详情4、接单5、拒单6、取消订单7、派送订单8、完成订单9、代码开发10、测试 三、校验收货地址是…

matlab学习005-利用matlab设计滤波器

目录 一&#xff0c;含有多个频率成分的三角信号 1&#xff0c;以采样频率fs20KHz对信号采样&#xff0c; 画出信号的波形&#xff1b; 1&#xff09;前期基础 2&#xff09;波形图 3&#xff09;代码 2&#xff0c;选取合适的采样点数&#xff0c;利用DFT分析信号的…

Python静态资源库之webassets使用详解

概要 Python webassets库是一个用于管理静态资源的工具,如CSS、JavaScript等,帮助开发者更有效地管理和优化网站的静态文件。本文将介绍如何安装和使用Python webassets库,以及它的特性、基本功能、高级功能、实际应用场景和总结部分。 安装 首先,需要安装Python webasse…

Mysql索引详解(索引分类)

文章目录 概述索引对查询速度的影响索引的优缺点索引类型一级索引和二级索引的区别MySQL 回表联合索引&#xff08;最左前缀原则主键索引和唯一索引的区别BTree索引和Hash索引的区别 覆盖索引索引下推加索引能够提升查询效率原因MySQL 索引结构采用 B树原因索引失效的场景MySQL…