這兩天給一個做網吧朋友裝了一台NAT機器,用ipfw+ natd,用光纖接入,帶40-60台機器。但主機實在不好!主板是聯想的810E,128M內存,2.1G的昆騰硬盤,CPU是賽揚500 (Freebsd啟動後的信息是PII-汗!這年頭還用這個機器,如果原來我知道是這個機器,堅決不能裝,實在浪費情緒!)。
最主要的是兩個網卡,二手的intel557。我手頭上只有一張RW,所以只下了一個Freebsd6.0的mini鏡像,連接到日本的網站安裝,結果連了二十分鐘,把網卡換了好幾次才連接成功。不過連接好以後,速度倒挺快,能到150K左右。
安裝後到我自己的機器裡面直接復制來源程序,重新編譯,一切正常。ipfw和natd安裝也正常。結果還沒到家,電話就來了,說速度很慢。到家後用SSH上去看了一下,網絡方面一切正常,ping半個小時也不丟包,arp一下,才8台機器。不應該,以他的線路,FB帶100台機器應該沒有問題的。到網吧去看了一下,實在慢,簡直不可忍受!
沒辦法,再查資料吧。反復把ipfw和natd試了個遍,還是不解決問題。於是開始懷疑硬件有問題,但用什麼查呢?
首先想到的是vmstat,這個可以看系統的資源情況。sy值稍微大一些,在2000左右,但也應該不是主要問題。CPU利用率不超過3%。
其次想用netstat,但它只顯示硬件的信息,無法知道什麼東西壞了。
又想到systat,這個也許能顯示點信息,我以前只知道它能顯示CPU的利用率,隨手MAN了一下,結果發現它能顯示的東西簡直是太多了。
-iostat:顯示硬盤的數據。
-ip:顯示IP包的情況,在這個機器上,每次都有至少10個被丟的包。
-imcp:顯示imcp的信息。
-netstat:顯示正在進行的網絡連接
-ifstat:顯示網卡的狀態。包括統計值和最大速度。這個機器最大速度才10K。
-vmstat:這個基本上是個滿漢全席,什麼都顯示。我最關心的就是中斷次數,這個機器的fxp0和fxp1中斷次數最大才到12,一般維持在7、8左右。
從這個數據看,一定是網卡有問題了,但怎麼樣進一步確定呢?這一個MAN提醒了我,挨個把自己覺得可能用到的命令MAN了一遍,結果又MAN到一個有用的:
netstat -idb,這個命令顯示當前網卡的狀態,包括出錯了包,這個機器平均3-4個包就有一個出錯的。
從這些命令,基本上斷定這個網卡有問題了,最後拆下來看了一下,網卡是98年出的,已經很舊了。換上了兩塊20元錢的8139,速度基本上正常了。
現在的那幾個數據:vmstat是中斷數:流量最大時可以到500。(我自己的機器可以到2000多,不知正常不正常,用雙PIII800, xl905B和fxp559網卡。)netstat -idb顯示有壞包,用dmesg看了一下,基本上都是說有長度大於1500的包,並且都是從外部來的。systat -ifstat,最快的時候速度能達到1M多。
現在這個機器已經運行了三天,沒出現什麼問題,也沒有變慢的跡象。
本人只是初學者,對FB的命令和工具還不是很熟悉,寫出來的目的就是讓像我這樣的初學者不再象我這樣走好幾天的彎路,累得頭暈眼脹。同時也請各位老大賜教,讓我們新手都不再走彎路。