wrk

python 学习笔记---Locust 测试服务端性能

自作多情 提交于 2021-02-18 13:43:27
由于人工智能的热度, python目前已经成为最受欢迎的编程语言,一度已经超越Java 。 本文将介绍开源的python 测试工具: locust 使用步骤: 1. 安装python 3.0以上版本 2. 安装Pip 3. 安装locust pip install locustio (windows系统下) 4. 阅读或者下载 locust 源码 一、Locust 的基本实现原理 服务端性能测试工具最核心的部分是压力发生器,核心要点有两个,一是真实模拟用户操作,二是模拟有效并发。 在 Locust 测试框架中,测试场景是采用纯Python脚本。对于最常见的 HTTP(S) 协议的系统, Locust 采用Python的 requests 库作为客户端,而对于其它协议类型的系统, Locust 也提供了接口,只要我们能采用Python编写对应的请求客户端,就能方便地采用 Locust 实现压力测试。从这个角度来说, Locust 可以用于压测任意类型的系统。 在模拟有效并发方面, Locust 的优势在于其摒弃了进程和线程,完全基于事件驱动,使用 gevent 提供的 非阻塞IO 和 coroutine 来实现网络层的并发请求,因此即使是单台压力机也能产生数千并发请求数;再加上对分布式运行的支持,理论上来说, Locust 能在使用较少压力机的前提下支持极高并发数的测试。 二、

CRT&EXCRT 中国剩余定理及其扩展

自作多情 提交于 2021-02-08 06:37:04
前言: 中国剩余定理又名孙子定理。因孙子二字歧义,常以段子形式广泛流传。 中国剩余定理并不是很好理解,我也理解了很多次。 CRT 中国剩余定理 中国剩余定理,就是一个解同余方程组的算法。 求满足n个条件的最小的x。 看起来很麻烦。 先找一个特殊情况:$m_1,m_2,...m_n$两两互质。 这个时候,构造$M=m_1*m_2*...m_n$; 令$M_i=M/m_i$; 所以,构造$n$个数,其中第$i$个数是除$i$之外的其他所有数的倍数,并且第$i$个数$mod m_i =1$ 即:$M_i x = 1 ( mod m_i ) $求出这样一个x,就求出了 这个数。 因为$m$之间两两互质,所以对于$n$个这样的方程,$x$本质上就是$M_i$在$m_i$意义下的乘法逆元。 (不会$exgcd$?左转: EXGCD 扩展欧几里得 ) 因为互质,一定有解的。 用扩展欧几里得算就可以。 同理,构造$n$个数。$b_1,b_2....b_n$ 其中,$b_i=M_i \times x_i$ 那么,因为$b_i = 1 (mod m_i)$,所以$ b_i * a_i = a_i (mod m_i)$ 那么,原题目中的这个x就是:$x=(a_1\times b_1+a_2\times b_2+...+a_n\times b_n) $验证一下,是不是? 总得来说, 对于$mi$互质的情况

大数据集群资源预估规划【适用于面试与工作集群规划】

落爺英雄遲暮 提交于 2020-12-18 14:02:10
问题导读 1.如何判断数据增量? 2.QPS如何计算? 3.存储空间需要考虑哪些因素? 4.内存估算和哪些因素有关? 我们在实际工作,或者面试中,经常会遇到这么一个问题,集群该如何规划,一台机器多少磁盘,多少内存,多少core等。 关于公司集群规模,有的几台,有的几百或有的则几千台,那么这几百几千台机器他们的配置是怎么样的? 这里先说下大概,对于大多数公司来说,集群有的10来台,而对于电信行业,一个地方的可能有几百台,对于一线互联网集群规模就比较大一些,上千台是比较常见的。 那么如果我们要搭建大数据平台,集群该如何规划?这是我们初步搭建集群的时候,首次遇到的问题。 对于需要多少台机器,其实这个问题,不能一刀切的回答,具体情况具体分析。虽然一开始我们不知道多少台机器,但是我们可以知道影响的关键因素? 那就是数据的增量是多少? 数据的增量,这里我们来说下数据增量: 其实数据的增量不同的公司,也是不一样的,有的公司数据增量也就是几个G,而有的公司数据增量1T以上,比如物联网大数据。除了数据增量,还有其它影响因素,比如使用的计算组件,使用MapReduce和Spark,Flink在内存的使用上,肯定是有区别的。再比如QPS也影响着系统的资源分配。 除了影响因素,那么我们预估集群包含哪些步骤? 1.判断计算数据增量大小 如何计算数据量得大小,这个其实很多企业已有相关得系统

x32下PsSetLoadImageNotifyRoutine的逆向

