通過Nethogs檢視伺服器網路卡流量情況

散盡浮華發表於2016-10-14

 

在日常運維工作中,會碰到伺服器頻寬飆升致使網站異常情況。作為運維人員,我們要能非常清楚地瞭解到伺服器網路卡的流量情況,觀察到網路卡的流量是由哪些程式在佔用著。

今天介紹一款linux下檢視伺服器網路卡流量佔用情況的工具:Nethogs,來自github上的開源工具。
它不依賴核心中的模組。當我們的伺服器網路異常時,可以通過執行nethogs程式來檢測是那個程式佔用了大量頻寬。節省了查詢時間。

Nethogs安裝:

方法一:在epel源中可以直接yum安裝
[root@dev src]# yum install -y libpcap nethogs -y

方法二:原始碼安裝
#安裝c++環境
[root@dev src]# yum install -y gcc-c++ libpcap-devel.x86_64 libpcap.x86_64 ncurses*
[root@dev src]# git clone https://github.com/raboof/nethogs
[root@dev src]# cd nethogs/
[root@dev src]# make
[root@dev src]# make install

#完成上面步驟就算安裝完成了。如果編譯失敗的話,大部分是缺少編譯環境。

接下來就可以測試了:

命令:“nethogs 網路卡裝置”
檢測 em1網路卡的流量佔用情況(),執行一下命令

[root@dev src]# nethogs em1

圖中第一行就是em1網路卡的流量記錄,表示em1網路卡頻寬被mysql程式佔用。
在PID那一列,可以使用 lsof -p pid 檢視程式。
或者用“lsof -i:埠號”來檢視是哪些程式在佔用。
如檢視mysql埠 lsof -i:3306

當一臺伺服器uptime命令檢視負載很高的時候,可以通過:
top命令(按數字1可以檢視到每顆CPU的使用情況;大寫P降序檢視CPU使用率,大寫M降序檢視記憶體使用率);
iostat命令(iostat 2 5,重點看下%idel剩餘使用率)檢視IO效能;
mpstat命令(mpstat 2 5,重點看下%idel剩餘使用率)檢視CPU效能;
htop命令(和top命令差不多,P、M分別表示降序檢視CPU和記憶體使用率);
iftop命令(流量監控,可以看出哪些機器跟本機有連線);
還可以檢視crontab有沒有定時任務在消耗資源~~~

相關文章