Linux系統下如果服務器帶寬跑滿了,查看跟哪個ip通信占用帶寬比較多,可以通過iftop命令進行查詢,使用方法如下:
1 安裝方法【軟件官網地址:http://www.ex-parrot.com/~pdw/iftop/】
CentOS系統運行:yum install iftop
Debian系統 運行:apt-get install iftop
在安裝過程中需要我們輸入 y 繼續的步驟,在安裝過程中會提醒我們的。安裝完畢之后,就可以使用iftop命令激活監控。
2 安裝好后在服務器執行iftop -i eth1就可以查看服務器公網網卡帶寬使用情況(如果只執行iftop默認檢測第一塊網卡使用情況,這樣查的會是內網網卡eth0。
[root@iZ23kick03xZ ~]# iftop -i eth0 -P
- 1
注:-P 參數會將請求服務的端口顯示出來,也就是說是通過服務器哪個端口建立的連接,看內網流量執行 iftop -i eth0 -P 命令。
iftop界面含義如下
第一行:帶寬顯示 中間部分:外部連接列表,即記錄了哪些ip正在和本機的網絡連接 中間部分右邊:實時參數分別是該訪問ip連接到本機2秒,10秒和40秒的平均流量=>代表發送數據,<= 代表接收數據 底部三行:表示發送,接收和全部的流量 底部三行第二列:為你運行iftop到目前流量 底部三行第三列:為高峰值 底部三行第四列:為平均值
通過iftop的界面很容易找到哪個ip在占用網絡流量,這個是ifstat做不到的。不過iftop的流量顯示單位是Mb,這個b是bit,是位,不是字節,而ifstat的KB,這個B就是字節了,byte是bit的8倍。
進入iftop畫面后的一些操作命令(注意大小寫) 按h切換是否顯示幫助; 按n切換顯示本機的IP或主機名; 按s切換是否顯示本機的host信息; 按d切換是否顯示遠端目標主機的host信息; 按t切換顯示格式為2行/1行/只顯示發送流量/只顯示接收流量; 按N切換顯示端口號或端口服務名稱; 按S切換是否顯示本機的端口信息; 按D切換是否顯示遠端目標主機的端口信息; 按p切換是否顯示端口信息; 按P切換暫停/繼續顯示; 按b切換是否顯示平均流量圖形條; 按B切換計算2秒或10秒或40秒內的平均流量; 按T切換是否顯示每個連接的總流量; 按l打開屏幕過濾功能,輸入要過濾的字符,比如ip,按回車后,屏幕就只顯示這個IP相關的流量信息; 按L切換顯示畫面上邊的刻度;刻度不同,流量圖形條會有變化; 按j或按k可以向上或向下滾動屏幕顯示的連接記錄; 按1或2或3可以根據右側顯示的三列流量數據進行排序; 按<根據左邊的本機名或IP排序; 按>根據遠端目標主機的主機名或IP排序; 按o切換是否固定只顯示當前的連接; 按f可以編輯過濾代碼; 按!可以使用shell命令; 按q退出監控。
$ sudo apt-get installiftop
阿里雲的ECS服務器上,外網網卡默認是eth1,因此執行如下命令:
$ iftop -i eth1(外網網卡)
可以看看是哪些連接長時間占用了帶寬,然后去 Apache2 的訪問日志中對應看看 IP 地址在訪問哪些文件就知道具體情況了。
nginx訪問日志的默認路徑
/var/log/nginx
下面是原文照抄
利用iftop找出是誰占用了帶寬
有時候我們的網絡緩慢並不是由遠程服務器或路由器所引起,而只是因為系統中的某些進程占用了太多可用帶寬。雖然從直觀角度我們很難確定哪些進程正在使用帶寬,但也有一些工具能幫大家把這些搗蛋的家伙揪出來。
top 就是這樣一款出色的故障排查工具,它的出現還帶來一系列思路相似的衍生品,例如 iotop –能夠確定到底是哪些進程占用了大部分磁盤I/O性能。最終名為 iftop 的工具橫空出世,能夠在網絡連接領域提供同等功能。與top不同,iftop不會親自關注進程情況,而是列出用戶服務器與遠程IP之間占用帶寬最多的連接對象。舉例來說,我們可以在iftop中快速查看備份服務器IP地址在輸出結果中的位置來判斷備份工作有沒有大量占用網絡帶寬。
iftop 輸出圖示
紅帽與 Debian 的各個發行版都能使用 iftop 這一名稱的軟件包,但在紅帽發行版方面大家可能需要從第三方資源庫才能獲取。一旦安裝過程完成,我們在命令行中運行 iftop 命令即可啟用(需要 root 權限)。和 top 命令一樣,我們可以點Q鍵退出。
在不添加額外參數的情況下, iftop 命令通常能夠滿足我們故障排查的全部需求;但有的時候,我們可能也希望利用一些選項實現特殊功能。 iftop 命令在默認情況下會顯示查找到的第一個端口的統計信息,但在某些服務器中大家可能會使用多個端口,所以如果我們希望讓 iftop 打理第二個以太網端口(即實例中的 eth1 ),那么請輸入 iftop – i eth1 。
默認情況下, iftop 會試圖將所有IP地址通過解析轉換為主機名稱。這樣做的缺點在於一旦遠程 DNS 服務器速度緩慢,報告的生成速度也將隨之慘不忍睹。另外,所有DNS解析活動都會增加額外的網絡流量,而這些都會顯示在 iftop 的報告界面當中。因此要禁用網絡解析功能,別忘了在 iftop 命令后面加 – n 哦。
一般說來, iftop 顯示的是主機之間所使用的全局帶寬;但為了幫助大家縮小排查范圍,我們可能希望每台主機具體使用哪個端口進行通信。畢竟只要找到了主機中占用最大帶寬的網絡端口,我們就可以在判斷是否接入 FTP 端口之外進行其它排查手段。啟動 iftop 之后,按P鍵可以切換端口的顯示與隱藏狀態。不過大家可能會注意到,有時候顯示所有端口狀態可能導致我們正在關注的主機被擠出當前顯示屏幕。如果出現這種情況,我們還可以按 S 或 D 鍵來僅顯示來自特定源或特定目標的端口。由於服務項目眾多,目標主機可能隨機使用多個端口並發生帶寬占用峰值,這將導致工具無法識別出正在使用的服務,因此僅顯示源端口還是相當有用的。不過服務器上的端口也可能與當前設備上的服務相對應。在這種情況下,我們可以使用前面提到的 netstat – lnp 來找出服務所偵聽的端口。
與大多數 Linux 命令相似, iftop 也擁有多種高級選項。我們在文章中提到的這些已經足以涵蓋大多數故障排查需求,但為了滿足大家進一步了解 iftop 功能的願望,我教各位一個小技巧:只要輸入 man iftop ,就可以閱讀包含在軟件包當中的使用手冊、獲得更多與之相關的知識。
轉自:https://blog.csdn.net/qq_34642668/article/details/80974876