在本文中,我们将探讨如何使用
tc
(traffic control)工具在 Rocky Linux 9 系统上对网络接口进行流量控制。通过tc
,我们能够模拟各种网络条件,如带宽限制、延迟增加、丢包等,这对于测试网络应用在不同网络环境下的表现至关重要。本文将详细介绍tc
的基本概念、常用命令以及如何配置简单的限速策略,旨在更好地理解并掌握这一强大的网络管理工具。
项目背景:我的同事通过询问如何对弹性网卡进行限速以应对突然增加的流量导致的业务影响,阿里云官方解答目前NAT和弹性网卡在阿里云产品上没有现成的限速功能,建议使用第三方工具实现限速。
常用命令
添加限速规则
[root@dev-rocky9-shanghai-area1 ~]# tc qdisc add dev ens160 root tbf rate 50kbit latency 50ms burst 1000 # tc qdisc show dev <interface>
dev <interface>
: 指定网卡接口。root
: 表示根队列。handle 1:
: 指定根队列的句柄。htb
: hierarchical token bucket(分层令牌桶),一种常用的限速算法。default 11
: 默认类的 ID。rate <limit>mbit
: 限制速率,例如10mbit
表示限速到 10 Mbps。ceil <limit>mbit
: 最高速率,通常与rate
相同。
删除限速规则
[root@dev-rocky9-shanghai-area1 ~]# tc qdisc del dev ens160 root tbf rate 50kbit latency 50ms burst 1000 # tc qdisc del dev <interface> root
注意事项
- 在对生产环境的网卡进行限速之前,请务必做好备份和恢复计划,以免造成服务中断。
- 确保了解所使用的限速算法及其参数的意义,以免出现意外的行为。
- 限速操作可能会对网络性能产生显著影响,因此仅在测试环境下使用。