[转帖]Comcast: 模拟糟糕的网络连接,以便构建更好的系统。

comcast,模拟,糟糕,网络连接,以便,构建,更好,系统 · 浏览次数 : 0

小编点评

**Comcast硬故障测试工具** Comcast用于模拟网络问题,例如延迟、带宽限制和丢弃/重新排序/损坏的数据包。为了测试其分布式系统在灾难性较小的条件下的性能,在Comcast中测试它们也很重要。 **测试选项:** * **设备:**指定设备,例如“eth0”。 * **延迟:**设置延迟毫秒。 * **目标/默认带宽:**设置目标流量的带宽。 * **数据包丢失:**设置丢弃数据的比例。 * **协议:**指定协议,例如“tcp”或“udp”。 * **端口号:**指定目标端口号。 **平台支持:** * **BSD-derived系统 (如OSX):**ipfw和pfctl。 * **Linux:**iptables和tc。 * **Windows:**ipfw。 **示例命令:** ```bash # Linux comcast --device=eth0 --latency=250 --target-bw=1000 --default-bw=1000000 --packet-loss=10% --target-addr=8.8.8.8,10.0.0.0/24 --target-proto=tcp,udp,icmp --target-port=80,22,1000:2000 # OSX comcast --device=eth0 --latency=250 --target-bw=1000 --packet-loss=10% --target-addr=8.8.8.8,10.0.0.0/24 --target-proto=tcp,udp --target-port=80,22,1000:2000 ``` **注意:** * `comcast`工具的选项可能因版本而有所不同。 * 在测试之前,请确保您的设备已安装了 Comcast。

正文

https://www.5axxw.com/wiki/content/r0cq99

 

Comcast

在诸如网络分区和实例终止这样的硬故障下测试分布式系统是至关重要的,但我们在灾难性较小的条件下测试它们也很重要,因为这是它们最常遇到的情况。Comcast是一个用来模拟常见网络问题的工具,如延迟、带宽限制和丢弃/重新排序/损坏的数据包。

它通过以可移植(ish)的方式包装一些系统工具来工作。在BSD-derived系统(如OSX)上,我们使用ipfwpfctl等工具注入故障。在Linux上,我们使用iptablestc。Comcast只是这些控件的一层薄薄的包装。wipfw甚至原生网络堆栈都可以支持Windows,但这还没有在Comcast中实现,可能会在以后实现。

Installation

$ go get github.com/tylertreat/comcast

Usage

在Linux上,Comcast支持几个选项:设备、延迟、目标/默认带宽、数据包丢失、协议和端口号。

$ comcast --device=eth0 --latency=250 --target-bw=1000 --default-bw=1000000 --packet-loss=10% --target-addr=8.8.8.8,10.0.0.0/24 --target-proto=tcp,udp,icmp --target-port=80,22,1000:2000

在OSX上,Comcast将检查pfctl支持(从Yosemite开始),它支持与上面相同的选项。如果pfctl不可用,它将使用ipfw,它支持设备、延迟、目标带宽和packet-loss选项。

在BSD上(使用ipfw),Comcast目前只支持:设备、延迟、目标带宽和数据包丢失。

$ comcast --device=eth0 --latency=250 --target-bw=1000 --packet-loss=10%

这将增加250毫秒的延迟,将带宽限制在1Mbps,并使用指定端口号上的指定协议将10%的数据包丢弃到目标(在Linux上)目标地址(慢速通道)。指定的默认带宽将应用于所有出口流量(快车道)。要关闭此功能,请运行以下命令:

$ comcast --stop

默认情况下,comcast将确定要执行的系统命令,将它们记录到stdout,然后执行它们。--dry-run标志将跳过执行。

我不相信你,这个代码很烂,我讨厌围棋,等等。

如果您不喜欢运行为您执行shell命令的代码(尽管它是开源的,所以您可以读取它并更改代码)或想要finer-grained控件,那么可以直接运行它们。阅读关于这些东西的手册页了解更多细节。

Linux

在Linux上,可以使用iptables来丢弃传入和传出的数据包。

$ iptables -A INPUT -m statistic --mode random --probability 0.1 -j DROP
$ iptables -A OUTPUT -m statistic --mode random --probability 0.1 -j DROP

或者,您可以使用tc,它支持一些附加选项。

$ tc qdisc add dev eth0 root netem delay 50ms 20ms distribution normal
$ tc qdisc change dev eth0 root netem reorder 0.02 duplicate 0.05 corrupt 0.01

