美文网首页
网卡限速工具之WonderShaper

网卡限速工具之WonderShaper

作者: GreatSQL | 来源:发表于2022-08-31 09:47 被阅读0次
    • 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 【帮助信息】
       -a <adapter> Set the adapter  【指定网卡接口】
       -d <rate>    Set maximum download rate (in Kbps) and/or 【限制下载速度(Kbps)】
       -u <rate>    Set maximum upload rate (in Kbps)   【限制上传速度(Kbps)】
       -p           Use presets in "/etc/systemd/wondershaper.conf"
       -f <file>    Use alternative preset file
       -c           Clear the limits from adapter 【清除指定网卡规则,用于取消限速】
       -s           Show the current status of adapter 【显示当前网卡的状态】
       -v           Show the current version  【显示当前版本】
    
       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: 【使用示例】
       wondershaper -a eth0 -d 1024 -u 512  【设置网卡eth0的上行速度为512kbps,下行速度为1024kbps】
       wondershaper -a eth0 -u 512 【只设置上行速度为512kbps】
       wondershaper -c -a eth0 【清除网卡eth0的规则】
       wondershaper -p -f foo.conf 【设置指定的配置文件】
    
    root@****-5491:/home/soft/wondershaper#
    

    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
    
    --测试网速
    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................................................................................
    -- 下载网速是171.43 Mbit/s,
    Download: 171.43 Mbit/s
    Testing upload speed......................................................................................................
    -- 上传网速是4.15 Mbit/s
    Upload: 4.15 Mbit/s
    

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

    -- 下行2048kbps=2 Mbit/s,上行 1024kbps=1 Mbit/s
    root@****-5491:/home/soft/wondershaper# ./wondershaper -a eno1 -d 2048 -u 1024
    
    --测试网速
    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................................................................................
    -- 下行速度
    Download: 1.80 Mbit/s
    Testing upload speed......................................................................................................
    --上行速度
    Upload: 1.28 Mbit/s
    root@****-5491:/home/soft/wondershaper# 
    

    4.3取消限速

    --取消限速
    root@****-5491:/home/soft/wondershaper# ./wondershaper -c -a eno1
    
    -- 查看网卡状态
    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
    
    -- 测试网速
    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在测试中的应用

    • 测试项目:某内部数据库迁移工具

    • 测试目的:数据迁移中,对目标端进行限速,当取消限速后,传输速度可以恢复

    • 测试步骤:起迁移进程,在目标端服务器上用WonderShaper工具进行限速:

      -- 只限制下行速度
      [#22#root@**** ~/wondershaper 14:49:32]22  ./wondershaper -a enp0s3  -d 100
      
    • 测试结果:

    限速后,写目标库单位写入行数和单位写入字节数都急剧下降,如下图:
    
    取消限速,恢复网络后,传输速率慢慢恢复:
    

    6.网速单位转换

    1KB/s = 8kbps = 8kb/s
    比如一般100M的宽带,实际是100Mbps=(100/8) MB/s=12.5 MB/s
    

    7.总结

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


    Enjoy GreatSQL :)

    关于 GreatSQL

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

    相关链接: GreatSQL社区 Gitee GitHub Bilibili

    相关文章

      网友评论

          本文标题:网卡限速工具之WonderShaper

          本文链接:https://www.haomeiwen.com/subject/gbfdnrtx.html