百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

性能测试 Linux 环境下模拟延时和丢包实现

ahcoder 2025-06-24 11:10 2 浏览

在性能测试过程中,我们还需要模拟网络异常的情况下,是否会出现一些异常数据。最常见的就是写库操作,比如说我们下单的场景,如果出现网络异常的时候是否会出现数据对不上这种情况。


如我们JMeter发送成功的请求数量和最终数据库表中存入下单的数据对不上,通常在网络异常的情况下会出现这种情况,因为通常很多框架都会存在重试的功能,比如APP在向服务端发送网络请求,那么在这个请求的过程中网络不稳定,一直没有得到响应,那么APP会重试,但是出现这种情况下,我们就需要考虑是否会出现重复下单,生成两笔订单的情况。


通常我们服务端通常会有一定的机制处理这种情况,但是我们需要去测试服务端这种机制是否生效。


tc工具的介绍


通常我们是在应用服务器上使用tc工具模拟网络丢包。tc工具是工作在服务端的,是专门针对网卡来进行一些相关的策略的。比如当我们请求传到网卡的时候,其实这个时候请求还没有到程序里面,那我们可以在网卡出来的时候加长延时时间或者丢包。


Linux中模拟延时和丢包


在模拟丢包之前,我们现在看一下我们机器的网卡,可以看到我们的网卡是eth0


然后我现在在本机上ping我们的应用服务器,确认网络正常。


设置延时


1、此时我们设置延时,其中eth0 是我们的网卡名称,下面的命令实现了给 eth0 口发包时添加 30ms 的延时。


tc qdisc add dev eth0 root netem delay 30ms


设置延时之后,此时我们可以看到时间已经在40ms左右了


2、显示延时的设置


3、修改延时


tc qdisc change dev eth0 root netem delay 40ms


4、删除延时配置


tc qdisc del dev eth0 root netem delay 40ms


可以看到删除延时之后,时间又恢复在10ms左右了


模拟丢包


1、设置丢包


tc qdisc add dev eth0 root netem loss 10%


再看可以发现已经出现丢包的情况了


如果你是通过SSH 登陆设备进行配置丢包的话,配置完这条命令就会感觉到机器访问时有点一卡一卡的。这说明,设备已经开始丢包了,可以通过具体抓包查看。


其他诸如修改、查看、删除的命令,都可以参考上面延时的设置。

相关推荐

卡巴斯基实验室成功将Linux系统的驱动程序移植到“KasperskyOS”

据os.kaspersky.com网站8月8日报道,俄罗斯卡巴斯基实验室启动了一个研究项目,将Linux驱动程序移植到卡巴斯基公司自主研发的操作系统KasperskyOS——这是该实验室创建的“安全...

服务器程序从 Windows 系统移植到 Linux/x86_64 平台时总是崩溃?

清华大学出版社的《高效C/C++调试》一书给出了回答:我们的服务器程序最初是为Windows系统开发的,第一次将它移植到Linux/x86_64平台时,它在回归测试中十次会崩溃八次,且仅在...

Linux系统的移植和裁剪(linux移植lvgl)

本节将嵌入式Linux系统按需求裁剪后移植到ARM处理器中。通过对Linux系统的了解和认识,我们在这里选择Linux4.1.15版本,该版本支持64位处理器,相对于前面几代Linux版本有了更大的提...

搭建RISC-V模拟环境(搭建虚拟环境)

现在RISC-V在主流操作系统上基本都能模拟了,不过我还是觉得Linux下好用。之前在Mac上想用Linux,基本就是在VirtualBox上创建一个虚拟机,从网上下一个Ubuntu的安装iso,安...

CPU虚拟化:陷入和模拟(cpu虚拟模式是什么)

导读:本文摘自于王柏生、谢广军撰写的《深度探索Linux系统虚拟化:原理与实现》一书,重点讨论了虚拟CPU在Guest模式下运行时,由于运行敏感指令而触发虚拟机退出的典型情况。作者:王柏生、谢广军来源...

《模拟山羊》恶搞僵尸主题DLC公布 《DayZ》躺枪!

近日,开发商CoffeeStain为我们带来了一个好消息,那就是奇葩游戏《模拟山羊(GoatSIMulator)》僵尸主题DLC“GoatZ”将于5月7日登陆PC,Mac,Linux,iOS和安卓...

「精品课程」模拟IC设计进阶(模拟ic设计师怎么样)

课程导语模拟集成电路设计最重要的是基础理论知识,基础理论的重要性很多人一开始并没有意识到,工作一段时间,做过几个项目以后就会深有感触。除此之外就是个人的学习能力和分析问题、解决问题的能力,其实这些能力...

跨平台神器:在Linux上轻松运行Windows软件的方法大揭秘!

Wine始于30年前的一个业余爱好项目,当时Windows3.1及其16位API出现了。在一个简单的“HelloWorld”程序之后,它很快就成功地让Solitaire运行起来。...

LAMMPS 模拟教程全新发布,助力科研入门分子模拟世界

https://arxiv.org/html/2503.14020v1本研究发布了8个层层递进的LAMMPS模拟教学教程,并配套开发了专属图形界面LAMMPS–GUI,显著降低了分子模拟的入门门槛。...

Linux趣味命令,每一个都能产生炫酷效果(示例)

Linux趣味命令,每一个都能产生炫酷的效果:cmatrix:模拟《黑客帝国》中的字符矩阵效果。bashCopycodecmatrixfortune:随机显示一句有趣的引语或笑话。bashCopy...

「免费!免费!Chris老师经典模拟课程」CMOS模拟电路设计流程

创芯大讲堂为广大学员发福利各位创芯大讲堂的同学们,即日起,凡当月购买大讲堂课程达到300元的同学可以享受创芯大讲堂全场课程8折优惠,凡当月购买创芯大讲堂课程达到500元的同学可以享受创芯大讲堂全场课程...

Gromacs基本模拟流程(gromacs运行命令)

GROMACS是一个使用经典分子动力学理论研究蛋白质动力学的高端的高效的工具。GROMACS是遵守GNU许可的免费软件,可以从以下站点下载:http://www.gromacs.org,并且可以在l...

国外友人开创Python模拟登陆神库,完美修改它为咱们所用

Awesome-python-login-model是一个国人开发的模拟登陆仓库,在这个仓库上有20几个网站的模拟登陆脚本,你可以基于这个仓库实现的代码做简易的修改,以实现自己的自动化功能。仓库地址...

并发模拟的四种方式+工具,超级实用

原文链接:https://mp.weixin.qq.com/s/jJDJ8YwmzkKS9KvfMamLWA一、PostmanPostman是一个款http请求模拟工具首先演示一下postman最基本...

精选模拟IC设计仿真课程(精选模拟ic设计仿真课程怎么样)

课程介绍本系列课程采用屏幕录制视频及操作解说的形式,注重于模拟芯片设计流程中的电路原理图设计、仿真及优化方法、版图设计、寄生参数提取及后仿真优化等的实际操作,在电路设计过程中学习模拟IC设计和验证方法...