• [案例分享] 如何关闭和开启透明大页transparent_hugepage
    关闭 echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/defrag 修改完成后,请执行如下命令,使参数生效。 reboot 打开 echo always> /sys/kernel/mm/transparent_hugepage/enabled echo always> /sys/kernel/mm/transparent_hugepage/defrag 修改完成后,请执行如下命令,使参数生效。 reboot 透明大页的enabled和defrag的取值有三个 always madvise 和never
  • [技术干货] 基于Python的压力测试工具
    我们之前在做开发的时候,最常用的压力测试工具就是JMeter,但由于多年不更新,且基于的依旧是Java8,已经在慢慢的被淘汰了。现在有很多使用python编写的压力测试工具作为Python压力测试是指使用Python编写的测试脚本来模拟高并发或大量请求情境下的系统性能。其目的是检测系统的瓶颈和极限,尤其是在考虑扩容或提升用户体验时,能够为系统提供更精确的性能参考数据和优化建议。Python 压力测试工具主要包括:Locust:Locust是一个开源的负载测试工具,使用Python编写。它具有简单易用、可扩展性强、可视化界面等特点,可以帮助你快速进行负载测试和性能分析。Pylot:Pylot是一个轻量级的Python压力测试工具,它通过模拟用户请求来测试Web应用的性能。Pylot支持多种HTTP客户端,如cURL、requests等,可以自定义请求参数和负载参数,支持并发和多线程测试。Tsung:Tsung是一个开源的、多协议的负载测试工具,支持HTTP、MySQL、PostgreSQL等协议。它使用Erlang语言编写,具有高性能、可扩展性强、可视化界面等特点,可以用于测试Web应用的性能和稳定性。Taurus:Taurus是一个易于使用的开源工具,用于创建和运行负载测试。它可以轻松集成Junit, Gatling, Locust等测试工具,并提供了可视化的结果展示。Grinder:Grinder是一个功能强大的负载测试工具,支持多种协议和语言。它使用Java编写,通过GUI界面进行测试配置和管理,支持分布式测试和多线程测试。这些工具各有特点,你可以根据自己的需求选择合适的工具进行压力测试。
  • [技术干货] 吞吐率、吞吐量、TPS、性能测试
    一、吞吐率我们一般使用单位时间内服务器处理的请求数来描述其并发处理能力。称之为吞吐率(Throughput),单位是 “req/s”。吞吐率特指 Web 服务器单位时间内处理的请求数。另一种描述,吞吐率是,单位时间内网络上传输的数据量,也可以指单位时间内处理客户请求数量。它是衡量网络性能的重要指标。通常情况下,吞吐率 “字节数/秒” 来衡量。当然你也可以用 “请求数/秒” 和 “页面数/秒” 来衡量。其实不管一个请求还是一个页面,它的本质都是在网络上传输的数据,那么用来表述数据的单位就是字节数。二、吞吐量吞吐量,是指在一次性能测试过程中网络上传输的数据量的*和。对于交互式应用来说,吞吐量指标反映的是服务器承受的压力,在容量规划的测试中,吞吐量是一个重点关注的指标,因为它能够说明系统级别的负载能力,另外,在性能调优过程中,吞吐量指标也有重要的价值。如一个大型工厂,他们的生产效率与生产速度很快,一天生产 10W 吨的货物,结果工厂的运输能力不行,就两辆小型三轮车一天拉 2 吨的货物,比喻有些夸张,但我想说明的是这个运输能力是整个系统的瓶颈。提示,用吞吐量来衡量一个系统的输出能力是极其不准确的,用个最简单的例子说明,一个水龙头开一天一夜,流出 10 吨水;10 个水龙头开 1 秒钟,流出 0.1 吨水。当然是一个水龙头的吞吐量大。你能说 1 个水龙头的出水能力是 10 个水龙头的强?所以,我们要加单位时间,看谁 1 秒钟的出水量大。这就是吞吐率。三、事务,TPS(Transaction Per second)就是用户某一步或几步操作的集合。不过,我们要保证它有一个完整意义。比如用户对某一个页面的一次请求,用户对某系统的一次登录,淘宝用户对商品的一次确认支付过程。这些我们都可以看作一个事务。那么如何衡量服务器对事务的处理能力。又引出一个概念----TPS每秒钟系统能够处理事务或交易的数量,它是衡量系统处理能力的重要指标。点击率可以看做是 TPS 的一种特定情况。点击率更能体现用户端对服务器的压力。TPS 更能体现服务器对客户请求的处理能力。每秒钟用户向 web 服务器提交的 HTTP 请求数。这个指标是 web 应用特有的一个指标;web 应用是 “请求 - 响应” 模式,用户发一个申请,服务器就要处理一次,所以点击是 web 应用能够处理的交易的最小单位。如果把每次点击定义为一个交易,点击率和 TPS 就是一个概念。容易看出,点击率越大。对服务器的压力也越大,点击率只是一个性能参考指标,重要的是分析点击时产生的影响。需要注意的是,这里的点击不是指鼠标的一次 “单击” 操作,因为一次 “单击” 操作中,客户端可能向服务器发现多个 HTTP 请求。四、吞吐量、吞吐率的意义吞吐量的限制是性能瓶颈的一种重要表现形式,因此,有针对地对吞吐量设计测试,可以协助尽快定位到性能冰晶所在的位置80% 系统的性能瓶颈都是由吞吐量制约并发用户和吞吐量瓶颈之间存在一定的关联通过不断增加并发用户数和吞吐量观察系统的性能瓶颈。然后,从网络、数据库、应用服务器和代码本身 4 个环节确定系统的性能瓶颈。五、吞吐率和压力测试单从定义来看,吞吐率描述了服务器在实际运行期间单位时间内处理的请求数,然而,我们更加关心的是服务器并发处理能力的上限,也就是单位时间内服务器能够处理的最大请求数,即最大吞吐率。所以我们普遍使用 “压力测试” 的方法,通过模拟足够多数目的并发用户,分别持续发送一定的 HTTP 请求,并统计测试持续的*时间,计算出基于这种 “压力” 下的吞吐率,即为一个平均计算值注意在 Web 服务器的实际工作中,其处理的 HTTP 请求通常包括对很多不同资源的请求,也就是请求不同的 URL, 比如这些请求有的是获取图片,有的是获取动态内容,显然服务器处理这些请求所花费的时间各不相同,而这些请求的不同时间组成比例又是不确定的。这就是实际情况下的吞吐率。所以,我们 对于同一个特定有代表性的请求进行压力测试,然后对多个请求的吞吐率按照比例计算加权平均值。Web 服务器并发能力强弱的关键便是在于如何计算针对不同的请求性质来设计最优并发策略。在一定程度上使得 Web 服务器的性能无法充分发挥,这很容易理解,就像银行对不同业务设立不同的窗口一样,这些窗口的服务员分别熟悉自己的窗口业务。可以未不同的客户分别快速办理业务,但是如果让这些窗口都可以办理所有业务,也就是客户可以去任何窗口办理任何业务,那会是怎么样呢?没有几个银行业务员会对所有业务都轻车熟路,这样势必会影响到整体的业务办理速度。六、压力测试的前提吞吐率性能测试的前提并发用户数*请求数请求资源描述压力测试的描述一般包括两个部分,即并发用户数和*请求数,也就是模拟多少用户同时向服务器发送多少请求。请求性质则是对请求的 URL 所代表的资源的描述,比如 1KB 大小的静态文件,或者包含 10 次数据库查询的动态内容等。1、 并发用户数并发用户数就是指在某一时刻同时向服务器发送请求的用户*数。假如 100 个用户同时向服务器分别进行 10 次请求,与 1 个用户向服务器连续进行 1000 次请求。两个的效果一样么?一个用户向服务器连续进行 1000 次请求的过程中,任何时刻服务器的网卡接受缓存区中只有来自该用户的 1 个请求,而 100 个用户同时向服务器分别进行 10 次请求的过程中,服务器网卡接收缓冲区中最多有 100 个等待处理的请求,显然这时候服务器的压力更大。经常有人说某个 Web 服务器能支持多少并发数,除此之外没有任何上下文,这让很多人摸不着头脑,人们常常把并发用户数和吞吐率混淆,他们并不是一回事。一个服务器最多支持多少并发用户数呢?我们可以说,这个柜台支持的最大并发数为 10,因为恰好在这个并发数下,柜台业务开展的非常成功。顾客们都对服务时间非常满意,而此时代表业务办理次数的柜台吞吐率也比较高,商场和顾客们实现双赢。可见,通常所讲的最大并发数是有一定利益前提的,那就是服务器和用户双方所期待的最大收益,服务器希望支持高并发数及高吞吐率,而用户不管那么多,只希望等待较少的时间,或者得到更快的下载速度。所以得出最大并发数的意义,在于了解服务器的承载能力,并且结合用户规模考虑适当的扩展方案。对于同一域名下 URL 的并发下载数是有最大限制的,具体限制视浏览器的不同而不同。 一个真实的用户可能会给服务器带来两个或更多的并发用户的压力,一些高明的用户还可以通过一些方法来修改浏览器的并发数限制。2、请求等待时间用户平均请求等待时间服务器平均请求处理时间用户平均请求等待时间主要用户衡量服务器在一定并发用户数的情况下,对于单个用户的服务质量 服务器平均请求处理时间与前者相比,则用户衡量服务器的整体服务质量,它其实就是吞吐率的倒数。七、压力测试Apache 附带的 ab,ab 可以直接在 web 服务器本地发起测试请求。1、吞吐率随并发用户数变化的曲线图2、服务器平均请求处理时间随并发用户数变化的曲线图 当并发用户数超过 150 之后,请求的平均等待时间大幅度增加,当并发用户达到 200 后,等待时间开始急剧增加。3、用户平均请求等待时间随并发用户数变化的曲线图八、*结针对,吞吐量,吞吐率,TPS 的测试,都需要指明单位时间。以上测试忽略服务器硬件配置,所以性能测试结果也不侧重于它的绝对值意义,我们的目的是探讨如何测量性能以及如何根据不同的场景来优化性能。以上测试使用硬件为CPU: Intel(R) Xeon(R) CPU 1.60GHz 内存:4GB 硬盘转速: 15kr/min以上几个指标的测试,主要是为了提升服务器的处理效率,为构建高可用的 Web 站点做准备。影响 吞吐量,吞吐率,TPS 指标的因素,除了服务器的硬件配置,就剩下并发策略了。简单地说,并发策略的设计就是在服务器同时处理较多请求的时候,如何合理协调并充分利用 CPU 计算和 I/O 请求,使其在较大并发用户数的情况下提供较高的吞吐率并不存在一个对所有性质的请求都高效的并发策略
  • [区域初赛赛题问题] 选手程序运行失败. 本地跑压力测试没有问题.能否给出具体失败原因?
    【功能模块】【操作步骤&问题现象】1、选手程序运行失败. 希望给出详细原因2、【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [已解决问题归档] 压力测试之IVR流程,每IVR配置5线程,明明有的线程还没用,却报错且拆线
    压测最大并发量未受限每IVR配置5线程,每线程配置600压力测试启动,其中两个线程瞬间满占用其余3个无占用呼叫也随之报错,主被叫跟踪339拆线按产品文档核实,并无该配置错误检查IVR进程状态,均为collected请问还有啥原因导致该现象呢
  • [新手课堂] 大面积并发,在不增加服务器,如何解决服务器响应不及时问题?
      衡量服务器的并发能力        1.吞吐率        吞吐率,单位时间里服务器处理的最大请求数,单位 req/s        2.压力测试        使用 Jmeter,压力测试中关心的时间又细分以下 2 种:         用户平均请求等待时间(这里暂不把数据在网络的传输时间,还有用户 PC 本地的计算时间 计算入内)        服务器平均请求处理时间        提高服务器的并发能力        1.提高 CPU 并发计算能力        2.考虑减少内存分配和释放        3.考虑使用持久连接        4.改进 I/O 模型        5.Sendfile Linux 提供 sendfile()系统调用,可以讲磁盘文件的特定部分直接传送到代表客户端的 socket 描述符,加快了静态文件的请求速度,同时减少 CPU 和内存的开销。        6.内存映射
  • [云运维] 压力测试工具ab/abs的用法
    ab 是apache 推出的压力测试工具,可以用来测试http服务器的性能,得出QPSabs 则是apache 推出的压力测试工具,可以用来测试https服务器的性能,得出QPS工具下载地址:https://www.apachehaus.com/cgi-bin/download.plx工具官方文档地址:http://httpd.apache.org/docs/2.4/programs/ab.html用法简介:下载工具进入Apache24/bin目录下载就可以看到ab.exe和abs.exe在命令行中输入ab -n 1000 -c 20 http://127.0.0.1:8080/-n 要发多少个请求数-c 每次进行多少请求注意:必须是 http://127.0.0.1:8080/ ,“/” 不可以被省略,测试地址必须是一个url。结果简析:This is ApacheBench, Version 2.3 <$Revision: 1843412 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking 127.0.0.1 (be patient) Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Completed 900 requests Completed 1000 requests Finished 1000 requests Server Software: Server Hostname: 127.0.0.1 Server Port: 8080 Document Path: / Document Length: 131 bytes Concurrency Level: 200 Time taken for tests: 0.990 seconds Complete requests: 1000 Failed requests: 0 Total transferred: 269000 bytes HTML transferred: 131000 bytes Requests per second: 1010.45 [#/sec] (mean) Time per request: 197.931 [ms] (mean) Time per request: 0.990 [ms] (mean, across all concurrent requests) Transfer rate: 265.44 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.4 0 2 Processing: 22 175 33.9 183 218 Waiting: 0 99 54.3 100 216 Total: 22 175 33.9 183 218 Percentage of the requests served within a certain time (ms) 50% 183 66% 187 75% 189 80% 191 90% 194 95% 200 98% 212 99% 215 100% 218 (longest request)Requests per second: 1010.45 [#/sec] (mean) 就是QPS
  • [技术干货] 【转】如何对你的 Linux 系统进行压力测试
    如果你想了解 Linux 服务器在重压之下的运行情况,那么给 Linux 服务器施加压力是个不错的主意。在这篇文章中,我们将看一些工具,可以帮助你增加服务器压力并衡量结果。为什么你会想给你的 Linux 系统施加压力呢?因为有时你可能想知道当一个系统由于大量运行的进程、繁重的网络流量、过多的内存使用等原因而承受很大的压力时,它的表现如何。这种压力测试可以帮助确保系统已经做好了 “上市” 的准备。如果你需要预测应用程序可能需要多长时间才能做出反应,以及哪些(如果有的话)进程可能会在重负载下失败或运行缓慢,那么在前期进行压力测试是一个非常好的主意。幸运的是,对于那些需要能够预测 Linux 系统在压力下的反应的人来说,你可以采用一些有用的技术和工具来使这个过程更容易。在这篇文章中,我们将研究其中的一些。自己动手做个循环第一种技术是在命令行上运行一些循环,观察它们对系统的影响。这种方式可以大大增加 CPU 的负荷。使用 uptime 或类似的命令可以很容易地看到结果。在下面的命令中,我们启动了四个无尽循环。你可以通过添加数字或使用 bash 表达式,如 {1...6} 来代替 1 2 3 4 以增加循环次数:在命令行上输入后,将在后台启动四个无尽循环:在这种情况下,发起了作业 1-4,作业号和进程号会相应显示出来。要观察对平均负载的影响,请使用如下所示的命令。在本例中,uptime 命令每 30 秒运行一次:如果你打算定期运行这样的测试,你可以将循环命令放入脚本 watch-it 中。在输出中,你可以看到平均负载是如何增加的,然后在循环结束后又开始下降。因为所显示的负载分别代表了 1、5 和 15 分钟的平均值,所以这些值需要一段时间才能恢复到系统接近正常的状态。要停止循环,请发出像下面这样的 kill 命令 —— 假设作业号是 1-4,就像本篇文章前面显示的那样。如果你不确定,可以使用 jobs 命令来确认作业号。增加压力的专用工具另一种方法是使用专门为你制造系统压力的工具。其中一种叫做 stress(压力),可以以多种方式对系统进行压力测试。stress 工具是一个工作负载生成器,提供 CPU、内存和磁盘 I/O 压力测试。在使用 --cpu 选项时,stress 命令使用平方根函数强制 CPU 努力工作。指定的 CPU 数量越多,负载上升的速度就越快。下面第二个脚本(watch-it-2)可以用来衡量对系统内存使用的影响。请注意,它使用 free 命令来查看加压的效果。发起任务并观察压力:在命令行中指定的 CPU 越多,负载就增加的越快。stress 命令也可以通过 --io(输入/输出)和 --vm(内存)选项增加 I/O 和内存的负载来给系统施加压力。在接下来的这个例子中,运行这个增加内存压力的命令,然后启动 watch-it-2 脚本。stress 的另一个选项是使用 --io 选项为系统添加输入/输出活动。在这种情况下,你可以使用这样的命令:然后你可以使用 iotop 观察受压的 I/O。注意,运行 iotop 需要 root 权限。之前:之后:stress 只是给系统增加压力的若干工具之一。另一个较新的工具,stress-ng,将在以后的文章中介绍。总结用于系统压力测试的各种工具可以帮助你预测系统在真实世界的情况下如何响应,在这些情况下,它们受到增加的流量和计算需求。虽然我们在文章中展示的是创建和测量各种类型的压力的方法,但最终的好处是压力如何帮助确定你的系统或应用程序对它的反应。转载自:如何对你的 Linux 系统进行压力测试
  • [运维管理] GaussDB 200 6.5.1 磁盘IO的压力测试
    针对GaussDB集群想进行一个关于磁盘IO达到100%的压力测试,官网上未找到相关的操作文档,想知道有什么简单的方法可以用来测试的吗?
  • [问题求助] oceanconnect云平台的压力测试怎么做的
    oceanconnect云平台的压力测试怎么做的
  • [HPC] HPC解决方案调优指南
    文档位置已迁移至如下链接:https://support.huaweicloud.com/tngg-kunpenghpcs/kunpenghpcsolution_05_0001.html