ContentsIntroductionPrerequisitesRequirementsComponentsUsedConventions处理和交换输入队列丢弃排除输入队列丢弃故障输出队列丢弃排除输出队列丢弃故障用于获得详细信息的命令showinterfacesswitching说明格式输出示例:showinterfacesstats说明格式输出示例:ipaccountingmac-address说明格式showinterfacesmac-accounting说明格式输出示例:RelatedInformationIntroduction本文档讨论取自路由器上showinterfaces命令输出的输入和输出队列丢弃.
本文档说明这些丢弃的含义、它们指示的问题类型,以及如何排除这些问题的源.
它提供一些提示有关如何防止这些问题的提示.
Note:丢弃常常会很有用,因为它们会触发上层协议的流控制机制(例如,丢弃可减小TCP窗口大小).
PrerequisitesRequirementsTherearenospecificrequirementsforthisdocument.
ComponentsUsedThisdocumentisnotrestrictedtospecificsoftwareandhardwareversions.
Theinformationinthisdocumentwascreatedfromthedevicesinaspecificlabenvironment.
Allofthedevicesusedinthisdocumentstartedwithacleared(default)configuration.
Ifyournetworkislive,makesurethatyouunderstandthepotentialimpactofanycommand.
Conventions有关文档规则的详细信息,请参阅Cisco技术提示规则.
处理和交换在IP网络中,路由器基于路由表的内容做出转发决策.
当路由器搜索路由表时,它会查找目标IP地址的最长匹配项.
路由器在进程级别执行此操作.
因此,搜索进程与其他CPU进程一起排队,正因为如此,查找时间无法预测并且可能很长.
因此,在CiscoIOS软件中引入了一些基于exact-match-lookup的交换方法.
主要优点的exact-match-lookup是查找时间是确定性和非常短的.
这显著缩短了路由器做出转发决策所需的时间.
因此,可以在中断级别实施执行搜索的例程.
这意味着,数据包到达将触发中断,这将导致CPU延迟其他任务以处理该数据包.
转发数据包的传统方法是在路由表中查找最佳匹配项.
这不能在中断级别实施,必须在进程级别执行.
由于多种原因(本文档中提到了部分原因),不能完全放弃longest-match-lookup方法,因此这两种查找方法在Cisco路由器上并行存在.
此策略已被推广,现在也应用于IPX和AppleTalk.
有关CiscoIOS软件交换路径的详细信息,请参阅性能调整基础知识.
输入队列丢弃当信息包输入路由器时,路由器尝试转发它在中断级别.
如果无法在相应的缓存表中找到匹配项,数据包将在传入接口的输入队列中排队以等待处理.
将始终处理某些数据包,但是需要适当的配置并在稳定的网络中进行,已处理数据流包的速率决不能导致输入队列拥塞.
如果输入队列已满,将丢弃数据包.
以下为示例输出:router#showinterfacesethernet0/0.
.
.
Inputqueue:30/75/187/0(size/max/drops/flushes);Totaloutputdrops:0Outputqueue:0/40(size/max).
.
.
在本示例输出中,无法清楚地看到哪些数据包已被丢弃.
要排除输入队列丢弃故障,必须查明填满输入队列的数据包.
在本示例中,在发出showinterfacesethernet0/0命令时,接口ethernet0/0的输入队列中存在30个数据包.
队列深度是75个数据包,自上次清除接口计数器以来,已发生了187次丢弃事件.
如果分配给接口的数据包缓冲区数量被用尽或达到其最大阈值,系统将计算输入队列丢弃数量.
可以使用hold-queue命令增加每个接口的最大队列值(队列长度值可以在0和4096之间.
默认值为75).
Note:共享内存路由器(1600、2500和4000系列)也对快速交换的数据流使用输入队列.
如果在这些平台上发生输入队列丢弃,请确保所有数据流都使用可用的最佳交换路径(请参阅性能调整基础知识).
输入队列丢弃通常发生在数据包进行进程交换时.
进程交换机意味着路由器不能使用一个更可取的高速缓存方法,例如快速的交换或思科快速转发(CEF),处理转发决策.
如果输入丢弃仍然存在,则暗示只是有太多数据流.
请考虑硬件升级,或尝试减少数据流负载.
以下是输入队列丢弃计数器的条件.
它们通常在路由器收到突发数据流并且无法处理所有数据包时发生.
可由接口PHY和接口DMA访问的RxFIFO已满,在此条件下到达的所有新帧都将被丢弃(通常称为溢出),并且rx_overflow计数器(通过showcontrollerinterface-id查看)将增加.
当rx_overflow计数器增加一时,表示溢出条件发生了一次,而不表示已丢弃的帧数.
q可由接口DMA和接口驱动程序代码访问的Rx环已满.
从DMA传输的任何新帧在此条件下都不能继续,因为Rx环中没有任何空闲条目,因此发送的帧将被丢弃(称为溢出条件).
rx_int_drop计数器(通过showcontrollerinterface-id查看)也会增加一.
再次,如果rx_int_drop增加一,它表示溢出条件发生了一次,而已丢弃的帧数未知.
q可从默认的75个数据包增加输入保留队列大小.
保留队列存储从网络收到的等待发送到客户端的数据包.
Cisco建议队列大小在异步接口上不超过十个数据包.
对于大多数其他接口,队列长度不能超过100.
输入保留队列可防止单个接口使用过多输入数据包对网络服务器进行泛洪攻击.
如果接口在系统中有太多未处理的输入数据包,将丢弃另外的输入数据包.
Router(conf-if)#hold-queuelengthin对于Catalyst交换机,Cisco建议在设备上的所有L3接口(物理接口和VLAN接口)上进行此调节.
使用switchport命令配置的L2端口可以保留为默认值.
Note:在您实施此命令后,您需要清除接口计数器然后监控网络.
警告:增加保留队列大小可能对网络路由和响应时间产生负面影响.
对于使用SEQ/ACK数据包确定往返时间的协议,请不要增加输出队列大小.
丢弃数据包会通知主机降低传输速度以匹配可用带宽.
这通常比使用大保留队列时可能发生的网络中存在同一数据包的重复副本要好.
排除输入队列丢弃故障当数据包不断到达输入队列时,您可以成功排除输入队列丢弃故障.
您无法排除过去发生的拥塞故障.
如果接口上配置了多个路由协议,请首先请确定导致输入队列拥塞的协议.
以下是实现此目的的最快方法:确定可疑的协议.
检查Inputprocesses中的CPU使用率.
要执行此操作,请运行showprocessescpuexec命令.
如果路由器上当前运行的是CiscoIOS软件版本12.
1或更高版本,您可以通过输出限定符缩短showprocessesCPU命令的输出:router#showprocessesCPU|i^PID|InputPIDRuntime(ms)InvokeduSecs5Sec1Min5MinTTYProcess108503171349630.
00%0.
00%0.
00%0ARPInput24698641142961120.
08%0.
11%0.
10%0NetInput28550998942616126.
20%20.
07%19.
26%0IPInput374220000.
00%0.
00%0.
00%0SSCOPInput408240000.
00%0.
00%0.
00%0ILMIInput1.
498180000.
00%0.
00%0.
00%0ProbeInput5028209463760830.
00%0.
03%0.
04%0RARPInput598240000.
00%0.
00%0.
00%0SPXInput618240000.
00%0.
00%0.
00%0TagInput6820803339261320.
00%0.
03%0.
00%0IPXInput1044140000.
00%0.
00%0.
00%0IPXWANInput1078180000.
00%0.
00%0.
00%0ATInput表1列出了可能导致输入队列拥塞的可能输入进程和数据包类型:其他输入进程不大可能导致输入队列拥塞.
查明导致输入队列拥塞的数据包是发往路由器还是通过路由器转发.
从exec模式运行showinterfaces[typenumber]switching命令.
Note:如果在命令行界面上使用""或TAB键,showinterfaces[typenumber]switching命令将隐藏而不显示.
在路由器上键入完整命令.
此命令未记录在《命令参考指南》中router#showinterfacesethernet0/0switchingEthernet0/0.
.
.
ProtocolPathPktsInCharsInPktsOutCharsOut.
.
.
IPProcess121422211929355169Cachemisses10212.
.
.
检查收到的已处理数据包数后面是否跟有很高的缓存未命中数.
如果是,这表示导致输入队列拥塞的数据包是通过路由器转发的.
否则,这些数据包是发往路由器的.
2.
如果数据包是发往路由器的,请查明导致输入队列拥塞的是哪个更高层的协议.
为此,请使用以下showtrafficexec命令之一:showiptrafficshowipxtrafficshowappletalktrafficNote:只有当您怀疑表1中列出的任何输入进程时,这些命令才适用.
3.
尝试获得有关导致输入队列拥塞的数据包的详细信息.
为此,必须对收到的数据包进行调试.
前面的步骤指示您需要启用的debug命令.
Note:即使不执行前面的步骤,也可以直接执行此命令.
但是,当您执行debug命令时,将生成几条可能很难阅读的消息.
当您执行所有前面的步骤时,您会在debug命令输出中获得要查找的内容的指示.
警告:执行debug命令时请务必谨慎.
否则,CPU使用率可能显著增加.
不要打开调试功能超过5到10秒.
有关如何使用debug命令的详细信息,请参阅使用debug命令.
永远不要禁用控制台日志、终端日志和syslog服务器上的日志.
启用缓冲区日志,并增加日志记录缓冲区大小.
日志记录缓冲区大小的合适值是128000字节.
请使用这些命令:nologgingloggingbuffered128000debugging输出必须足以查出问题的源.
您可以在完成调试会话后,使用showlog命令检查debug命令的输出.
表2基于导致输入队列拥塞的数据包类型列出了要发出的debug命令:有关详细信息,请参阅CiscoIOSdebug命令参考.
或者,您可以使用showbuffersinput-interface[interfacetype][interfacenumber]header命令查明填满输入队列的数据包的类型.
Note:只有当输入队列中存在大量数据包时,此命令才有用.
Router#showbuffersinput-interfaceserial0/0BufferinformationforSmallbufferat0x612EAF3Cdata_area0x7896E84,refcount1,next0x0,flags0x0linktype7(IP),enctype0(None),encsize46,rxtype0if_input0x6159D340(FastEthernet3/2),if_output0x0(None)inputtime0x0,outputtime0x0,oqnumber65535datagramstart0x7896ED8,datagramsize728,maximumsize65436mac_start0x7896ED8,addr_start0x7896ED8,info_start0x0network_start0x7896ED8,transport_start0x0source:212.
176.
72.
138,destination:212.
111.
64.
174,id:0xAAB8,ttl:118,prot:1BufferinformationforSmallbufferat0x612EB1D8data_area0x78A6E64,refcount1,next0x0,flags0x0linktype7(IP),enctype0(None),encsize46,rxtype0if_input0x6159D340(FastEthernet3/2),if_output0x0(None)4.
inputtime0x0,outputtime0x0,oqnumber65535datagramstart0x78A6EB8,datagramsize728,maximumsize65436mac_start0x78A6EB8,addr_start0x78A6EB8,info_start0x0network_start0x78A6EB8,transport_start0x0source:212.
176.
72.
138,destination:212.
111.
64.
174,id:0xA5B8,ttl:118,prot:1大多数时间,会存在大量一种类型的数据包.
这里,例如,有几个互联网控制消息协议(ICMP)信息包(IP协议1).
如果问题是一个不正确路由器配置(例如,快速的交换和思科快速转发(CEF)是失效的),很可能没有特定的模式在调试,或者在输出的showbuffersinput-interface命令中.
当您确定了导致输入队列拥塞的数据包的类型后,下一步是检查您是否可以防止此拥塞.
必须处理数据包的原因有以下几个:不正确的路由器配置-在相关接口上禁用了在中断级别操作的交换路径.
要检查哪些交换路径在接口被配置,请运行显示接口[typenumber]命令.
要启用旧的快速交换,请在输出接口上配置它.
要启用netflow交换,请在输入接口上配置它.
为了enable(event)思科快速转发(CEF),您必须enable(event)CEF全局(在整个路由器)和本地(在流入的接口).
有关详细信息,请参阅CiscoIOS交换服务配置指南.
本地目标-数据包是发往路由器的.
在稳定的网络中,路由更新数不能过多.
在不稳定的网络中,频繁的大路由表更新可能导致输入队列拥塞.
证实额外数据流是否被处理到路由器,例如,(与简单网络管理协议(SNMP)、telnet、简单文件传输协议(TFTP)和ping).
调试相关协议的数据包以标识这些数据包的源.
找到源后,请排除它.
可靠的开放式系统互联(OSI)第2层协议使用传输—通过与X.
25封装的serialinterfaces的信息包必须处理,因为在X.
25协议套件,流控制在第二个OSI层实现.
软件压缩-如果数据包进入已配置软件压缩的接口或必须通过该接口进行转发,则必须处理该数据包.
其他功能在中断级别不受支持-这高度依赖于路由器上运行的CiscoIOS软件版本.
请检查发行版本注释以查看哪些功能在中断级别受到支持.
例如,在较低的CiscoIOS软件版本中,必须处理多链路PPP数据包.
在较高的CiscoIOS软件版本中,可以快速交换这些数据包,甚至可以对其进行CEF交换.
功能例如加密、局域传输(LAT)转换和加强版数据链路交换(DLSW+)没有快速交换.
通过路由器的数据流过多,其中每个数据包报头中有意地包含不同的信息-根据配置的交换路径,将始终处理发往目标或流中的第一个数据包.
这是因为,缓存中没有与之匹配的条目.
如果设备以非常高的速率发送数据包,并且缓存中没有匹配项,则这些数据包可能导致输入队列拥塞.
这些数据包的源在调试会话后将显示出来.
如果源地址始终不同,则必须对从中接收数据包的上游设备继续进行故障排除.
如果在路由器的接口被连接到广播价质,您能确定来源或上行设备的媒体访问控制(MAC)地址:使用ipaccountingmac-addressinputinterfaceconfiguration命令在接口上配置MAC帐户.
之后,发出showinterfacesmac-accountingexec命令.
此命令显示以过高速率发送了数据包的MAC地址.
5.
输出队列丢弃输出丢弃是由拥塞的接口导致的.
例如,传出接口上的数据流速率不能接受应发送出的所有数据包.
解决此问题的最终解决方案是提高线路速度.
但是,如果您不希望提高线路速度,也有用于防止、减少或控制输出丢弃的方法.
只有当输出下落是数据,短突发数据的后果您可以防止输出下落.
如果输出丢弃是由恒定高速率流导致的,则无法防止丢弃.
但是,您可以对其进行控制.
当数据包被处理时,它们将被发送到传出接口的输出队列.
发出showinterfacesexec命令可查看队列的大小、队列中的当前数据包数以及丢弃的数量.
根据接口类型和配置的队列类型,未明确显示输出队列丢弃的数量,因为输出丢弃计数器分别在进程级别和中断级别汇总输出丢弃:router#showinterfacesserial0/0.
.
.
Inputqueue:0/75/0/0(size/max/drops/flushes);Totaloutputdrops:0Queueingstrategy:weightedfairOutputqueue:0/1000/64/0(size/maxtotal/threshold/drops).
.
.
router#showinterfacesserial0/0.
.
.
Inputqueue:0/75/0/0(size/max/drops/flushes);Totaloutputdrops:0Queueingstrategy:fifoOutputqueue:0/40(size/max).
.
.
但是,处理数据包所需的时间长于将数据包从输出队列发送到网络所需的时间.
因此,如果在中断级别没有发生丢弃,几乎不可能发生输出队列丢弃(在进程级别丢弃).
只有当接口已在中断级别被拥塞时才会发生输出队列丢弃,因此在输出队列变满之前无法将数据包从输出队列中拉出.
所以,在流程级(输出队列丢弃)的输出下落和在中断级别的输出下落一起总是发生,并且没有实际上需要区分在这两个计数器之间.
Note:但是,有一个例外.
如果输出队列一直是满的,并且,如果根本没有从该接口发送出任何数据包,您必须检查接口上是否存在硬件故障.
排除输出队列丢弃故障如果调节以下功能的配置,您可以减少,或者甚至防止输出丢弃:双工模式-如果接口在半双工模式下工作,则将其配置为在全双工模式下工作(如果可能).
q第2层窗口机制-如果已在接口上配置x.
25封装,请增加x.
25窗口大小.
有关详细信息,请参阅设置默认窗口大小.
q分布式交换—在Cisco7500路由器上,如果多功能接口协议(VIP)卡在机箱上安装,enable(event)分布式交换.
这样,如果传出接口被拥塞,传入VIP最多可为接口缓冲1秒的数据流.
这称为RX端缓冲.
qNote:永远不要增加输出队列的大小来尝试防止输出丢弃.
如果数据包在输出队列中停留时间太长,TCP计时器可能到期并触发重传操作.
重传的数据包只会使传出接口更加拥塞.
如果在您根据建议调整路由器的配置后仍然发生输出丢弃,这意味着您不能防止或减少输出丢弃.
但是,您可以对其进行控制,并且其效果可能与防止一样.
控制输出丢弃有两种方法:拥塞管理q拥塞避免q这两种方法都基于数据流分类,您可以并行使用它们.
拥塞管理保证,与相应的配置,总是转发重要信息包,而较不重要信息包被丢弃,当链路拥塞时.
拥塞管理包括如下所示的高级队列机制:优先级排队q基于类的加权公平排队q拥塞避免基于有意的数据包丢弃.
TCP连接中的窗口大小取决于往返时间.
因此,这些有意的丢弃可降低源设备发送数据包的速率.
"拥塞避免"会使用加权随机早期检测.
如果在实施这些机制后仍然发生不希望出现的输出丢弃,则需要提高线路速度.
用于获得详细信息的命令以下是提供有关队列丢弃详细信息的一些命令:showinterfacesswitchingqshowinterfacesstatsqipaccountingmac-addressqshowinterfacesmac-accountingq如果有输出的一showinterfaces命令从您的Cisco设备,您能使用CiscoCLI分析器显示潜在问题和修正.
要使用思科CLI分析器,您必须是注册客户、已登录并已启用JavaScript.
showinterfacesswitching说明此命令显示接口上发送和接收的数据包的数量(根据交换路径进行分类).
这是隐藏命令.
格式showinterfaces[typenumber]switching输出示例:showinterfaces[typenumber]switching字段定义Process已处理的数据包数.
这包括要发往路由器的数据包,以及在相应的交换缓存表中没有对应的数据包.
Cachemisses通过进程级别转发的数据包(在快速交换缓存中没有对应条目).
Fast在中断级别转发的数据包.
showinterfacesstats说明此命令与showinterfacesswitching命令相似,并提供有关进行了进程交换、快速交换(任何快速交换路径)和分布式交换(对于支持VIP的平台)的数据包数的信息.
这是隐藏命令.
格式showinterfaces[typenumber]stats输出示例:Router#showinterfacesstatsFastEthernet8/0/0SwitchingpathPktsInCharsInPktsOutCharsOutProcessor643864632332790Routecache4779856113430501481518948150Distributedcache0035644558356Total4780496113816961870223539296Serial12/0/0SwitchingpathPktsInCharsInPktsOutCharsOutProcessor373783362299Routecache14815188000004511859862772Distributedcache3450437852000Total18302231823034515459865071InterfaceSerial12/0/1isdisabled.
.
.
ipaccountingmac-address说明这是接口配置命令.
它说明已接收或已传输的数据包(根据源或目标MAC地址进行分类).
格式ipaccountingmac-address{input|输出}showinterfacesmac-accounting说明这是exec命令.
它显示已发送和已接收的数据包数(根据目标和源MAC地址进行分类).
格式showinterfaces[typenumber]mac-accounting输出示例:router#showinterfacesethernet0/0mac-accountingEthernet0/0Input(494free)0000.
0c5d.
92f9(58):1packets,106bytes,last:4038msago0004.
c059.
c060(61):0packets,0bytes,last:2493135msago00b0.
64bc.
4860(64):1packets,106bytes,last:20165msago0090.
f2c9.
cc00(103):12packets,720bytes,last:3117msagoTotal:14packets,932bytesOutput(511free)0090.
f2c9.
cc00(103):8packets,504bytes,last:4311msagoTotal:8packets,504bytesRelatedInformation性能调整基础知识q的接口上输入队列溢出q在接口的输出队列溢出q排除在Cisco12000SeriesInternetRouter的输入丢弃故障qTechnicalSupport-CiscoSystemsq
俄罗斯vps云服务器商家推荐!俄罗斯VPS,也叫毛子主机(毛子vps),因为俄罗斯离中国大陆比较近,所以俄罗斯VPS的延迟会比较低,国内用户也不少,例如新西伯利亚机房和莫斯科机房都是比较热门的俄罗斯机房。这里为大家整理推荐一些好用的俄罗斯VPS云服务器,这里主要推荐这三家:justhost、ruvds、justg等俄罗斯vps主机,方便大家对比购买适合自己的俄罗斯VPS。一、俄罗斯VPS介绍俄罗斯...
如今我们无论线上还是线下选择商品的时候是不是习惯问问是不是有优惠活动,如果有的话会加速购买欲望。同样的,如果我们有准备选择Vultr商家云服务器的时候,也会问问是不是有Vultr优惠码或者优惠券这类。确实,目前Vultr商家有一些时候会有针对新注册用户赠送一定的优惠券活动。那就定期抽点时间在这篇文章中专门整理最新可用Vultr优惠码和商家促销活动。不过需要令我们老用户失望的,至少近五年我们看到Vu...
极光KVM怎么样?极光KVM本月主打产品:美西CN2双向,1H1G100M,189/年!在美西CN2资源“一兆难求”的大环境下,CN2+大带宽 是很多用户的福音,也是商家实力的象征。目前,极光KVM在7月份的促销,7月促销,美国CN2 GIA大带宽vps,洛杉矶联通cuvip,14元/月起;香港CN2+BGP仅19元/月起,这次补货,机会,不要错过了。点击进入:极光KVM官方网站地址极光KVM七月...
开启javascript为你推荐
destoondestoon多少人是从PHP168过来的啊?Destoon的B2B很好,强烈支持你们重庆网络公司一九互联网络公司做一个网站大概需要多少钱sqlserver2000挂起安装sqlserver2000时总提示有挂起操作!滴滴估值500亿滴滴拉屎 App 为何能估值 100 亿美金?是怎么计算出来的curl扩展linux上怎么操作开启php curl扩展瑞东集团中粮集团主要生产什么的?是国企么电子商务世界美国电子商务的发展经历几个阶段电子商务世界世界第一的电子商务网站???开源网店系统国内有哪些好的java开源电子商城系统discuz!databaseerrorDiscuz,Database Error是什么原因,怎么修复
国外vps租用 网站域名备案 荷兰服务器 2014年感恩节 紫田 wdcp godaddy域名转出 windows2003iso 500m空间 国外在线代理 php空间申请 免费申请个人网站 重庆双线服务器托管 电信主机 新世界服务器 drupal安装 腾讯总部在哪 备案空间 太原联通测速 web应用服务器 更多