关于性能:性能优化下组织结构同步优化二全量同步增量同步断点续传实现方式

看到这一篇文章的 xdm ,应该对组织构造同步有一些想法了吧,如果没有,能够看后面两篇文章,能够通过如下地址查看一下: 【性能优化上】第三方组织构造同步优化一,你 get 到了吗?<!----> 坑爹,线上同步近 3w 个用户导致链路阻塞引入发的线上问题,你经验过吗?这类文章,次要是冀望能给 xdm 带来不一样的思考,如有表述不当的中央,还请不吝赐教,冀望对你有帮忙 这篇文章次要是论述将长期表中的用户组数据/用户数组,依照既定的步骤同步到咱们的正式表,过程中遇到异常中断,能够对咱们的正式平台无影响,可能保障下一次同步工作过去依然能够进行断点续传 首先全量同步和增量同步别离指什么? 全量同步简略了解,全量同步,咱们就是将对方所有的数据,全副同步到咱们外部零碎中,对于组织构造同步的时候,咱们没有必要每一次都是全量的,个别是第一次,无到有的时候会用到全量同步,能够了解为全量笼罩 增量同步那么增量同步就比拟好了解了,此处的增量同步指的是,第三方数据对于目前外部零碎数据来说,哪一些是减少或者变动的数据,那么就同步这一部分数据到外部零碎中 那么对于咱们本次同步组织构造来说,就看外部零碎是否曾经存在了 /IDaaS 组,如果存在了,那么就走增量同步,如果不存在,则走全量同步 全量同步根本流程全量同步的根本流程比较简单,再来回顾一下之前文章的一张总体图 能够看到全量同步和增量同步在咱们整个同步流程的第四个阶段,到这个阶段的时候,第三方组织构造的数据曾经全副正确的写入到了咱们的长期表中 这个时候,咱们就须要将长期表中的数据依照咱们的逻辑和步骤写入到正式表中 此处阶段,显示判断是否有 /IDaaS 组,如果没有,则在同步记录表中写入 同步类型为 full 全量同步,如果有 /IDaaS 组,则记录同步类型为 incr 增量同步 全量同步比较简单,总共分成两个阶段,一个阶段是全量同步组 full_sync_group,一个是全量同步用户 full_sync_user 序号步骤含意1full_sync_group全量同步长期表中的组到正式表2full_sync_user全量同步长期表中的用户到正式表此处比较简单,同步用户之前,天然是先要将组给同步过去,齐全分分明,对于正式表中,数据是从无到有,所以步骤绝对就简略一些 开始全量同步 在进行全量同步前,依然还是查看以后的同步状态是否是 sync_in,且同步步骤是否是sync_temp_user,若不是则不解决 查看用户数量是否超过平台最大限度 若过程中呈现 error,则敞开当前任务,不进行同步,并且将同步记录中同步状态设置为同步中断 sync_interrupt,同步记录表中重试次数 +1查看长期表无效用户 + 已有正式表中未删除用户的数量是否超过平台最大限度(个别平台会有对于一个租户最多包容多少用户的限度),更新同步状态为同步失败 sync_fail,并且清空长期数据,告诉其余服务解决失败,且敞开当前任务<!----> 校验以后同步步骤是 sync_temp_user 或者 full_sync_group ,则开始正式将长期表的组信息同步到正式表中,并将以后的同步步骤批改为 full_sync_group这次这样进行判断,如果是 sync_temp_user 阐明第一次解决到这里,如果是 full_sync_group 步骤,阐明这个步骤之前被中断了,此刻须要断点续传获取长期表中的组深度,且获取依照深度排序的组列表依照由浅到深的将组数据写入到正式表中删除长期用户表如果过程中呈现 error,则在该租户的同步记录中,同步状态标记为 sync_interrupt当同步步骤是 full_sync_group 或者 full_sync_user 的时候,则开始将用户从长期表退出到正式用户表中,且将同步步骤批改为 full_sync_user同理,此处这样的解决逻辑,也是为了断点续传,逻辑之外,对于一个步骤中数据库的解决都是开启事务的一层一层的去增加用户,先从长期表中查问同一个深度下对应的所有用户从正式表中读取曾经存在的用户从长期表中依照例如 1000 条每次去读取数据(无效非法用户),写到到正式表中,校验如果用户曾经存在于正式表中,则记录抵触用户,且不录入该用户,反之亦然删除长期表中曾经插入到正式表中的用户数据,并在长期表中更新指定用户是非法的如果过程中呈现 error,则在该租户的同步记录中,同步状态标记为 sync_interrupt同步完结,则将同步状态设为 sync_success ,同步步骤设置为 sync_end,同时将长期表中非法的组,非法的用户全副读书进去,将非法数据传出去最终革除长期用户组表,和长期用户表 ,在 redis 中记录下一次须要同步的工夫增量同步根本流程增量同步的话,绝对步骤就会多一些,看起来可能会感觉简单,实际上依照如下步骤走的话,会很清晰并不简单 ...

September 20, 2023 · 1 min · jiezi

关于性能:性能优化上第三方组织结构同步优化一分状态分步骤的设计你-get-到了吗

在工作中,云产品之间天然少不了各种零碎的对接,零碎对接天然会波及到各种鉴权,以及须要将对方零碎的组织构造同步到己方外部零碎中来 当然,有的产品可能会去对接理论的第三方认证源和同步源,然而老本绝对比拟高,因为对接一个不同的源就须要去实现一套接口和逻辑,尽管流程大同小异,可理论工作量可不小 因而,大多数产品为了不便和节俭人力,是会抉择对接 IDaaS,让 IDaaS 去对接各种第三方认证源和同步源 此处的 IDaaS 解释一下: IDaaS 即 Identity as a Service,直译为身份即服务,是一个构建在云上的身份服务 接下来是对于上篇文章谈到的组织构造同步优化的思考,心愿可能给 xdm 带来不一样的思考 坑爹,线上同步近 3w 个用户导致链路阻塞引入发的线上问题,你经验过吗?根本介绍同步流程之前是本身的零碎去和企微,钉钉这样的第三方认证源/同步源进行对接,耗时耗力 当初是将这些工作全副由一个叫做 IDaaS 的模块来实现,能够说他也是一个第三方零碎,只是集成了罕用的一些第三方平台的认证源和同步源,专门的人做专门的事效率是最高的 根本交互如下: 过来做的很 low 的同步做法一个音讯近 3 w 用户,数据量 6 M 左右 明天次要是分享对于同步的做法,看了上一篇文章,有一点任何和教训的 xdm 就晓得,一个音讯外面放近 3w 个用户,这种形式解决真的是几乎了,不靠谱,危险十分高,对性能也影响很大 平时数据量小的时候没啥感觉,起量了,劫难就来了,因而咱们做需要做性能,要思考在后面,预防这样灾难性的问题以及对真的呈现这种问题的时候,要有预案 第三方组织构造同步性能优化须要思考哪些点那么经验了上次事变,天然下来要认真思考如何解决这种组织构造同步的问题,并且反对的用户量要30 W 起步(此处指的是 一个租户能够承载 30W,而不是整个平台 30W) 那么咱们须要思考如下几个问题: 从 IDaaS 获取数据的程序,形式如何解决?<!----> 服务 A 与 服务 B 的通信形式,提供多少个 RPC 接口来实现一次顺利的组织构造同步?<!----> 在同步数据过程中呈现了问题,异常中断了咱们须要如何复原,之前曾经同步了的数据须要如何去解决?<!----> 如何能力达到同步 30 w 用户无异样,且能顺利同步胜利<!----> 同步的数据如果不合乎平台的规定,须要筛选进去,并注明抵触起因,返回给前端页面 其实将上述问题思考分明,残缺的答复结束,基本上这个优化计划就能够落地了,那么咱们开始吧 从 IDaaS 获取数据的程序,形式如何解决?服务 A 去找 IDaaS 进行数据同步的时候,咱们能够分成四个阶段 ...