北战南征 提交于 2020-11-25 07:26:18
#一丶简介 纯属兴趣爱好.特来逆向玩玩. PsSetLoadImageNotifyRoutine 是内核中用来监控模块加载.操作系统给我们提供的回调. 我们只需要填写对应的回调函数原型即可进行加监控. 既然可以进行监控.那么我们的回调函数存储在哪.这是个问题.所以特来逆向玩玩. ##二丶逆向过程 首先我的思路是直接windbg 挂载win7. 然后找到对应的函数进行 uf 反汇编. 来静态查看. 如果那里有疑问则自己进行动态查看. 过程很快.因为逆向过 进程回调监控.所以这个也就很快了.慢慢学习经验. ###1.逆向PsSetLoadImageNotifyRoutine 3f809b3 8bff mov edi,edi 83f809b5 55 push ebp 83f809b6 8bec mov ebp,esp 83f809b8 53 push ebx 83f809b9 56 push esi 83f809ba 57 push edi 83f809bb 33ff xor edi,edi 83f809bd 57 push edi 83f809be ff7508 push dword ptr [ebp+8] 参数1压栈: 参数1 = 我们设置的回调函数地址. 83f809c1 e8113d0200 call nt!ExAllocateCallBack (83fa46d7)

Mysql基准测试

