網管判斷路由器丟包的(de)原因(yīn)
一(yī)般情況下,如果(guǒ)路由表中有匹配的表項(xiàng)的話,則會進行後(hòu)續的(de)工作,路由器接口能(néng)接收(shōu)到報(bào)文是其工作(zuò)的基礎。
如果報(bào)文丟(diū)失的話(huà),那麽將極(jí)大的影響到路由交換功能(néng),最終導致數據的(de)丟失,造成報文丟失的原因有很多,不過最主要的可能是路由器內存不足或者(zhě)CPU過載所造成的。
要解決這個問題,首先(xiān)需要判斷問題的原因。
一、內(nèi)存碎片是指路由(yóu)器內存被劃分了許多(duō)不連續的塊。他將導致內存利用(yòng)率降低,嚴重時(shí)可能(néng)會產生內(nèi)存錯誤,影響路由器的(de)性能。它也會(huì)導致路(lù)由器報文(wén)丟(diū)失的問題。
其(qí)實不僅(jǐn)路由器的內存存在碎片問題,普通的硬盤(pán)也存在這種問題。如微軟操作係(xì)統中(zhōng)就自帶一個碎(suì)片整理工具,可以保障用戶來整(zhěng)理硬盤中的(de)碎片(piàn),以提高硬盤的(de)存儲容量以及(jí)存儲性(xìng)能(néng)。這裏(lǐ)指的內(nèi)存碎片其實跟(gēn)硬盤碎片是(shì)類似的。
二、那該如何判斷路由器的內(nèi)存是(shì)否存在碎片呢?這裏主要借助的是靈科路由器(qì)自(zì)帶(dài)的SHOW MEMORY命(mìng)令。這個命令會顯示(shì)當前(qián)內存的相關(guān)信息。如執行這條命令後,會顯示當前可(kě)用內存(Free)與最大(dà)可用(yòng)快(Largest)的數值(zhí)。
網(wǎng)絡管理員把(bǎ)這兩個值進(jìn)行比(bǐ)較,就可(kě)以判斷(duàn)碎片對路由器性能的(de)影(yǐng)響。這主要是把(bǎ)路由器(qì)的可(kě)用內存(cún)與(yǔ)最大可用快的大小(xiǎo)進行比較(jiào)。
如(rú)果路(lù)由器的可用內存(cún)與最大的可用快大(dà)小(xiǎo)比較接近時,表(biǎo)示雖然(rán)路由器存在碎片(piàn)但是影響不大。但是(shì)若最大可用的塊很小,如(rú)隻有(yǒu)最大可(kě)以用內存(cún)的幾十分之一,那麽就說明路由器內存碎片問題比較嚴重(chóng)了。
三、如路(lù)由器的可用內存為20M, 而最(zuì)大可用塊的大小(xiǎo)為15M的話(huà),則表示路由器內存中是有一定(dìng)的(de)碎(suì)塊,但是這點(diǎn)碎塊不(bú)影(yǐng)響路由器的(de)正常運行。如果可用內存為20M,而(ér)最大(dà)可(kě)用塊為0.8M的話(huà),則說明路由器內存中(zhōng)存在比較多的碎塊。
連續連續(xù)內存中沒有足夠大的可用快,這有可能導(dǎo)致(zhì)嚴重的內(nèi)存分(fèn)配問題,如導致一個或(huò)者(zhě)多個接口(kǒu)間歇性的丟失報文。在路由器內存中,允許存在一定的內存碎片。
到現在為止,還沒(méi)有(yǒu)哪(nǎ)一種內(nèi)存管理技(jì)術說可以(yǐ)完全(quán)避免(miǎn)產(chǎn)生內存碎片。隻是這個碎片要保證一個(gè)合理(lǐ)的值。
具(jù)體這(zhè)個(gè)值是多少,也沒(méi)有人可以給(gěi)出一個具體的(de)標準。不(bú)過根據筆者(zhě)的經(jīng)驗,最好能夠保證可用塊的大小在(zài)可用內存(cún)的二分之一(yī)到三分之一之間。
當然可用塊(kuài)大(dà)小(xiǎo)跟可用內存越接近越好。
四(sì)、其實這個可用塊與可用內存之間的關係我們可以利用櫃子(zǐ)中的抽(chōu)屜來(lái)表(biǎo)示。如一個櫃(guì)子可用容量雖然比較大,但是裏麵劃分了大(dà)小不等的1000多個格(gé)子。每個格子的空間容量有限(xiàn)。
當(dāng)有(yǒu)大的數(shù)據(jù)需要存儲時,整的容量是夠的,但是小格子的容量不夠。此時,就(jiù)會發生報(bào)文丟失(shī)的(de)問題。
此(cǐ)時看(kàn)起來內存(cún)足(zú)夠用(yòng),可是(shì)此時(shí)內存中(zhōng)已經沒有連續的空間用來存儲數(shù)據。所(suǒ)以這些看(kàn)起來(lái)比較大的可用內存,其實(shí)保存不了多少數據(jù)。
五、如果確定路(lù)由器(qì)內(nèi)存(cún)中沒有過多的碎片,則網絡管(guǎn)理員(yuán)就要考慮是否是因為CPU過載所(suǒ)導致報文丟失的。要查看CPU的使(shǐ)用率,可以利用SHOW PROCESS命令(lìng)來(lái)查看路由器的CPU使用情況,通(tōng)過這條命令,可(kě)以顯示出路由器CPU最近5秒、最近1分鍾、以(yǐ)及最近5分鍾的CPU使用(yòng)率。由於 CPU的使用率一直在變化,故網絡管理(lǐ)員主要關係的(de)是5分鍾(zhōng)之內的CPU平均使用(yòng)率。
通(tōng)常(cháng)情況下,如果5分鍾之(zhī)內的CPU使用率能夠保持(chí)在60%以下(xià),最多不能夠超(chāo)過70%,則說明(míng)路由器的CPU工作還是正常的。但是如果其CPU使用率達到了70%以上,則說明路由(yóu)器的CPU使用過(guò)度(dù)了。
此時可以說明(míng)路由器接口報文丟失很(hěn)可能是(shì)CPU過載所造成的。
六(liù)、如果(guǒ)確認路由器(qì)CPU過(guò)載,那麽網絡管員(yuán)需要(yào)確認到(dào)底(dǐ)是哪一個(gè)進(jìn)程占用了(le)大量的內存。隻有把這個罪魁(kuí)禍首找出來,網絡管理員才能(néng)夠對症下藥,解決問題。如網絡管理員經過(guò)查(chá)詢(xún)發現是SRB BACKGROUND進程占用了大量的CPU,則(zé)就(jiù)說(shuō)明發生了網橋風暴。故要解決CPU過載(zǎi)問題(tí),要達到這個目(mù)的,網絡管理員可以(yǐ)通過(guò)SHOW PROCESS MEMORY命令查(chá)詢路由器的內存分(fèn)配信息(xī)。
通(tōng)過執(zhí)行這個命令,係統會反饋當前路(lù)由器內存的可用量(liàng)、以使用量等信息(xī)。還會反映每(měi)個進程所占用的內存空間(jiān)。如果某個進程所占用的內存與上麵顯示(shì)的所占用的CPU都很(hěn)大(dà)的話,則(zé)說明這個進程很有(yǒu)問題。網絡管(guǎn)理員要逐一排查這些可以的進程。
七、如有時(shí)候網絡管(guǎn)理員(yuán)可以強製把某些耗用CPU資源大(dà)的進程關閉掉,然後(hòu)測試一下報(bào)文(wén)丟失(shī)的(de)情(qíng)況是否有(yǒu)所改(gǎi)善。如果有明顯改善的話,那麽就(jiù)找到(dào)問(wèn)題的原因了(le)。
此時網絡管理員就可(kě)以對症下藥,分析一(yī)下到底這個進程多對應的服務是什麽,為什麽(me)會占用這(zhè)麽多的CPU資源與內存資(zī)源(yuán)。
如果可以的話,可以(yǐ)先把這個服(fú)務關(guān)閉(bì)掉,以(yǐ)減少報文丟失現象,保(bǎo)障其他服務的正常運作。等到查明問(wèn)題的原因,修複好後再重新啟動(dòng)。
在靈科路由器中采用了很多交換技術,如過程交換、快速交換、自治交換、矽交換(huàn)等等,但(dàn)是他們(men)都依賴(lài)於(yú)報文。如果報文(wén)丟失的話,再(zài)怎麽高級的交換技術都將不起作用,如何防止報文丟失就至關(guān)重要。
當(dāng)網絡(luò)管理員發現有(yǒu)報文丟失(shī)的情(qíng)況,馬(mǎ)上要采(cǎi)取(qǔ)以上等措施找到報文丟失發生(shēng)的原因(yīn),並(bìng)積極采取(qǔ)措施盡早恢複(fù)故障。
關鍵詞:路由器
閱讀(dú)本文後(hòu)您有什麽感想? 已有 人給(gěi)出評價!
- 0
- 0
- 0
- 0
- 0
- 0