To reset:

$ tc qdisc del dev eth0 root netem

BSD/OSX

要在BSD-derived系统中塑造流量,请创建ipfw管道并对其进行配置。您可以为任何特定主机或网络分别控制传入和传出流量。

$ ipfw add 1 pipe 1 ip from me to any
$ ipfw add 2 pipe 1 ip from any to me
$ ipfw pipe 1 config delay 500ms bw 1Mbit/s plr 0.1

To reset:

$ ipfw delete 1

注意:ipfw在OSX Yosemite中被删除,取而代之的是pfctl

Network Condition Profiles

下面是一个网络条件列表,其中包含可以插入Comcast的值。请再加上你可能遇到的。

NameLatencyBandwidthPacket-loss
GPRS (good) 500 50 2
EDGE (good) 300 250 1.5
3G/HSDPA (good) 250 750 1.5
DIAL-UP (good) 185 40 2
DSL (poor) 70 2000 2
DSL (good) 40 8000 0.5
WIFI (good) 40 30000 0.2
Satellite 1500 - 0.2

与[转帖]Comcast: 模拟糟糕的网络连接,以便构建更好的系统。相似的内容:

[转帖]Comcast: 模拟糟糕的网络连接,以便构建更好的系统。

https://www.5axxw.com/wiki/content/r0cq99 Comcast 在诸如网络分区和实例终止这样的硬故障下测试分布式系统是至关重要的,但我们在灾难性较小的条件下测试它们也很重要,因为这是它们最常遇到的情况。Comcast是一个用来模拟常见网络问题的工具,如延迟、带宽限

[转帖]Comcast

https://github.com/tylertreat/comcast Testing distributed systems under hard failures like network partitions and instance termination is critical, bu

[转帖]

Linux ubuntu20.04 网络配置(图文教程) 因为我是刚装好的最小系统,所以很多东西都没有,在开始配置之前需要做下准备 环境准备 系统:ubuntu20.04网卡:双网卡 网卡一:供连接互联网使用网卡二:供连接内网使用(看情况,如果一张网卡足够,没必要做第二张网卡) 工具: net-to

[转帖]

https://cloud.tencent.com/developer/article/2168105?areaSource=104001.13&traceId=zcVNsKTUApF9rNJSkcCbB 前言 Redis作为高性能的内存数据库,在大数据量的情况下也会遇到性能瓶颈,日常开发中只有时刻

[转帖]ISV 、OSV、 SIG 概念

ISV 、OSV、 SIG 概念 2022-10-14 12:29530原创大杂烩 本文链接:https://www.cndba.cn/dave/article/108699 1. ISV: Independent Software Vendors “独立软件开发商”,特指专门从事软件的开发、生产、

[转帖]Redis 7 参数 修改 说明

2022-06-16 14:491800原创Redis 本文链接:https://www.cndba.cn/dave/article/108066 在之前的博客我们介绍了Redis 7 的安装和配置,如下: Linux 7.8 平台 Redis 7 安装并配置开机自启动 操作手册https://ww

[转帖]HTTPS中间人攻击原理

https://www.zhihu.com/people/bei-ji-85/posts 背景 前一段时间,公司北京地区上线了一个HTTPS防火墙,用来监听HTTPS流量。防火墙上线之前,邮件通知给管理层,我从我老大那里听说这个事情的时候,说这个有风险,然后意外地发现,很多人原来都不知道HTTPS防

[转帖]关于字节序(大小端)的一点想法

https://www.zhihu.com/people/bei-ji-85/posts 今天在一个技术群里有人问起来了,当时有一些讨论(不完全都是我个人的观点),整理一下: 为什么网络字节序(多数情况下)是大端? 早年设备的缓存很小,先接收高字节能快速的判断报文信息:包长度(需要准备多大缓存)、地

[转帖]awk提取某一行某一列的数据

https://www.jianshu.com/p/dbcb7fe2da56 1、提取文件中第1列数据 awk '{print $1}' filename > out.txt 2、提取前2列的文件 awk `{print $1,$2}' filename > out.txt 3、打印完第一列,然后打

[转帖]awk 中 FS的用法

https://www.cnblogs.com/rohens-hbg/p/5510890.html 在openwrt文件 ar71xx.sh中 查询设备类型时,有这么一句, machine=$(awk 'BEGIN{FS="[ \t]+:[ \t]"} /machine/ {print $2}' /