对输入队列丢包和输出队列丢包进行故障排除

开启javascript  时间:2021-04-14  阅读:()
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

建站选择网站域名和IP主机地址之间关系和注意要点

今天中午的时候有网友联系到在选择网站域名建站和主机的时候问到域名和IP地址有没有关联,或者需要注意的问题。毕竟我们在需要建站的时候,我们需要选择网站域名和主机,而主机有虚拟主机,包括共享和独立IP,同时还有云服务器、独立服务器、站群服务器等形式。通过这篇文章,简单的梳理关于网站域名和IP之间的关系。第一、什么是域名所谓网站域名,就是我们看到的类似"www.laozuo.org",我们可以通过直接记...

美国Cera 2核4G 20元/45天 香港CN2 E5 20M物理机服务器 150元 日本CN2 E5 20M物理机服务器 150元 提速啦

提速啦 成立于2012年,作为互联网老兵我们一直为用户提供 稳定 高速 高质量的产品。成立至今一直深受用户的喜爱 荣获 “2021年赣州安全大赛第三名” “2020创新企业入围奖” 等殊荣。目前我司在美国拥有4.6万G总内存云服务器资源,香港拥有2.2万G总内存云服务器资源,阿里云香港机房拥有8000G总内存云服务器资源,国内多地区拥有1.6万G总内存云服务器资源,绝非1 2台宿主机的小商家可比。...

小渣云(36元/月)美国VPS洛杉矶 8核 8G

小渣云 做那个你想都不敢想的套餐 你现在也许不知道小渣云 不过未来你将被小渣云的产品所吸引小渣云 专注于一个套餐的商家 把性价比 稳定性 以及价格做到极致的商家,也许你不相信36元在别人家1核1G都买不到的价格在小渣云却可以买到 8核8G 高配云服务器,并且在安全性 稳定性 都是极高的标准。小渣云 目前使用的是美国超级稳定的ceranetworks机房 数据安全上 每5天备份一次数据倒异地 支持一...

开启javascript为你推荐
strategicsns现有新的ios更新可用请从ios14be苹果11建议更新ios14.3phpwindPHPWIND怎么和PHPWIND整合wordpress模板wordpress模板和主题是一个概念么复制党,广告党绕路dell服务器bios设置如何进入DELL电脑BIOS设置asp.net网页制作开发ASP.NET的网站,步骤是怎样?有经验的可以说说自己的经验课程cuteftp腾讯公司电话是多少腾讯公司电话是多少闪拍网闪拍网之类的网站怎么回事?什么是通配符DOS命令具体讲的是什么?
万网域名注册 电信服务器租赁 日本vps 播放vps上的视频 免费申请网站域名 域名备案号查询 koss 20g硬盘 http500内部服务器错误 网站实时监控 网站挂马检测工具 台湾谷歌地址 毫秒英文 vip购优汇 帽子云 北京双线机房 softbank邮箱 免费全能主机 百度云1t 太原网通测速平台 更多