网卡限速工具之WonderShaper

  • GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。
  • GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。

  • 什么是WonderShaper

  • 如何安装WonderShaper
  • WonderShaper使用帮助
  • WonderShaper使用示例
  • 查看网卡状态
  • 限制网卡速度(单位Kbps)
  • 取消限速
  • WonderShaper在测试中的应用
  • 网速单位转换
  • 总结

1.什么是WonderShaper

WonderShaper是用来对特定网卡进行快速限速的工具,它实际是对linux的tc命令进行封装后的shell脚本,所以使用成本比tc更低,更容易上手,以下配合测速工具speedtest一起使用

2.如何安装WonderShaper

#直接拉取WonderShaper,开箱即用
git clone https://github.com/magnific0/wondershaper.git

root@****-5491:/home/soft/wondershaper# ./wondershaper -v
Version 1.4.1
root@****-5491:/home/soft/wondershaper#

#网速测试工具speedtest安装(Ubuntu)
apt install speedtest-cli
--yum install speedtest-cli (centos)

3.WonderShaper使用帮助

root@****-5491:/home/soft/wondershaper# ./wondershaper -h
USAGE: ./wondershaper [-hcs] [-a <adapter>] [-d <rate>] [-u <rate>]

Limit the bandwidth of an adapter

OPTIONS:
   -h           Show this message &#x3010;&#x5E2E;&#x52A9;&#x4FE1;&#x606F;&#x3011;
   -a <adapter> Set the adapter  &#x3010;&#x6307;&#x5B9A;&#x7F51;&#x5361;&#x63A5;&#x53E3;&#x3011;
   -d <rate>    Set maximum download rate (in Kbps) and/or &#x3010;&#x9650;&#x5236;&#x4E0B;&#x8F7D;&#x901F;&#x5EA6;(Kbps)&#x3011;
   -u <rate>    Set maximum upload rate (in Kbps)   &#x3010;&#x9650;&#x5236;&#x4E0A;&#x4F20;&#x901F;&#x5EA6;(Kbps)&#x3011;
   -p           Use presets in "/etc/systemd/wondershaper.conf"
   -f <file>    Use alternative preset file
   -c           Clear the limits from adapter &#x3010;&#x6E05;&#x9664;&#x6307;&#x5B9A;&#x7F51;&#x5361;&#x89C4;&#x5219;&#xFF0C;&#x7528;&#x4E8E;&#x53D6;&#x6D88;&#x9650;&#x901F;&#x3011;
   -s           Show the current status of adapter &#x3010;&#x663E;&#x793A;&#x5F53;&#x524D;&#x7F51;&#x5361;&#x7684;&#x72B6;&#x6001;&#x3011;
   -v           Show the current version  &#x3010;&#x663E;&#x793A;&#x5F53;&#x524D;&#x7248;&#x672C;&#x3011;

   Configure HIPRIODST in "/etc/systemd/wondershaper.conf" for hosts
   requiring high priority i.e. in case ssh uses dport 443.

MODES:
   wondershaper -a <adapter> -d <rate> -u <rate>
   wondershaper -c -a <adapter>
   wondershaper -s -a <adapter>

EXAMPLES: &#x3010;&#x4F7F;&#x7528;&#x793A;&#x4F8B;&#x3011;
   wondershaper -a eth0 -d 1024 -u 512  &#x3010;&#x8BBE;&#x7F6E;&#x7F51;&#x5361;eth0&#x7684;&#x4E0A;&#x884C;&#x901F;&#x5EA6;&#x4E3A;512kbps&#xFF0C;&#x4E0B;&#x884C;&#x901F;&#x5EA6;&#x4E3A;1024kbps&#x3011;
   wondershaper -a eth0 -u 512 &#x3010;&#x53EA;&#x8BBE;&#x7F6E;&#x4E0A;&#x884C;&#x901F;&#x5EA6;&#x4E3A;512kbps&#x3011;
   wondershaper -c -a eth0 &#x3010;&#x6E05;&#x9664;&#x7F51;&#x5361;eth0&#x7684;&#x89C4;&#x5219;&#x3011;
   wondershaper -p -f foo.conf &#x3010;&#x8BBE;&#x7F6E;&#x6307;&#x5B9A;&#x7684;&#x914D;&#x7F6E;&#x6587;&#x4EF6;&#x3011;

