路由器丢包的原因有很多。本文介绍如何判断是否是路由器丢包以及如何解决。
1.内存碎片是指路由器内存被分成许多不连续的块。会降低内存利用率,严重时可能会造成内存错误,影响路由器的性能。还会导致路由器丢包的问题。其实不光是路由器的内存有碎片的问题,普通硬盘也有。
比如微软的操作系统自带了碎片整理工具,可以保证用户对硬盘进行碎片整理,提高其存储容量和性能。这里的内存碎片其实类似于硬盘碎片。
二、如何判断路由器内存是否碎片化?这里,我们主要使用柯灵路由器附带的SHOW MEMORY命令。该命令将显示当前存储器的信息。
如果执行该命令,将显示当前可用内存(空闲)和最大可用内存(大)的值,网络管理员可以通过比较这两个值来判断碎片对路由器性能的影响。这主要是比较路由器的可用内存和最大可用速度。
如果路由器可用内存接近最大可用fast大小,说明路由器虽然碎片化,但影响不大。但如果最大可用块很小,比如只有最大可用内存的十分之几,那么路由器内存碎片的问题就比较严重。
3.如果路由器可用内存为20M,最大可用块大小为15M,说明路由器内存中存在一些碎片,但这个碎片并不影响路由器的正常运行。如果可用内存为20M,最大可用块为0.8M,则路由器内存中会有更多碎片。
连续内存中没有足够的可用速度,这可能会导致严重的内存分配问题,例如一个或多个接口的间歇性数据包丢失。
在路由器内存中,一些内存碎片是允许的。到目前为止,还没有一种内存管理技术能够完全避免内存碎片。只是这个片段要保证一个合理的值。
4.其实这个可用块和可用内存的关系可以用柜子里的抽屉来表示。例如,虽然一个机柜的可用容量比较大,但是它被分成了1000多个不同大小的网格。每个网格的空间容量是有限的。
当有大数据需要存储时,整体容量足够,但小网格的容量不够。此时就会出现消息丢失的问题。
这时候看起来内存是够用了,但是内存中并没有连续的空间来存储数据。所以这些看似很大的可用内存实际上并不能容纳太多的数据。
5.如果确定路由器内存中没有太多碎片,网络管理员应考虑消息是否因CPU过载而丢失。要查看CPU利用率,您可以使用SHOW PROCESS命令查看路由器的CPU利用率。通过此命令,您可以显示最近5秒、最近1分钟和最近5分钟路由器的CPU利用率。
由于CPU利用率是不断变化的,网络管理员主要关心的是5分钟内的平均CPU利用率。此时可以说明路由器接口丢包很可能是CPU过载造成的。
6.如果确认路由器CPU过载,那么网络管理员需要确认是哪个进程占用了大量内存。只有找出罪魁祸首,网络管理员才能对症下药,解决问题。
如果网络管理员查询后发现SRB后台进程占用大量CPU,说明发生了桥接风暴。因此,要解决CPU过载问题,达到这个目的,网络管理员可以通过SHOW PROCESS MEMORY命令查询路由器的内存分配信息。
通过执行该命令,系统将反馈当前路由器的可用内存量、使用量等信息。它还反映了每个进程占用的内存空间。如果一个进程占用的内存和上面显示的CPU都很大,说明这个进程有问题。网络管理员应该逐一检查这些可能的过程。
七、比如有时候网络管理员可以强制关闭一些CPU密集型的进程,然后测试消息丢失情况是否有所改善。如果有明显的改善,那么问题的原因就找到了。
此时,网络管理员就可以对症下药,分析这个进程对应的是什么服务,为什么占用这么多CPU资源和内存资源。
如果可能的话,可以先关闭这项服务,以减少消息丢失的现象,保证其他服务的正常运行。等到查出问题原因,修复后再重启。
看了上面的内容,我们就可以了解丢包的原因,有针对性的采取措施就可以解决问题。注意,路由器中采用了很多交换技术,它们都依赖于消息。如果消息丢失,无论交换技术多么先进,防止消息丢失都是非常重要的。