断了今生、忘了曾经 提交于 2020-11-23 23:46:01
一、基准测试 基准测试的作用: 了解当前系统的性能,建立MySQL服务器性能基准线(为之后的性能优化提供一个超始线) 模拟比当前系统更高的负载,找出系统的扩展瓶颈,为系统扩展与优化提供参考条件 测试不同的硬件、软件和操作系统配置 证明新的硬件设备是否配置正确和是否是最优配置 基准测试可以分为集成式测试和单组件式测试。 集成式测试就是对整个应用系统进行测试,如一个网站应用系统,对整个网站系统进行测试。 单组件式测试是对系统中的某个组件进行测试,如对网站中的数据库这个组件进行测试,或对web服务器这个组件进行测试等。 (一)、集成式测试工具 有http_load,ab,jMeter,wrk等 1、ab的使用 ab即apache bench,是apache httpd包含的一个http压测工具 (1)ab的安装 安装apache httpd即可(详细安装教程请参照: Linux下安装apache httpd及httpd常见用法 (2)ab的常用用法 ab [options] url options表示参数 -n:请求数 -c:并发数(请求人数) -s:超时时间 url表示压力测试的地址 如: 1 ab -n 2000 -c 10000 http: //localhost/hello .php 结果如下: 2、wrk的使用 wrk是一款简单的http压测工具,安装和使用都比较简单(推荐使用

腾讯云容器服务 TKE 推出新一代零损耗容器网络

只谈情不闲聊 提交于 2020-11-19 11:52:00
随着容器技术的发展成熟,越来越多的组件迁移到容器, 在技术迁移过程中,数据库,游戏,AI 这些组件对容器网络性能(时延,吞吐,稳定性)提出了更高的要求 。为了得到更优的时延和吞吐表现,各大云厂商都在致力于缩短节点内容器的网络访问链路,让数据包能尽可能快地转发到容器网卡。 腾讯云 容器服务 TKE 借助智能网卡推出下一代容器网络方案,该方案实现了一个 Pod 独占一张弹性网卡,不再经过节点网络协议栈 (default namespace),极大缩短了容器访问链路,缩短了访问时延,并使 PPS 可以达到整机上限。该方案实现了 短链接场景下 QPS 相比之前容器网络方案(策略路由方案,网桥方案)提升 50%-70%;长链接场景下 QPS 提升 40%-60%。 由于不再经过节点网络协议栈,传统基于 iptables 和 IPVS 的 ClusterIP service 访问方案不能直接适用于该方案。为了实现该方案下 Pod 可以直接访问 ClusterIP service,TKE 推出 share-NS IPVS 方案,使得在容器网络命名空间下也可以访问到节点网络协议栈的 IPVS 规则,同时配合 CLB 直通 Pod,实现了完整意义上的弹性网卡直通。 该方案实现了针对 ClusterIP service 短链接场景下 QPS 相比 iptables 方案提升 40%-60%,IPVS

Fizz Gateway基准测试性能超越Spring Cloud Gateway

邮差的信 提交于 2020-10-30 19:42:17
基准测试结果 我们将Fizz与Spring官方spring-cloud-gateway进行比较,使用相同的环境和条件,测试对象均为单个节点。 产品 QPS 90% Latency(ms) 直接访问后端服务 9087.46 10.76 fizz-gateway 5927.13 19.86 spring-cloud-gateway 5044.04 22.91 # 基准测试详情 # 硬件环境 后端服务所在服务器: 4核8G内存 Intel(R) Xeon(R) CPU X5675 @ 3.07GHz * 4 Linux version 3.10.0-327.el7.x86_64 节点所在服务器: 4核8G内存 Intel(R) Xeon(R) CPU X5675 @ 3.07GHz * 4 Linux version 3.10.0-327.el7.x86_64 压测程序所在服务器: 4核8G内存 Intel(R) Xeon(R) CPU X5675 @ 3.07GHz * 4 Linux version 3.10.0-327.el7.x86_64 # 压测工具 压测软件:wrk 并发连接: 100 # 压测结果截图 直接访问后端服务: fizz-gateway: spring-cloud-gateway: 来源: oschina 链接: https://my.oschina.net

docker swarm

无人久伴 提交于 2020-10-28 20:39:23
详情参考:http://c.biancheng.net/view/3176.html Swarm 是 Docker 官方提供的一款集群管理工具,其主要作用是把若干台 Docker 主机抽象为一个整体,并且通过一个入口统一管理这些 Docker 主机上的各种 Docker 资源。 1.初始化一个全新的 Swarm (1)登录到 mgr1 并初始化一个新的 Swarm docker swarm init \ --advertise-addr 10.0.0.1:2377 \ --listen-addr 10.0.0.1:2377 docker swarm init 会通知 Docker 来初始化一个新的 Swarm,并将自身设置为第一个管理节点。同时也会使该节点开启 Swarm 模式。 --advertise-addr 指定其他节点用来连接到当前管理节点的 IP 和端口。这一属性是可选的,当节点上有多个 IP 时,可以用于指定使用哪个IP。此外,还可以用于指定一个节点上没有的 IP,比如一个负载均衡的 IP。 --listen-addr 指定用于承载 Swarm 流量的 IP 和端口。其设置通常与 --advertise-addr 相匹配,但是当节点上有多个 IP 的时候,可用于指定具体某个 IP。并且,如果 --advertise-addr 设置了一个远程 IP 地址

谈谈压测

我只是一个虾纸丫 提交于 2020-10-28 03:04:20
背景 随着业务不断发展,用户量不断增加,系统负载越来越高。为了解决系统负载问题,我们是不是直接大量增加机器就可以了? 同时,公司业务开展需要,可能需要开展各种营销活动,目前系统是否能够支持那么多用户也是个未知数,如何解决呢? 答案就是今天要讲的压测。 目的 验证单个业务及整个的处理能力及响应时间等 验证系统的性能瓶颈 合理的容量规划,而不是大量增加 分类 单接口压测 全链路压测 性能测试指标 业务类 TPS 相应时间 - 平均响应时间、最小响应时间、最大响应时间、90%响应时间等 - 百分位数是一个统计学名词。99% 的百分位响应时间,指的是 99% 的请求响应时间都处在这个值以下。 - 如果99%响应时间跟平均响应时间相差很大,那么说明是抗不住这么大量的,需要做相应调整及优化 业务成功率 - 压测前要确定压测的业务成功率,不能把报错的数据当做压测结果,一般可以定业务成功率最少为1% 系统资源指标 CPU使用率 内存使用率 磁盘繁忙率 网络IO 全链路压测 目的 只做单系统压测是不够的,因为在活动开始的瞬间,各系统都面临自身服务的巨大的压力,而系统之间是有互相依赖关系的,单机压测没有考虑到依赖环节压力都比较大的情况。一个系统出现故障,故障会在链路流转过程中层层累加,会造成无法评估的影响。 为什么选择线上环境做全链路压测

腾讯云 Serverless 保障《创造营》硬糖少女 C 位出道

人盡茶涼 提交于 2020-10-18 02:33:51
15 位青春洋溢的女团候选成员,百万次全网观众投票,节目播出后迅速霸占热搜前十位..... 在这激动人心的决赛之夜,Tencent Serverless 团队下的云 API 网关产品作为幕后英雄,利用其高并发、高可用的技术特性,支撑了节目投票环节顺利开展,面对全网粉丝狂热打 call 投票,顺利保障小姐姐们 C 位出道! 不一般的投票 【投票】是一个很简单的功能,但是《创造营》的投票不一样。 《创造营》是直播节目,投票时间非常短。海量全网粉丝将在同一时间瞬时涌入,瞬间的大流量和高并发,对系统的高可用性提出了极高的要求。 《创造营》投票,将产生本届总冠军,是《创造营》决胜之夜的制胜环节,激动人心的时刻。投票系统的任何差池,都会对粉丝心理和节目效果造成重创。 在投票的关键时刻,为了保证女团小姐姐顺利出道,技术小哥哥采用了什么样的技术设计,保证了这种特殊场景下的投票功能高可用呢? Serverless Serverless 是一种云计算技术的新趋势,一方面它使开发者在构建和运行应用时无需管理服务器等基础设施,将构建应用的成本进一步降低,实现快速迭代、极速部署;同时,Serverless尤其适用于高并发场景,无需预估流量大小,而会根据流量情况自动的进行扩缩容,整个过程无需人工干预;值得一提的是,Serverless 还是按用量付费的模式,避免了无用的资源开销,大大降低了成本。