September 19, 2023 · 2 min · jiezi

关于性能:纯jsvforvue函数式组件vue普通组件性能对比

先说论断dom 节点数量对内存影响没设想中大,js 变量才是内存占用的首恶内存占用及运行性能比照:原生 js < v-for div ≈ v-for 函数式组件 < v-for 一般组件去虚构 dom 化框架正在崛起,成为一种新的抉择dom 节点数量对内存影响没设想中大(十万 div 仅占用 400mb)测试示例生成 100,000(十万)个 div,内存占用仅 400mb,均匀每个 div 占用内存 400 * 1024 kb / 100,000 = 4kb留神,这里内存占用是动态状态内存,即 div 生成实现后期待一会(约1min)内存回收实现后的内存占用,div 生成过程中会产生两头变量,内存占用会比动态时高。如果短时间多少清空 div 再从新生成,会导致内存占用变大组件过多,或者才是 vue 我的项目内存占用大、运行慢的起因别离以「纯 js 渲染 div」、「v-for 渲染 div」、「v-for 渲染函数式组件」、「v-for 渲染一般组件」为例做性能比照测试 「纯 js 渲染 div」运行示例,对应源码 10,000(一万)个 div 渲染耗时:26ms,均匀单个div渲染耗时:0.0026ms100,000(十万)个 div 渲染耗时:265ms,均匀单个div渲染耗时:0.0027ms100,000(十万)个 div 占用内存:528mb,均匀单个占用内存:528 * 1024 / 100,000 = 5.4kb「v-for 渲染 div」运行示例,对应源码 10,000(一万)个 div 应用 key 缓存节点渲染耗时:61ms,均匀单个div渲染耗时:0.0061ms不应用 key 缓存节点渲染耗时:91ms,均匀单个div渲染耗时:0.0091ms100,000(十万)个 div ...

July 10, 2023 · 1 min · jiezi

关于性能:通过-HTTP2-协议案例学习-Java-Netty-性能调优工具技巧与方法论

摘要Dubbo3 Triple 协定是参考 gRPC、gRPC-Web、Dubbo2 等协定特点设计而来,它汲取各自协定特点,齐全兼容 gRPC、Streaming 通信、且无缝反对 HTTP/1 和浏览器。当你在 Dubbo 框架中应用 Triple 协定,而后你就能够间接应用 Dubbo 客户端、gRPC 客户端、curl、浏览器等拜访你公布的服务,不须要任何额定组件与配置。除易用性以外,Dubbo3 Triple 在性能调优方面做了大量工作,本文将偏重对 Triple 协定背地的高性能机密进行深刻解说,波及一些有价值的性能调优工具、技巧及代码实现;在下一篇文章中,咱们将具体开展 Triple 协定在易用性方面的一些具体应用场景。 为什么要优化 Triple 协定的性能?自 2021 年开始 Dubbo3 就曾经作为下一代服务框架逐渐开始取代阿里外部宽泛应用的 HSF 框架,截止目前,阿里以淘宝、天猫等电商为代表的绝大多数外围利用曾经胜利降级到 Dubbo3。作为过来两年撑持阿里双十一万亿级服务调用的要害框架,Triple 通信协议的性能间接影响整个零碎的运行效率。 残缺内容请点击下方链接查看: https://developer.aliyun.com/article/1217925?utm_content=g_10... 版权申明:本文内容由阿里云实名注册用户自发奉献,版权归原作者所有,阿里云开发者社区不领有其著作权,亦不承当相应法律责任。具体规定请查看《阿里云开发者社区用户服务协定》和《阿里云开发者社区知识产权爱护指引》。如果您发现本社区中有涉嫌剽窃的内容,填写侵权投诉表单进行举报,一经查实,本社区将立即删除涉嫌侵权内容。

June 12, 2023 · 1 min · jiezi

关于性能:性能测试理论体系框架

一、性能测试理论体系1. 性能的两个方面1. 工夫及时性(软件运行速度快慢状况)2. 资源经济性(资源耗费状况(CPU、内存))2. 软件性能概述1. 性能指标2. 软件性能生命周期3. 性能影响因素4. 性能模型3. 性能测试概念4. 性能测试解决方案【性能测试罕用办法】1. 负载测试2. 压力测试3. 失效恢复测试4. 配置测试5. 并发测试6. 可靠性测试(稳定性测试/疲劳测试)7. 数据量测试5. 性能测试指标(同PTGM性能测试指标)6. 常用软件性能指标1. 响应工夫2. 并发用户数3. 吞吐量 1. RPS:每秒可能解决最大申请数 2. PPS:每秒显示页面数 3. PV:每天总的PAGE VIEW数 4. TPS:零碎每秒可能处理事务数量 5. QPS:每秒可能解决查问申请数量 6. 其余...4. 资源利用率7. 性能测试施行1. 性能测试过程模型 1. 通用模型PTGM(Performance Testing General Model ) 1. 测试后期筹备 2. 测试计划(包含但不限于以下内容) 1. 性能测试指标 1. 能力验证 1. 验证性能指标需要合乎状况 2. 取得零碎服务能力 3. 评估系统可靠性(成熟性、容错性、可恢复性) 2. 缺点发现 3. 能力布局 4. 性能优化 2. 用户流动剖析与业务建模 - 详见《性能测试业务模型及指标获取指南.docx》 3. 其余... 3. 测试工具引入 1. Jmeter 2. Gatling 3. LoadRunner 4. Locust 5. nGrinder 6. molotov 7. AB 8. twitter/iago 4. 测试设计与开发 1. 测试环境设计 2. 测试场景设计 3. 测试用例设计 4. 测试脚本开发 5. 测试执行与治理 6. 测试剖析 1. 疾速瓶颈定位 2. 性能降落曲线(性能拐点) 1. 单用户区:大量用户拜访区间,个别不作为参照基准; 2. 性能平缓:性能指标较好且安稳,可做负载测试参照规范; 3. 压力区:响应工夫有明显提高,增长率较低; 4. 性能拐点:响应工夫疾速回升,零碎可能呈现不稳固; 3. 内存剖析 4. 处理器剖析(CPU) 5. 磁盘I/O剖析 6. 过程/线程剖析 7. 网络分析 2. APTM(Agile Performance Testing Model) 1. 检查表,流动和倡议工具。适宜麻利开发,提供性能测试 3. 其余...二、其余参考文章如何做好性能压测 1-压测环境的设计和搭建如何做好性能压测 2-性能压测工具选型比照如何做好性能压测 3-阿里巴巴 PTS 在 JMeter 上的实际如何做好性能压测 4-并发模式与 RPS 模式之争,性能压测畛域的星球大战

