什么是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)
It is recommended to clone the GitHub repository of wondershaper such that you can pull in new updates at any time (if available). Open a new terminal and clone the repository using
git clone https://github.com/magnific0/wondershaper.git
This will clone wondershaper in your current folder in a new folder named wondershaper. Now enter the folder using
cd wondershaper
You can run wondershaper (as any user with sufficient permissions) without installation and stop following the instructions at this point. Show the wondershaper usage instructions by typing
./wondershaper -h
The program details all available options on how to use wondershaper. Next is to pick an interface that you want to shape. You can see all available interfaces by typing
ip addr show
Note that on older systems this command might not be available. In this case you should run ifconfig
instead.
Identify the network interface that you want to shape. The names differ per system.
In the following example a wireless interface is limited to an upload of 4Mbps and download of 8Mbps.
./wondershaper -a wlp4s0 -u 4096 -d 8192
If you get messages telling you that RTNETLINK answers: Operation not permitted
your user account does not have sufficient privileges. In that case try:
sudo ./wondershaper -a wlp4s0 -u 4096 -d 8192
A makefile file provided for easy installation. The default location for wondershaper is in /usr/bin
. If you want to install to your system you can run:
sudo make install
You can verify that wondershaper was installed correctly by entering:
which wondershaper
This should return /usr/bin/wondershaper
. You can follow the same instructions as explained in the "Using wondershaper" section, but instead of running the local version of the program you now run the system version by removing the ./
from the beginning of each command. For example to show the help instructions again run:
wondershaper -h
Instead of using the commandline options to set the rates and interface as previously shown, it is necessary to set these parameters in the wondershaper.conf
configuration file. You can edit this file using your favourite text editor (vim in the example below) as such:
sudo vim /etc/systemd/wondershaper.conf
To make sure wondershaper is reactivated on reboot a systemd service file is provided. First enable wondershaper as a systemd service using:
sudo systemctl enable --now wondershaper.service
This way wondershaper is activated with your setting upon reboot.
wondershaper [-hcs] [-a <adapter>] [-d <rate>] [-u <rate>]
The following command line options are allowed:
-h
Display help-a <adapter>
Set the adapter-d <rate>
Set maximum download rate (in Kbps) and/or-u <rate>
Set maximum upload rate (in Kbps)-p
Use the 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
The different modes are:
wondershaper -a <adapter> -d <rate> -u <rate> wondershaper -c -a <adapter> wondershaper -s -a <adapter>
Some examples:
wondershaper -a eth0 -d 1024 -u 512 wondershaper -a eth1 -d 94000 -u 94000 # could be used on a 100Mbps link wondershaper -a eth1 -u 94000 # only limit upload wondershaper -c -a eth0 wondershaper -p -f foo.conf
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工具操作简单好入手,是个不错的工具。
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/8559.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~