Linux 流量控制TC工具各种功能的应用

运维 系统运维
tc是Linux进行流量控制的工具。通过tc,你可以控制网络接口发送数据的速率。以下是介绍Linux 流量控制TC工具的各种用法

企业内部网络有足够的带宽可以使用。但是,一般在企业接入Internet的部分都是一个有限的流量。为了提高网络的使用质量,保证用户按照网络中业务设计的要求来使用整个网络的带宽,可以从流量控制服务器的角度分析、优化Linux系统,给企业服务带来便利和高效。现在对流量控制(TC)的具体使用做个介绍。首先是TC的总用法。


TC命令,内核支持需设置QoS support、QoS and/or fair queueing = y。用法为:
#tc [ OPTIONS ] OBJECT { COMMAND | help }


其中
OBJECT := { qdisc | class | filter }
OPTIONS := { -s[tatistics] | -d[etails] | -r[aw] }


下面分别介绍TC中队列、分类和过滤器的用法。
1.TC中队列(qdisc)的用法
队列的使用中,内核支持需设置QoS support、QoS and/or fair queueing = y。用法为:
 

  1. #tc qdisc [ add | del | replace | change | get ] dev STRING  
  2. [ handle QHANDLE ] [ root | ingress | parent CLASSID ]  
  3. [ estimator INTERVAL TIME_CONSTANT ]  
  4. [ [ QDISC_KIND ] [ help | OPTIONS ] ]  
  5. #tc qdisc show [ dev STRING ] [ingress]  

 


其中
 

  1. QDISC_KIND := { [p|b]fifo | tbf | prio | cbq | red | etc. }  
  2. OPTIONS := ... try tc qdisc add <desired QDISC_KIND> help   
  3. CBQ队列(qdisc cbq)的使用中,内核支持需设置 QoS support、QoS and/or fair queueing、CBQ packet scheduler、Rate estimator = y,用法为:   
  4. ... cbq bandwidth BPS avpkt BYTES [ mpu BYTES ]  
  5. [ cell BYTES ] [ ewma LOG ]  

 


2.TC中分类(class)的用法
分类的使用中,内核支持需设置QoS support、QoS and/or fair queueing、Packet classifier API = y。用法为:
 

  1. #tc class [ add | del | change | get ] dev STRING  
  2. [ classid CLASSID ] [ root | parent CLASSID ]  
  3. [ [ QDISC_KIND ] [ help | OPTIONS ] ]  
  4. #tc class show [ dev STRING ] [ root | parent CLASSID ] 


其中
 

  1. QDISC_KIND := { prio | cbq | etc. }  
  2. OPTIONS := ... try tc class add <desired QDISC_KIND> help  
  3. &nbsp;&nbsp;&nbsp;&nbsp;TC CBQ分类(class cbq)的用法为:  
  4. <ccid_nobr> 
  5. <table width="400" border="1" cellspacing="0" cellpadding="2"   
  6.  bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center"> 
  7. <tr> 
  8. <td bgcolor="e6e6e6" class="code" style="font-size:9pt"> 
  9. <pre><ccid_code>  ... cbq bandwidth BPS rate BPS maxburst PKTS [ avpkt BYTES ]  
  10. [ minburst PKTS ] [ bounded ] [ isolated ]  
  11. [ allot BYTES ] [ mpu BYTES ] [ weight RATE ]  
  12. [ prio NUMBER ] [ cell BYTES ] [ ewma LOG ]  
  13. [ estimator INTERVAL TIME_CONSTANT ]  
  14. [ split CLASSID ] [ defmap MASK/CHANGE ]  

 


3.TC中过滤器(filter)的用法
过滤器的使用中,内核支持需设置QoS support、QoS and/or fair queueing、Packet classifier API = y。用法为:
 

  1. #tc filter [ add | del | change | get ] dev STRING  
  2. [ pref PRIO ] [ protocol PROTO ]  
  3. [ estimator INTERVAL TIME_CONSTANT ]  
  4. [ root | classid CLASSID ] [ handle FILTERID ]  
  5. [ [ FILTER_TYPE ] [ help | OPTIONS ] ]  
  6. #tc filter show [ dev STRING ] [ root | parent CLASSID ]  

 


其中
 

  1. FILTER_TYPE := { rsvp | u32 | fw | route | etc. }  
  2. FILTERID := ... format depends on classifier, see there  
  3. OPTIONS := ... try tc filter add <desired FILTER_KIND> help  

 


TC U32过滤器(filter u32)的用法:
 

  1. ... u32 [ match SELECTOR ... ] [ link HTID ] [ classid CLASSID ]  
  2.   [ police POLICE_SPEC ] [ offset OFFSET_SPEC ]  
  3.   [ ht HTID ] [ hashkey HASHKEY_SPEC ]  
  4.   [ sample SAMPLE ]  
  5. 或 u32 divisor DIVISOR  

 


其中
 

  1. SELECTOR :SAMPLE SAMPLE ...  
  2. SAMPLE := { ip | ip6 | udp | tcp | icmp | u{32|16|8} } SAMPLE_ARGS  
  3. FILTERID :X:Y:Z  

 


TC FW过滤器(filter fw)的用法:
... fw [ classid CLASSID ] [ police POLICE_SPEC ]


其中
POLICE_SPEC := ... look at TBF
CLASSID := X:Y

【编辑推荐】

  1. Linux性能测试工具Lmbench介绍和使用说明
  2. Linux 编程工具介绍及Linux下的编程
  3. Linux 开发工具详细介绍
  4. Linux下载工具Curl详解
  5. Linux 测试软件:从源代码开始
责任编辑:chenqingxiang 来源: 赛迪网
相关推荐

2010-06-04 11:21:42

Linux 流量控制

2010-05-27 11:03:44

Linux流量控制

2010-06-17 17:00:07

Linux流量控制

2010-06-04 10:49:58

Linux流量控制

2010-02-03 23:04:31

流量控制P2P华夏创新

2010-08-06 09:39:53

Linux流量控制

2023-10-08 12:14:42

Sentinel流量控制

2010-05-27 10:43:29

Linux流量控制

2009-12-03 10:47:47

路由器功能介绍

2012-11-29 09:56:37

流量控制器过滤器Linux TC

2011-06-23 09:09:37

流量控制

2013-07-22 14:25:29

iOS开发ASIHTTPRequ

2010-05-12 14:29:29

Linux流量控制

2010-08-06 10:02:07

2021-03-09 07:38:15

Percona Xtr流量控制运维

2022-09-01 13:12:53

LinuxTC网络限流

2009-12-08 15:18:01

路由器功能

2009-02-05 10:13:00

局域网流量控制数据流量

2019-07-02 10:22:15

TCP流量数据

2021-03-22 08:06:59

SpringBootSentinel项目
点赞
收藏

51CTO技术栈公众号