January 18, 2022 · 1 min · jiezi

关于性能:性能工具之网络工具iperf3简单介绍

背景 在做性能测试网络带宽多大是听运维的还是本人测试过,明天介绍一款罕用测试网络工具iperf3,做性能测试所有用数据谈话。iperf3是用来测量一个网络最大带宽的工具。它反对调节各种参数比方发送持续时间,发送/接管缓存,通信协议。每次测试,它都会报告网络带宽,丢包率和其余参数。 装置:下载相应版本 https://iperf.fr/iperf-downlo... Linux之centos7装置办法 yum install iperf3.x86_64 -y win下载解压 在地址栏中敲cmd就能关上cmd窗口: 显示该目录: linux启动服务端 iper3 -s 查看linux中的ip地址为: 关上wind命令行 iperf3 -c 192.168.128.128 -p 5201 -i 1 -t 10 -w 111K 从下图可看出本机与虚拟机是1000MBytes局域网 client端输入: 客户端命令解释: -c示意服务器的IP地址; -p示意服务器的端口号; -i设置每次报告之间的工夫距离,单位为秒,如果设置为非零值,就会依照此工夫距离输入测试报告,默认值为零; -t设置传输的总工夫,Iperf在指定的工夫内,反复的发送指定长度的数据包,默认是10秒钟; -w设置套接字缓冲区为指定大小,对于TCP形式,此设置为TCP窗口大小,对于UDP形式,此设置为承受UDP数据包的缓冲区大小,限度能够承受数据包的最大值。 Linux窗口显示: server端输入: 以上是测试压力机与服务器之前的网络带宽简略办法,大家做性能测试是否也是这样确定网络带宽大小。 分享一个HashMap和Hashtable的区别 共同点: 底层都是哈希算法,都是双列汇合 区别: 1、HashMap是线程不平安的,效率高, Hashtable是线程平安的,效率低2、HashMap能够存储null键和null值 Hashtable不能够存储null键和null值

August 27, 2021 · 1 min · jiezi

关于性能:性能分析

testggggggggggggggggggggggggggggggggggg

July 19, 2021 · 1 min · jiezi

关于性能:PerfMa-社区全新升级为-HeapDump-性能社区整装再出发

作为开发者,咱们总会面临各种各样的性能问题。它们可能呈现在应用层、数据库层、框架层、虚拟机层。大部分问题能够借助咱们平时的教训解决,但有时候,咱们也会碰到一些难以定位、剖析和解决的疑难杂症。 纵观各大技术社区,无关性能的内容并不匮乏,但往往处于一种零散、无序的状态; 在搜索引擎搜寻某些经典性能问题,又难以在海量搜寻后果中疾速找到本人须要的答案,且这其中还存在大量反复的内容; 还有些非凡的问题,以本人一个人的智慧很难解决,这时候如果能有一位性能畛域的专家能够求助就好了。 PerfMa 社区就是在这样的背景下诞生的。 这里汇集了⼏⼗位业界顶级技术专家公益答疑,数百篇技术⼲货⽂章分享,上千例疑难案例深⼊分析,是数⼗万技术爱好者学习交换的乐园。 近两年来,随着越来越多小伙伴退出,PerfMa 社区一直壮大。但咱们深知咱们的网站在产品体验、内容组织等方面还有很大的提高空间。 随着 PerfMa 的疾速倒退,社区板块也取得了越来越多的关注和资源搀扶。所以,在激情似火的七月上,咱们富丽降级了!PerfMa 社区正式更名为 HeapDump 性能社区!Heap Dump 也叫堆转储文件,是一个 Java 过程在某个工夫点上的内存快照,对其进行剖析能够帮忙咱们更加正当地应用内存,这也是性能优化畛域十分重要的一课。咱们将其作为社区新名称,标记着咱们在性能畛域深耕的信心,以及成为性能畛域领军者的信念。 更新内容 1.社区首页改版 (1)热门资讯收罗了你们感兴趣的各种资讯,来 HeapDump 学习休闲两不误 (2)热门问答会集了热度最高的求助问答,一起来围观疑难问题的解决过程 (3)热门文章整顿了浏览互动量最高的经典文章,好内容值得重复咀嚼 (4)热门探讨在这里你能够探讨 JVM 参数应用领会,也能够吐槽或褒扬社区产品工具 (5)热门插件性能问题的乐高——XPocket 集成的多个开源性能插件等你来试用,还能够被动奉献插件哦 2.积分商城上线 自年初积分零碎上线以来,许多用户踊跃沉闷,积攒了大量积分,却苦于无处“生产”。排除了重重困难之后,积分商城终于跟大家见面了!大家在社区里通过签到、互动、奉献内容取得的积分,都能够在积分商城兑换各种礼品,有品牌定制的各种周边产品,有技术进阶书籍,还有热门电子产品哦! 3.其余降级 除了以上两处降级外,咱们还会继续地优化咱们社区的应用体验,除了产品体验,还有内容方向的优化,都在稳步推动中~当前,大家会看到咱们社区越来越好用! 精选性能文章: JVM 源码剖析之一个 Java 过程到底能创立多少线程 从Linux源码看Socket(TCP)的accept SafePoint 与 Stop The World 全解(基于OpenJDK 11版本) 跟Kafka学技术系列之工夫轮 一次残缺的JVM堆外内存透露故障排查记录 为什么容器内存占用居高不下,频频 OOM 一次百万长连贯压测 Nginx OOM 的问题排查剖析 一次压缩引发堆外内存过高的教训 JVM源码剖析之临门一脚的OutOfMemoryError齐全解读 Linux上TCP的几个内核参数调优 重大事故!IO问题引发线上20台机器同时解体 帮助美团kafka团队定位到的一个JVM Crash问题 精选性能问答: 利用集群个别实例 young gc 工夫忽然飙升 javax.net.ssl.SSLException: Server key这个报错原理有大神能科普一下吗? ...

