Taildrop在路由器上是一种非常常见的丢包策略。如果路由器进来数据包的总bps超过了路由器能处理的bps,那么,某些数据包就会被丢弃,而丢包原因就是taildrop。
这种情况下的丢包,和路由器过载无法处理(一般是pps达到了路由器处理的上限)是完全不一样的。路由器因为pps过大导致路由器过载而丢包,这样的包很可能都没有丢包原因的。
下面的这个例子,路由器dataplane的处理能力只是达到了79%,但是,总的bps已经达到了2G,该路由器的总throughput就只有2G,部分数据包就被丢弃,而丢包原因就是taildrop。
显而易见的一点就是,因为路由器要生产丢包原因以及统计这些丢包,路由器需要不少CPU来处理。
ISR4451-8#drop
-------------------------------------------------------------------------
Global Drop Stats Packets Octets
-------------------------------------------------------------------------
TailDrop 494618626 104275024927
ISR4451-8#qfp
CPP 0: Subdev 0 5 secs 1 min 5 min 60 min
Input: Priority (pps)