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

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

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

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

如果你想学习性能测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的性能测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386   

15天学会性能测试,通俗易懂详细教学,Jmeter性能测试实战(集群压测,全链路压测,性能调优,瓶颈分析)极速掌握,干就完事!_哔哩哔哩_bilibili15天学会性能测试,通俗易懂详细教学,Jmeter性能测试实战(集群压测,全链路压测,性能调优,瓶颈分析)极速掌握,干就完事!共计27条视频,包括:1.【性能测试】什么是性能测试以及性能测试的价值和目的、2.【性能测试】真实企业性能测试指标详解以及指标测算、3.【性能测试】真实企业中性能测试流程以及细节剖析等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV1B14y1D7X9/?spm_id_from=333.337.search-card.all.click   

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 登陆设备进行配置丢包的话,配置完这条命令就会感觉到机器访问时有点一卡一卡的。这说明,设备已经开始丢包了,可以通过具体抓包查看。

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

 

 

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

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

相关文章

linux之Ubuntu系列(五)用户管理、查看用户信息 终端命令

创建用户 、删除用户、修改其他用户密码的终端命令都需要通过 sudo 执行 创建用户 设置密码 删除用户 sudo useradd -m -g 组名 新建用户名 添加新用户 -m:自动建立用户 家目录 -g:指定用户所在的组。否则会建立一个和用户同名的组 设置新增用户的密码&…

Git源代码管理方案

背景 现阶段的Git源代码管理上有一些漏洞,导致在每次上线发布的时间长、出问题,对整体产品的进度有一定的影响。 作用 新的Git源代码管理方案有以下作用: 多功能并行开发时,测试人员可以根据需求任务分配测试自己的功能&#…

Ceph 分布式存储之应用

一、创建 CephFS 文件系统 MDS 接口 1、服务端操作 1)在管理节点创建 mds 服务 [rootadmin ceph]# cd /etc/ceph [rootadmin ceph]# ceph-deploy mds create node01 node02 node03 [ceph_deploy.conf][DEBUG ] found configuration file at: /root/.cephdeploy.c…

.Net5 mvc项目UseBrowserLink插件功能失效的原因

前期基于.Net Framework创建的Web项目,使用了BrowserLink插件协助前端开发,功能一直都比较稳定,后来项目迁到.Net5 ,发现BrowserLink 已经失去了从浏览器定位到项目源代码的功能,希望在后面的版本还能继续支持此版本&a…

Velocity如何对变量中的引号特殊字符进行转义

简介 Velocity是一个基于Java的模板引擎,与Freemarker类似。相较于Freemarker更轻量,但带来的问题就是功能不如Freemarker强大,所以实际项目中可能会更倾向于用Freemarker,这里不作过多介绍了,本文主要记录一下在使用…

国内流行的数据可视化软件工具

在信息爆炸的时代,越来越多的数据堆积如山。但是,这些密集的数据没有重点且可读性较差。因此,我们需要数据可视化来帮助数据易于理解和接受。相比之下,可视化更直观、更有意义,使用适当的数据可视化工具来可视化数据非…

golang整合kafka

kafka 基本概念 消息队列 1、什么是消息队列 消息(Message)是指在应用之间传送的数据,消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。 消息队列(Message Queue&…

SDN系统方法 | 1. 概述

随着互联网和数据中心流量的爆炸式增长,SDN已经逐步取代静态路由交换设备成为构建网络的主流方式,本系列是免费电子书《Software-Defined Networks: A Systems Approach》的中文版,完整介绍了SDN的概念、原理、架构和实现方式。原文: Softwar…

基于FT232HL的USB2.0转ARINC429板卡

基于FT232HL的USB2.0转ARINC429板卡 1 概述 《USB2.0转ARINC429板卡》采用底板子板,层叠安装的结构;使用同样的底板,变换不同功能的子板实现不同的功能版本。 a) 降低硬件设计复杂度:新板卡设计只需要设计子板,子板的…

MySQL中这14个小玩意,让人眼前一亮!!!

前言 我最近几年用MYSQL数据库挺多的,发现了一些非常有用的小玩意,今天拿出来分享到大家,希望对你会有所帮助。 1.group_concat 在我们平常的工作中,使用group by进行分组的场景,是非常多的。 比如想统计出用户表中…

《动手学深度学习》(pytorch版本)中`d2lzh_pytorch`包问题

《动手学深度学习》(pytorch版本)中d2lzh_pytorch包问题

机器视觉检测系统不稳定因素分析

机器视觉的研究始于20世纪50年代二维图像的模式识别,它起初被设计用来代替人眼从事检测识别的工作,可以大大提高检测的工作效率以及降低人眼疲劳带来的检测结果的不一致性。机器视觉检测发展至今,在许多方面已经发展到可以完成人眼难以完成的工作,如高精度的测量以及对特定…

倍福TwinCAT运动控制学习资料

学习倍福控制器和EtherCAT协议的时候,TwinCAT3是非常有必须要学习的。TwinCAT软件其功能强大,可以写plc程序,可以写图形化界面,可以观察波形等等。初次学习时参考TwinCAT3 入门教程和TwinCAT 3运动控制教程,把TwinCAT …

【深度学习】张量的广播专题

一、说明 张量广播(tensor broadcasting)是一种将低维张量自动转化为高维张量的技术,使得张量之间可以进行基于元素的运算(如加、减、乘等)。在进行张量广播时,会将维度数较少的张量沿着长度为1的轴进行复制…

YOLOv5图像和视频对象生成边界框的目标检测实践(GPU版本PyTorch错误处理)

识别图像和视频里面的对象,在计算机视觉中是一个很重要的应用,比如无人驾驶,这个就需要实时的检测到周边环境的各种对象,并及时做出处理。目标检测在以往的文章中有重点讲解过几种,其中Faster R-CNN的源码解读&#xf…

7.kafka+ELK连接

文章目录 kafkaELK连接部署Kafkakafka操作命令kafka架构深入FilebeatKafkaELK连接 kafkaELK连接 部署Kafka ###关闭防火墙systemctl stop firewalld systemctl disable firewalldsetenforce 0vim /etc/selinux/configSELINUXdisabled###下载安装包官方下载地址:ht…

Vue自定义指令

需求1:定义一个v-big指令,和v-text功能类似,但会把绑定的数值放大10倍。 需求2:定义一个v-fbind指令,和v-bind功能类似,但可以让其所绑定的input元素默认获取焦点。 自定义指令函数式v-big: &l…

java设计模式之 - 建造者模式

建造者模式(Builder Pattern)是一种创建型设计模式,它通过将对象的构建过程分离出来,使得同样的构建过程可以创建不同的表示形式。 简单来说,建造者模式允许你按步骤创建复杂的对象,同时将对象的构建与其表…

Python爬虫相关案例汇总

一、简述 将之前所做的爬虫案例放出,方便查阅,对代码整合函数内容并不进行说明。 二、代码 import time from concurrent.futures import ThreadPoolExecutorimport requests import re import csv from bs4 import BeautifulSoup import os from lxm…