root@****-5491:/home/soft/wondershaper#
</adapter></adapter></rate></rate></adapter></file></rate></rate></adapter></rate></rate></adapter>

4.WonderShaper使用示例

4.1查看网卡状态

root@****-5491:/home/soft/wondershaper# ifconfig eno1
eno1: flags=4163<up,broadcast,running,multicast>  mtu 1500
        inet 192.168.5.103  netmask 255.255.255.0  broadcast 192.168.5.255
        inet6 fe80::2c93:21f9:1931:304  prefixlen 64  scopeid 0x20<link>
        ether c8:f7:50:7e:50:48  txqueuelen 1000  (Ethernet)
        RX packets 7748809  bytes 1034513376 (1.0 GB)
        RX errors 0  dropped 439  overruns 0  frame 0
        TX packets 15528838  bytes 4784318169 (4.7 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 16  memory 0x91500000-91520000

root@****-5491:/home/soft/wondershaper# ./wondershaper -s -a eno1
qdisc fq_codel 0: root refcnt 2 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 4528052159 bytes 14890189 pkt (dropped 0, overlimits 0 requeues 4224)
 backlog 0b 0p requeues 4224
  maxpacket 66616 drop_overlimit 0 new_flow_count 35953 ecn_mark 0
  new_flows_len 0 old_flows_len 0

--&#x6D4B;&#x8BD5;&#x7F51;&#x901F;
root@****-5491:/home/soft/wondershaper# speedtest
Retrieving speedtest.net configuration...

Testing from China Telecom (120.36.98.11)...

Retrieving speedtest.net server list...

Selecting best server based on ping...

Hosted by Fuzhou China Mobile,Fujian (Fuzhou) [589.19 km]: 14.449 ms
Testing download speed................................................................................

-- &#x4E0B;&#x8F7D;&#x7F51;&#x901F;&#x662F;171.43 Mbit/s&#xFF0C;
Download: 171.43 Mbit/s
Testing upload speed......................................................................................................

-- &#x4E0A;&#x4F20;&#x7F51;&#x901F;&#x662F;4.15 Mbit/s
Upload: 4.15 Mbit/s
</up,broadcast,running,multicast>

4.2限制网卡速度(单位Kbps)

-- &#x4E0B;&#x884C;2048kbps=2 Mbit/s,&#x4E0A;&#x884C; 1024kbps=1 Mbit/s
root@****-5491:/home/soft/wondershaper# ./wondershaper -a eno1 -d 2048 -u 1024

--&#x6D4B;&#x8BD5;&#x7F51;&#x901F;
root@****-5491:/home/soft/wondershaper# speedtest
Retrieving speedtest.net configuration...

Testing from China Telecom (120.36.98.11)...

Retrieving speedtest.net server list...

Selecting best server based on ping...

Hosted by Far EasTone Telecom (Miaoli City) [722.10 km]: 174.383 ms
Testing download speed................................................................................

-- &#x4E0B;&#x884C;&#x901F;&#x5EA6;
Download: 1.80 Mbit/s
Testing upload speed......................................................................................................

--&#x4E0A;&#x884C;&#x901F;&#x5EA6;
Upload: 1.28 Mbit/s
root@****-5491:/home/soft/wondershaper#

4.3取消限速

--&#x53D6;&#x6D88;&#x9650;&#x901F;
root@****-5491:/home/soft/wondershaper# ./wondershaper -c -a eno1

-- &#x67E5;&#x770B;&#x7F51;&#x5361;&#x72B6;&#x6001;
root@****-5491:/home/soft/wondershaper# ./wondershaper -s -a eno1
qdisc fq_codel 0: root refcnt 2 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 123022 bytes 471 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
  new_flows_len 0 old_flows_len 0

-- &#x6D4B;&#x8BD5;&#x7F51;&#x901F;
root@****-5491:/home/soft/wondershaper# speedtest
Retrieving speedtest.net configuration...

Testing from China Telecom (120.36.98.11)...

Retrieving speedtest.net server list...

Selecting best server based on ping...

Hosted by Far EasTone Telecom (Miaoli City) [722.10 km]: 173.886 ms
Testing download speed................................................................................

Download: 11.29 Mbit/s
Testing upload speed......................................................................................................

Upload: 2.93 Mbit/s
root@****-5491:/home/soft/wondershaper#

5.WonderShaper在测试中的应用

  • 测试项目:内部数据库迁移工具
    [En]

    Test project: an internal database migration tool*

  • 测试目的:数据迁移过程中,目标端有限速,取消限速后,可以恢复传输速度。
    [En]

    Test purpose: during data migration, the target end is subject to a speed limit, and when the speed limit is cancelled, the transmission speed can be restored.*

  • 测试步骤:起迁移进程,在目标端服务器上用WonderShaper工具进行限速:
-- &#x53EA;&#x9650;&#x5236;&#x4E0B;&#x884C;&#x901F;&#x5EA6;[#22#root@**** ~/wondershaper 14:49:32]22  ./wondershaper -a enp0s3  -d 100
  • 测试结果: 限速后,写目标库单位写入行数和单位写入字节数都急剧下降,如下图:

网卡限速工具之WonderShaper
&#x53D6;&#x6D88;&#x9650;&#x901F;&#xFF0C;&#x6062;&#x590D;&#x7F51;&#x7EDC;&#x540E;&#xFF0C;&#x4F20;&#x8F93;&#x901F;&#x7387;&#x6162;&#x6162;&#x6062;&#x590D;&#xFF1A;

网卡限速工具之WonderShaper

网卡限速工具之WonderShaper

6.网速单位转换

1KB/s = 8kbps = 8kb/s
&#x6BD4;&#x5982;&#x4E00;&#x822C;100M&#x7684;&#x5BBD;&#x5E26;&#xFF0C;&#x5B9E;&#x9645;&#x662F;100Mbps=(100/8) MB/s=12.5 MB/s

7.总结

使用WonderShaper对网卡进行限速,在测试时可以针对性的指定网卡,指定上传速度或者指定下载速度,在测试中上传和下载速度是互不影响的,可以只限制一方;且WonderShaper工具操作简单好入手,是个不错的工具。

Enjoy GreatSQL 😃

关于 GreatSQL

GreatSQL是由万里数据库维护的MySQL分支,专注于提升MGR可靠性及性能,支持InnoDB并行查询特性,是适用于金融级应用的MySQL分支版本。

相关链接: GreatSQL社区 Gitee GitHub Bilibili

GreatSQL社区:

欢迎来GreatSQL社区发帖提问
https://greatsql.cn/

网卡限速工具之WonderShaper

技术交流群:

微信:扫码添加 GreatSQL&#x793E;&#x533A;&#x52A9;&#x624B;微信好友,发送验证信息 &#x52A0;&#x7FA4;

网卡限速工具之WonderShaper

Original: https://www.cnblogs.com/greatsql/p/16641935.html
Author: GreatSQL
Title: 网卡限速工具之WonderShaper

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/504912/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • MySQL 8 新特性之Clone Plugin

    Clone Plugin是MySQL 8.0.17引入的一个重大特性,为什么要实现这个特性呢?个人感觉,主要还是为Group Replication服务。在Group Replic…

    数据库 2023年6月11日
    0171
  • 关于互联网通信流程–架构–资源文件等

    互联网通信流程: 客户端 ——–服务端 &#x4E92;&#x8054;&#x7F51;&#x901A;&amp…

    数据库 2023年6月11日
    0131
  • linux-centos常用命令

    01-centos-常用命令 1.centos防火墙 关闭 systemctl stop firewalld 禁止开机启动防火墙 systemctl disable firewal…

    数据库 2023年6月11日
    0147
  • 数据库持久化+JDBC数据库连接

    数据持久化就是 将内存中的数据模型转换为存储模型,以及 将存储模型转换为内存中的数据模型的统称。数据模型可以是任何数据结构或对象模型,存储模型可以是关系模型、XML、二进制流等。 …

    数据库 2023年6月16日
    0190
  • Redis——数据操作(3)

    2022-09-22 (4)set操作 ①添加操作(sadd): 例: ②查看操作(smembers):例: ③移除操作(srem):例: (5)zset(有序集合而且里面的元素是…

    数据库 2023年6月14日
    0162
  • 实验:非GTID 一主多从变级联架构

    个个原创文章 欢迎讨论https://www.cnblogs.com/konggg/欢迎转载收藏,转载请注明来源,谢谢支持! Original: https://www.cnblo…

    数据库 2023年6月16日
    0174
  • MySQL索引:B+树索引

    MySQL索引:B+树索引 B+树索引是传统意义上的索引,这是目前关系型数据库系统中查找最为常用和最为有效的索引。B+树索引的构造类似于二叉树,根据键值快速找到数据 B树 B+树是…

    数据库 2023年5月24日
    0134
  • MySQL之事务隔离级别和MVCC

    事务隔离级别 事务并发可能出现的问题 脏写 事务之间对增删改互相影响 脏读 事务之间读取其他未提交事务的数据 不可重复读 一个事务在多次执行一个select读到的数据前后不相同。因…

    数据库 2023年5月24日
    0110
  • django中的auth模块与admin后台管理

    1. auth模块 在创建完django项目之后,执行数据库迁移之后,数据库里会增加很多新表,其中有一张名为auth_user的表,当访问django自带的路由admin的时候,需…

    数据库 2023年6月14日
    0159
  • Spring Boot yml 公共抽取

    项目里面的yml文件为了区别线上、测试、本地环境,分别有application-prod.yml,application-dev.yml,application-local.yml…

    数据库 2023年6月6日
    0124
  • 数字签名和数字证书是什么

    定义 数字签名和数字证书的区别是什么?数字证书是由权威机构CA证书授权中心发行的,能提供在Internet上进行身份验证的一种权威性电子文档。而数字签名是一种类似写在纸上的普通的物…

    数据库 2023年6月11日
    0139
  • django中的模板层简介

    1.什么是模板层 模板层可以根据视图中传递的字典数据动态生产相应的HTML页面 2.模板层的配置 1.&#x5728;&#x9879;&#x76EE;&am…

    数据库 2023年6月14日
    0126
  • [Linux]如何将一个目录添加至环境变量

    全局环境变量有两个目录,其中 /etc/profile 仅初始化登陆 shell 的环境变量 /etc/bash.bashrc 仅初始化交互 shell 为了在各种终端中使用,这里…

    数据库 2023年6月16日
    0131
  • 达梦产品技术支持培训-day8-DM8数据库备份与还原-实操

    Disql 工具:联机数据备份与还原,包括库备份、表空间备份与还原、表备份与还原; DMRMAN 工具:脱机数据库备份还原与恢复; 客户端工具 MANAGER和CONSOLE:对应…

    数据库 2023年6月11日
    0129
  • 2022-8-24 js

    JavaScript脚本语言,解释性 &#x4E3B;&#x8981;&#x7ED9;HTML&#x7F51;&#x9875;&#x…

    数据库 2023年6月14日
    0125
  • MySQL之文件

    1.参数文件 当MySQL实例启动时,数据库会先去读一个配置参数文件,用来寻找数据库的各种文件所在的位置以及指定某些初始化参数,这些参数通常定义了某种内存结构有多大等。在默认轻快下…

    数据库 2023年6月6日
    0120
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球