July 19, 2021 · 1 min · jiezi

关于性能:第41问组提交是怎样提高性能的

问在图解系列中, 咱们介绍过组提交的概念 (https://mp.weixin.qq.com/s/_W..., 这次咱们通过试验来察看其作用 试验照例宽油起一个数据库: 这里咱们调整了刷盘节奏, 使得景象会更显著一些. 同时, 双一的刷盘配置也是生产环境保持数据牢靠的举荐配置. 咱们进行一次压测: 开启压测的同时, 应用 pt-ioprofile 监控 IO : 咱们再进行一次压测, 这次将压力并发调大一倍: 压测的同时, 还是应用 pt-ioprofile 监控 IO 次数: 咱们能够看到: 在压力扩充一倍的状况下, 总体运行时长从55s进步到67s (进步20%), 但 MySQL 对各文件的 IO 次数并没有晋升太多 (此处以"对 binlog 的刷盘次数"为例, 进步了1%) 咱们再更直观的看一下组提交的状况: 通过 binlog 中的 last_committed , 能够确定事务被分到了哪个提交组里 接下来别离剖析一下两次测试的事务数: 能够看到两次测试的提交组数进步了25%, 事务数进步了100%, 大部分事务都合并到了提交组里进行提交. 这就是组提交的作用: 将多个事务放在一个 IO 内进行提交, 以节俭 IO 次数 小贴士 如果大家应用 MySQL 8.0 做试验, 并将 binlog_transaction_dependency_tracking 配置成 WRITESET 或者 WRITESET_SESSION , 那依照 last_commit 字段辨认提交组的办法会不精确. ...

July 2, 2021 · 1 min · jiezi

关于性能:性能基础之浅谈常见接口性能压测

背景随着支流零碎的服务化设计,特地是SOA架构和微服务架构的风行,接口曾经成为各零碎间通信的桥梁。所以,接口的性能压测也变得越来越重要。 SOA(Server OrientedArchitecture,面向服务架构)是目前通用的组件模型。它将软件系统的不同功能模块(被称为服务)通过接口的模式分割起来。这里的接口能够是具体的接口服务也能够是连贯两个模块通信的中间件。一个大型项目通常是由多个零碎开发组成的,每个零碎都有专门的研发团队来负责,单个零碎的性能被称作一个模块。而模块的性能是按后盾的接口实现和UI出现来划分。 微服务架构在某种程度上是面向服务的架构SOA持续倒退的下一步。基本上,这种架构类型是开发软件,网络或挪动应用程序作为独立服务套件(又称微服务)的一种非凡形式。这些服务的创立仅限于一个特定的业务性能,如用户治理、用户角色、电子商务车、搜索引擎、社交媒体登录等。此外,它们是齐全独立的,也就是说它们能够写入不同的编程语言并应用不同的数据库。集中式服务治理简直不存在,微服务应用轻量级HTTP、REST或Thrift API进行通信。 次要指标取得单接口/单业务容量 发现应用程序的性能瓶颈 发现数据库的性能瓶颈 测试策略概述很多时候咱们在设计接口性能压测脚本须要调用零碎接口平台,如果接口平台没有提供可用的UI界面,那么就须要咱们本人写代码联合压测工具连贯接口平台,依照对应的协定调用接口。接口办法运行过程中须要调用很多依赖的办法。依赖办法不同的返回内容也是须要思考的。然而依赖接口内容咱们是不可控的。有时候是依赖模块不能失常运行,有时是依赖模块还未开发完,有时是咱们是主观上无条件让依赖模块返回想要的异样值。这时候咱们在压测的时候就须要Mock零碎实现了,在Mock零碎(挡板)定义好接口相干数据后,填入指标返回后果,就能模仿依赖接口返回想要的内容 联合开源的性能测试工具Jmeter(本文只讲此工具),只须要把URL通过模仿HTTP并发申请就能够失去对应的执行后果,再依据返回后果判断接口执行是否正确。 所以相对来说工夫老本比拟低,一个场景转化成测试脚本也是比较简单的事件。接口公布上线后,参数很少发生变化。因为接口做为服务公布后会有多个调用方,如果参数发生变化将告诉所有调用方做响应的批改,否则将呈现调用方无奈应用的状况。接口定义稳固不太容易发生变化,所以接口性能压测的前期保护工作也就不多。 次要类型类型具体内容效率(性能)并发数、响应工夫 、TPS、错误率、资源占用稳定性单用户长时间下的重复操作、多用户长时间并发操作、异样值下的长时间重复操作、最大故障时长压力超规格负载下的规格内的解决恢复性负载失常后,零碎是否失常复原常见接口目前支流零碎的接口大抵可分为HTTP接口和自研RPC(Remote Procedure call,近程过程调用)接口,而HTTP接口可能更为广泛一些。 HTTP接口个别压测WEB零碎都会接触HTTP接口 常见有HTTP和HTTPS两种协定 HTTP 超文本传输协定,默认80端口 HTTPS 平安超文本传输协定,能够了解为http协定的平安版,默443端口 HTTP常见两种申请办法:GET和POST 与Server进行申请/响应时,两种最常被用到的两种办法 GET 从指定的资源申请数据 POST向指定的资源提交要被解决的数据 RPC接口RPC(Remote Procedure Call Protocol)——近程过程调用协定,它是一种通过网络从近程计算机程序上申请服务,而不须要理解底层网络技术的协定。 其实简略的说,就是象调用本地的类的办法样来调用服务器端的办法实现。 须要要对RMI(Remote Method Invoke,近程办法调用)中的stu(桩)和skeleton(骨架)的概念有一点理解。RMI的代理模式是通过代理对象将办法传递给理论对象的。Stub驻留客户端,承当着代理近程对象实现者的角色。skeleton类帮忙近程对象与sttub连贯进行通信。 次要组成元素: 次要原理: 实体对象和业务接口由客户端和服务端专用。 接口实现是由服务端对定义好的业务接口进行性能实现,并将接口实例注册服务中提供给客户端调用。 目前咱们接触到RPC接口次要有Hession、Dubbo、HTTP、Thrift、Hprose等 Hession、Dubbo、Thrift、Hprose都是近程办法调用的一种实现,客户端须要保留stub来调用接口。这就是为什么咱们性能压测的时候须要Jmeter援用jar包。 Hession:是一个轻量级的remoting onhttp工具,应用简略的办法提供了RMI的性能,近程办法调用的一种,采纳二进制RPC协定(基于Http协定),适宜发送二进制数据,不适宜简单对象类型的传输。 Dubbo:阿里巴巴开源的一个高性能优良的服务框架,一个近程办法调用的框架。Dubbo注册核心负责服务地址的注册和查找,相当于服务目录:Dubbo监控核心负责统计各服务调用次数、调用工夫 Thrift:facebook开源的一个可互操作和可伸缩服务的框架一个近程办法调用的框架,可扩大且跨语言的服务的开发。容许你定义一个简略的定义文件中的数据类型和服务接口(IDL)。之后生成服务器骨架和客户端调用代理 Hprose:国人开发的一个近程办法调用的开源框架。它是一个先进的轻量级的跨语言跨平台面向对象的高性能近程动静通信中间件。 HTTP:常见于WEB利用,基于HTTP协定传输文本。当一个URL发送申请时,服务端doGet或者doPost办法会被调用,获取相应的参数。压测HTTP接口时,只须要通过定位URL接口并传参断言,绝对比较简单。 上面针对几种接口简要阐明: Hession接口压测: 通过接口URL获取接口,如果复制接口定义及其自定义类,包名尽量跟开发包保持一致,不倡议应用间接复制代码的形式,因为这样不便于保护,应用Maven在pom文件引入接口和Hessian依赖的jar包。通常借助HessianSpringFactoryBean获取,再联合Jmeter自定义JAVA类申请和Stub的形式接入测试工具进行压测 HessianProxy是hessian client解决客户端申请的外围类,采纳proxy模式,代理客户端对近程接口的调用,hessian client的主程序的时序图如下: Dubbo接口压测测试: 如果通过Dubbo注册核心获取服务接口,那么搭建测试环境的时候须要指定Dubbo注册核心的地址,扩大Jmeter也须要配置Dubbo注册核心地址以及对外提供服务的接口名称。直连的形式在Jmeter须要导入Dubbo框架相干的JAR包。当初有现成的Jemter dubbo插件,间接引入即可 节点阐明: Provider:裸露服务的服务提供方 Consumer:调用近程服务的服务生产方 Registry:服务注册与发现的注册核心 Monitor:统计服务调用次数和服务调用工夫的监控核心 Container:服务运行容器 Jemter Dubbo插件地址:https://github.com/dubbo/jmet... Jemter DubboSample截图 Thrift接口压测: 通过Stub驻留客户端调用用接口描述语言来写接口(IDL),生成服务器skeleton(骨架)类和客户端调用代理,skeleton类帮忙近程对象与sttubb驻留客户端连贯进行通信,客户端和服务器端是紧耦合在一起的,你不能独自批改任何一端的接口(不是说服务器端代码的实现),服务器和客户端传递的数据类型是严格匹配的 具体的办法能够参照上面这篇文章: 性能工具之Jmeter压测Thrift RPC服务 ...

May 23, 2021 · 2 min · jiezi

关于性能:数据传输-DTLE-在弱网络环境下的性能报告

作者:刘安爱可生测试团队成员,次要负责 DTLE 开源我的项目相干测试工作,善于 Python 自动化测试开发,最近醉心于 Linux 性能剖析优化的相干常识。 本文起源:原创投稿 *爱可生开源社区出品,原创内容未经受权不得随便应用,转载请分割小编并注明起源。 背景条件:应用 sysbench 压力工具对 10 张 1 万记录表进行增改删操作应用 TC 工具来模仿高延时,低带宽场景工具筹备:1.tc # 模仿网络带宽受限以及减少提早 2.iperf3 # 验证网络带宽 3.sysbench # 制作数据压力 环境筹备:1.DTLE 版本 3.20.10.0 2.服务器 | IP | 用处 | | ------------- | ------------ | | 10.186.18.123 | 源端数据库 | | 10.186.18.117 | 指标端数据库 | | 10.186.63.20 | 源端DTLE | | 10.186.63.145 | 指标端DTLE | 3.在两台 DTLE 服务器上增加网络带宽限度以及减少提早(经测试网络提早配置只对发送无效,故须要在源端和指标端同时增加 TC 规定,每端提早配置为预期提早的一半)。 #!/usr/bin/env bash# Name of the traffic control command.TC=`which tc`# The network interface we're planning on limiting bandwidth.IF=eth0 # Interface# Download limitDNLD=2mbit # DOWNLOAD Limit# Upload limitUPLD=2mbit # UPLOAD Limit# IP address of the machine we are controllingIP=10.186.63.145 # Host IP#IP=10.186.63.20# Network latencyDELAY=125ms# Filter options for limiting the intended interface.U32="$TC filter add dev $IF protocol ip parent 1:0 prio 1 u32"$TC qdisc add dev $IF root handle 1: htb default 1$TC class add dev $IF parent 1: classid 1:10 htb rate $DNLD$TC class add dev $IF parent 1: classid 1:20 htb rate $UPLD$TC qdisc add dev $IF parent 1:10 handle 10: netem delay $DELAY$TC qdisc add dev $IF parent 1:20 handle 20: netem delay $DELAY$U32 match ip dst $IP/32 flowid 1:10$U32 match ip src $IP/32 flowid 1:204.验证配置失效 ...

March 22, 2021 · 2 min · jiezi

关于性能:译-Nodejs的性能监控-Part-1-监控的指标

translate from 《Node.js Performance Monitoring - Part 1: The Metrics to Monitor》 在深入研究Node.js应用程序的性能以及如何进步性能时,有几个比拟外围的指标十分重要和有帮忙,让咱们从以下几个要害的指标来学习剖析Node.js的性能。 【cpu usage】Node利用个别不会耗费很多的CPU,如果有高CPU那么阐明你的app有很多同步操作。而他们会block事件循环,这会导致你的异步工作回调也被阻止了。 而CPU使用率高的程序不肯定是谬误的程序,如果你要在一个web-server里运行一个cpu密集型的程序,这个工作最好是放到一个独自过程里,否则它会让你的服务变得异样迟缓影响你的用户。找到引起cpu升高的问题,是理解node应用程序的良好开端。 【堆内存应用、内存透露、垃圾收集】Node.js对内存有一个独特的限度 - 一个过程的最大堆容量为1.5GB(cyj注: 这个应该跟机器cpu架构无关),无论运行该过程的机器上有多少可用内存。理解这一点对于架构设计和测试你的利用至关重要。 内存透露是Node.js中的常见问题,并且是在对象被援用太长时引起的 - 换句话说,一个变量即便不再须要了但还是存储着它的援用。 失常状况下,垃圾收集器会开释不被应用的内存,以释放出来给利用持续应用。然而,垃圾收集器无奈开释这些在过期日期之后挂起的变量所应用的内存。如果您的应用程序内存使用量稳步增长而不是通过垃圾回收周期性地缩小,那么您可能会遇到内存透露问题 【事件循环的滞后 Lag in EventLoop】Node.js的外围劣势之一就是速度快。它被构建为疾速和异步地解决多个事件.这种劣势来自事件循环,它容许应用程序疾速响应这些事件。在优化应用程序以进步速度时,理解事件循环减慢的工夫和起因十分重要。 随着事件循环的每个循环变慢,每个事件将破费更长的工夫来解决和操作。 从性能上讲,这能够将Node.js升高到无响应的水平。 一些拖慢事件循环的case: 长时间运行的同步工作在事件循环的单个滴答中破费太多工夫也可能是性能问题的本源。 您无奈打消工作执行cpu所消耗的工夫,但咱们须要留神在任何给定工夫内破费的工夫。 如果工作工夫超过咱们可承受的响应工夫,那么在不同的过程中执行该工作可能是有意义的。 每个循环的工作一直减少Node.js跟踪须要在事件循环的各个阶段解决的所有函数和回调。当您的服务器看到负载减少时,每个循环的工作数量开始减少。当此计数过高时,您的用户将开始看到响应工夫的减少。好消息是扩充运行应用程序的过程数量通常能够缓解这种状况,并将您的网站性能复原到失常程度

March 3, 2021 · 1 min · jiezi

关于性能:使用Maven创建Gatling性能测试项目

简介Gatling是一款基于Scala 开发的高性能服务器性能测试工具,它次要用于对服务器进行负载等测试,并剖析和测量服务器的各种性能指标。Gatling次要用于测量基于HTTP的服务器,比方Web应用程序,RESTful服务等,除此之外它领有以下特点: 反对Akka Actors 和 Async IO,从而能达到很高的性能反对实时生成Html动静轻量报表,从而使报表更易浏览和进行数据分析反对DSL脚本,从而使测试脚本更易开发与保护反对录制并生成测试脚本,从而能够不便的生成测试脚本反对导入HAR(Http Archive)并生成测试脚本反对Maven,Eclipse,IntelliJ等,以便于开发反对Jenkins,以便于进行继续集成反对插件,从而能够扩大其性能,比方能够扩大对其余协定的反对开源收费下载地址:Gatling官网 收费版本 Gatling Open Source免费版本 Gatling FrontLine装置Gatlingscoop install gatling装置胜利后目录构造如下: bin: gatling也就两种组件-录制的组件和运行的组件;这个目录外面有两种脚本,一个是运行recorder的,也就是录制组件启动脚本;一个是运行组件的启动脚本;conf: 放配置文件的目录。个别状况下你想要批改一些运行参数,都可来这里搞定;lib: 外面是一些jar包,gatling的运作全靠他们了;咱们仅作为使用者临时不用去理睬;results: 测试报告目录;target: 你启动运行组件后,gatling会为你编译好所有的.scala脚本,而编译后的class文件就会在这里;user-files: 寄存你录制后的.scala脚本;<br/> 应用maven创立Gatling我的项目环境筹备装置jdk scoop install adopt8-hotspot装置maven scoop install maven装置scala scoop install scala装置idea scoop install idea创立工程idea创立骨架 创立骨架GroupId: io.gatling.highchartsArtifactId: gatling-highcharts-maven-archetypeVersion: 3.5.0点击查看最新版本 创立工程 期待上述工程编译,而后装置scala插件 官网测试工程 自定义工程,援用jar包 运行测试 查看测试报告 参考文档https://www.jianshu.com/p/90a... https://blog.csdn.net/qunyaoa...

January 26, 2021 · 1 min · jiezi

关于性能:性能之巅定位和优化程序CPU内存IO瓶颈

摘要:性能优化指在不影响零碎运行正确性的前提下,使之运行得更快,实现特定性能所需的工夫更短,或领有更弱小的服务能力。一、思维导图 二、什么是性能优化?性能优化指在不影响零碎运行正确性的前提下,使之运行得更快,实现特定性能所需的工夫更短,或领有更弱小的服务能力。 关注不同程序有不同的性能关注点,比方科学计算关注运算速度,游戏引擎重视渲染效率,而服务程序谋求吞吐能力。 服务器个别都是可程度扩大的分布式系统,零碎解决能力取决于单机负载能力和程度扩大能力,所以,晋升单机性能和晋升程度扩大能力是两个次要方向,实践上零碎程度方向能够有限扩大,但程度扩大后往往导致通信老本飙升(甚至瓶颈),同时面临单机解决能力降落的问题。 指标掂量单机性能有很多指标,比方:QPS(Query Per Second)、TPS、OPS、IOPS、最大连接数、并发数等评估吞吐的指标。 CPU为了进步吞吐,会把指令执行分为多个阶段,会搞指令Pipeline,同样,软件系统为了晋升解决能力,往往会引入批处理(攒包),跟CPU流水线会引起指令执行Latency减少一样,随同着零碎负载减少也会导致提早(Latency)减少,可见,零碎吞吐和提早是两个抵触的指标。 显然,过高的提早是不能承受的,所以,服务器性能优化的指标往往变成:谋求可容忍提早(Latency)下的最大吞吐(Throughput)。 提早(也叫响应工夫:RT)不是固定的,通常在一个范畴内稳定,咱们能够用均匀时延去评估零碎性能,但有时候,均匀时延是不够的,这很容易了解,比方80%的申请都在10毫秒以内失去响应,但20%的申请时延超过2秒,而这20%的高提早可能会引发投诉,同样不可承受。 一个改良措施是应用TP90、TP99之类的指标,它不是取均匀,而是需确保排序后90%、99%申请满足时延的要求。 通常,执行效率(CPU)是咱们的重点关注,但有时候,咱们也须要关注内存占用、网络带宽、磁盘IO等,影响性能的因素很多,它是一个简单而乏味的问题。 三、基础知识能编写运行正确的程序不肯定能做性能优化,性能优化有更高的要求,这样讲并不是想要吓阻想做性能优化的工程师,而是捕风捉影讲,性能优化既须要扎实的零碎常识,又须要丰盛的实践经验,只有这样,你能力具备case by case剖析问题解决问题的能力。 所以,相比间接给出论断,我更违心多花些篇幅讲一些基础知识,我保持认为底层根底是了解并把握性能优化技能的前提,值得破费一些工夫钻研并把握这些根技术。 CPU架构你须要理解CPU架构,了解运算单元、记忆单元、管制单元是如何既各司其职又相互配合实现工作的。 你须要理解CPU如何读取数据,CPU如何执行工作。你须要理解数据总线,地址总线和管制总线的区别和作用。你须要理解指令周期:取指、译指、执行、写回。你须要理解CPU Pipeline,超标量流水线,乱序执行。你须要理解多CPU、多外围、逻辑核、超线程、多线程、协程这些概念。存储金字塔CPU的速度和访存速度相差200倍,高速缓存是逾越这个鸿沟的桥梁,你须要了解存储金字塔,而这个层次结构思维基于着一个称为局部性原理(principle of locality)的思维,它对软硬件零碎的设计和性能有着极大的影响。 局部性又分为工夫局部性和空间局部性。 缓存 古代计算机系统个别有L1-L2-L3三级缓存。 比方在我的零碎,我通过进入 /sys/devices/system/cpu/cpu0/cache/index0 1 2 3目录下查看。 size对应大小、type对应类型、coherency_line_size对应cache line大小。 每个CPU外围有独立的L1、L2高速缓存,所以L1和L2是on-chip缓存;L3是多个CPU外围共享的,它是off-chip缓存。 L1缓存又分为i-cache(指令缓存)和d-cache(数据缓存),L1缓存通常只有32K/64KB,速度高达4 cycles。L2缓存能到256KB,速度在8 cycles左右。L3则高达30MB,速度32 cycles左右。而内存高达数G,访存时延则在200 cycles左右。所以CPU->寄存器->L1->L2->L3->内存->磁盘形成存储层级构造:越凑近CPU,存储容量越小、速度越快、单位成本越高,越远离CPU,存储容量越大、速度越慢、单位成本越低。 虚拟存储器(VM)过程和虚拟地址空间是操作系统的2个外围形象。 零碎中的所有过程共享CPU和主存资源,虚拟存储是对主存的形象,它为每个过程提供一个大的、统一的、公有的地址空间,咱们gdb调试的时候,打印进去的变量地址是虚拟地址。 操作系统+CPU硬件(MMU)严密单干实现虚拟地址到物理地址的翻译(映射),这个过程总是缄默的主动的进行,不须要利用程序员的任何干涉。 每个过程有一个独自的页表(Page Table),页表是一个页表条目(PTE)的数组,该表的内容由操作系统治理,虚拟地址空间中的每个页(4K或者8K)通过查找页表找到物理地址,页表往往是层级式的,多级页表缩小了页表对存储的需要,命失(Page Fault)将导致页面调度(Swapping或者Paging),这个惩办很重,所以,咱们要改善程序的行为,让它有更好的局部性,如果一段时间内访存的地址过于发散,将导致平稳(Thrashing),从而重大影响程序性能。 为了减速地址翻译,MMU中减少了一个对于PTE的小的缓存,叫翻译后备缓冲器(TLB),地址翻译单元做地址翻译的时候,会先查问TLB,只有TLB命失才会查问高速缓存(L1-2-3)。 汇编根底尽管写汇编的场景越来越少,但读懂汇编仍然很有必要,了解高级语言的程序是怎么转化为汇编语言有助于咱们编写高质量高性能的代码。 对于汇编,至多须要理解几种寻址模式,理解数据操作、分支、传送、管制跳转指令。 了解C语言的if else、while/do while/for、switch case、函数调用是怎么翻译成汇编代码。了解ebp+esp寄存器在函数调用过程中是如何构建和撤销栈帧的。了解函数参数和返回值是怎么传递的。异样和零碎调用异样会导致控制流渐变,异样控制流产生在计算机系统的各个档次,异样能够分为四类: 中断(interrupt):中断是异步产生的,来自处理器内部IO设施信号,中断处理程序分上下部。 陷阱(trap):陷阱是无意的异样,是执行一条指令的后果,零碎调用是通过陷阱实现的,陷阱在用户程序和内核之间提供一个像过程调用一样的接口:零碎调用。 故障(fault):故障由谬误状况引起,它有可能被故障处理程序修复,故障产生,处理器将管制转移到故障处理程序,缺页(Page Fault)是经典的故障实例。 终止(abort):终止是不可复原的致命谬误导致的后果,通常是硬件谬误,会终止程序的执行。 零碎调用: 内核态和用户态 你须要理解操作系统的一些概念,比方内核态和用户态,应用程序在用户态运行咱们编写的逻辑,一旦调用零碎调用,便会通过一个特定的陷阱陷入内核,通过零碎调用号标识性能,不同于一般函数调用,陷入内核态和从内核态返回须要做上下文切换,须要做环境变量的保留和复原工作,它会带来额定的耗费,咱们编写的程序应防止频繁做context swap,晋升用户态的CPU占比是性能优化的一个指标。 过程、线程、协程在linux内核中,过程和线程是同样的零碎调用(clone),过程跟线程的区别:线程是共享存储空间的,每个执行流有一个执行控制结构体,这外面会有一个指针,指向地址空间结构,一个过程内的多个线程,通过指向同一地址构造实现共享同一虚拟地址空间。 通过fork创立子过程的时候,不会马上copy一份数据,而是推延到子过程对地址空间进行改写,这样做是正当的,此即为COW(Copy On Write),在利用开发中,也有大量的相似借鉴。 协程是用户态的多执行流,C语言提供makecontext/getcontext/swapcontext系列接口,很多协程库也是基于这些接口实现的,微信的协程库libco(已开源)通过hook慢速零碎调用(比方write,read)做到静默替换,十分奇妙。 ...

December 9, 2020 · 1 min · jiezi

关于性能:第24问一主多从的半同步复制到底是哪个-slave-拖慢了性能

问题咱们都晓得,半同步复制中,如果 slave 比较慢,会拖慢 master 的提交性能。 那么,在一主多从的半同步架构中,如果 master 的提交性能慢,如何判断是哪个 slave 拖慢了性能? 试验先通过 dbdeployer 疾速搭建一主两从半同步集群: 上面给 master 施加一些压力: 而后咱们用 strace,拖慢 slave2 的运行速度。 因为半同步复制的起因,当初 slave2 拖慢了 master 的提交性能。咱们开始诊断,设置半同步插件的日志级别为 16: 查看 master 的 error log: 大略扫一下 error log,如图举例,发现大部分半同步阻塞,最初收到的都是 server_id 为 300 的 slave。而在咱们的环境中,slave2 的 server_id 恰好是 300。最初,记得将调整的日志级别调回来: 半同步插件并没有提供方便的办法查看各个 slave 谁拖慢了性能,所以咱们通过调试日志来查看最初一个返回的 ack 都来自于哪台 slave。 大家应用此办法时,要留神调试日志的量比拟大,不要开启太久以防占用过多磁盘。 对于 MySQL 的技术内容,你们还有什么想晓得的吗?连忙留言通知小编吧!

October 23, 2020 · 1 min · jiezi

关于性能:必须收藏20个开发技巧教你开发高性能计算代码

摘要:华为云专家从优化布局 / 执行 / 多过程 / 开发心理等20个要点,教你如何开发高性能代码。高性能计算,是一个十分宽泛的话题,能够从专用硬件/处理器/体系结构/GPU,说到操作系统/线程/过程/并行/并发算法,再到集群/网格计算,最初到天河二号(TH-1)。 咱们这次的分享会从集体的实际我的项目摸索登程,与大家分享本人摸爬滚打得出的心得体会,判若两人的保持原创。其中内容波及到优化布局 / 执行 / 多过程 / 开发心理等约20个要点,其中例子代码片段,应用Python。 高性能计算,在商业软件利用开发过程中,要解决的外围问题,用很文言的形式来说,“在无限的硬件条件下,如何让一段本来跑不动的代码,跑起来,甚至飞起来。” 性能晋升教训举2个例子,随便感触下。 (1)635万条用户浏览文档的历史行为数据,数据处理工夫,由50小时,优化到15秒。(是的,你没有看错) (2)基于Mongo的宽表创立,由20小时,优化到进来打杯水的功夫。 在大数据的时代,一个优良的程序员,能够写出性能比其他人的程序高出数百倍,甚至数千倍,具备这样的技能,对产品的奉献无疑是很大的,对集体而言,也是本人履历上亮点和加分项。 聊聊历史2000年前后,因为PC硬件限度,那一代的程序员,比方,国内的求伯君 / 雷军,国外的比尔盖茨 / 卡马特,都是能够从机器码 / 汇编的角度来晋升程序性能。 到2005年前后,PC硬件性能倒退迅速,高性能优化经常听到,来自嵌入式设施和挪动设施。那个年代的挪动设施支流应用J2ME开发,可用内存128KB。那个年代的程序员,须要对程序大小(OTA下载,有数据流量限度,如128KB),内存应用都精打细算,真的是掐着指头算。比方,通常一个程序,只有一个类,因为新增一个类,会多应用几K内存。数据文件会合并为一个,缩小文件数,这样须要算,比方从第几个字节开始,是什么数据。 2008年前后,第一代iOS / Android智能手机上市,App可用内存达到1GB,App能够通过WIFI下载,App大小也能够达到一百多MB。我方才看了下我的P30,就存储空间而言,QQ应用了4G,而微信应用了10G。设施性能晋升,可用内存和存储空间大了,程序员们终于“解放”了,直到–大数据时代的到来。 在大数据时代下,数据量疯狂增长,一个大的数据集操作,你的程序跑一早晨才出后果,是常有的事。 基础知识本次分享假如读者曾经理解了线程/过程/GIL这些概念,如果不理解,也没有关系,能够读下以下的摘要,并记住上面3点基础知识小结即可。 什么是过程?什么是线程?两者的差异?以下内容来自Wikipedia: https://en.wikipedia.org/wiki... Threads differ from traditional multitasking operating-system processes in several ways: processes are typically independent, while threads exist as subsets of a processprocesses carry considerably more state information than threads, whereas multiple threads within a process share process state as well as memory and other resourcesprocesses have separate address spaces, whereas threads share their address spaceprocesses interact only through system-provided inter-process communication mechanismscontext switching between threads in the same process typically occurs faster than context switching between processes驰名的GIL (Global interpreter lock)以下内容来自 wikipedia. ...

October 20, 2020 · 3 min · jiezi

关于性能:前端面试每日-31-第526天

明天的知识点 (2020.09.23) —— 第526天 (我也要出题)[html] 网页中的友情链接有什么作用?[css] 应用纯css布局中一个“王”字[js] 写一个办法获取滚动条间隔窗口顶部的间隔[软技能] 如何进行网站性能优化?《论语》,曾子曰:“吾日三省吾身”(我每天屡次检查本人)。前端面试每日3+1题,以面试题来驱动学习,每天提高一点!让致力成为一种习惯,让奋斗成为一种享受!置信 保持 的力量!!!欢送在 Issues 和敌人们一起探讨学习! 我的项目地址:前端面试每日3+1【举荐】欢送跟 jsliang 一起折腾前端,零碎整顿前端常识,目前正在折腾 LeetCode,打算买通算法与数据结构的任督二脉。GitHub 地址 微信公众号欢送大家前来探讨,如果感觉对你的学习有肯定的帮忙,欢送点个Star, 同时欢送微信扫码关注 前端剑解 公众号,并退出 “前端学习每日3+1” 微信群互相交换(点击公众号的菜单:交换)。 学习不打烊,充电加油只为遇到更好的本人,365天无节假日,每天早上5点纯手工公布面试题(死磕本人,愉悦大家)。心愿大家在这虚夸的前端圈里,放弃沉着,保持每天花20分钟来学习与思考。在这变幻无穷,类库层出不穷的前端,倡议大家不要等到找工作时,才狂刷题,提倡每日学习!(不忘初心,html、css、javascript才是基石!)欢送大家到Issues交换,激励PR,感激Star,大家有啥好的倡议能够加我微信一起交换探讨!心愿大家每日去学习与思考,这才达到来这里的目标!!!(不要为了谁而来,要为本人而来!)交换探讨欢送大家前来探讨,如果感觉对你的学习有肯定的帮忙,欢送点个[Star]

September 23, 2020 · 1 min · jiezi

Locust-参数化

Locust 参数化

July 12, 2020 · 1 min · jiezi

应用-Locust-快速上手写压测

利用 Locust 疾速上手写压测

July 12, 2020 · 1 min · jiezi

Locust压力测试使用总结

Locust压力测试应用总结

July 12, 2020 · 1 min · jiezi

Locust-noweb-模式与参数详解

Locust no-web 模式与参数详解

July 9, 2020 · 1 min · jiezi

实验利用Locust完成测试登录

实验:利用Locust完成测试登录

July 8, 2020 · 1 min · jiezi

测试最大在线用户数

测试最大在线用户数

July 8, 2020 · 1 min · jiezi

用curl模拟夹带cookie的http请求

用curl模拟夹带cookie的http请求

July 8, 2020 · 1 min · jiezi

Apache-ab测试工具使用方法无参get传参post传参

Apache ab测试工具使用方法(无参、get传参、post传参)

July 7, 2020 · 1 min · jiezi