Linux

視覺化 linux 中重載的 nic(核心時間)?

  • August 4, 2013

我有一個 linux 伺服器,它的 NIC 不斷過載,我需要根據連接和 CPU 使用率來想像這種情況是如何發生的以及為什麼會發生。我該怎麼做呢?

例如; 為了讓我視覺化磁碟 iowait,我使用諸如atop和之類的工具iotop來告訴我程序的 PID及其 CPU 使用率;使用此資訊,我可以找到哪個 PID 使伺服器過載。

問題是我在網路方面遇到了同樣的問題,無法隔離和解決問題 b/c 我無法找到哪些程序連結到哪些連接(我可以使用netstat我知道但netstat不告訴我CPU使用率)。

現在我已經清楚了,我需要能夠監控 conntrack 和 netfilter 的 CPU 使用率和/或核心時間。我該怎麼做呢?諸如 、 和 之類的傳統工具ps無法top做到htop這一點。有人建議我檢查中斷,但這對我來說似乎不“正確”。

我發現這樣做的最好方法是觀察核心時間。如果核心時間很高,那麼我會檢查/proc/interrupts. 為了進一步調試,我將使用perf. pktstat也可以很好地視覺化流量。

collectl -stnc也不錯。

您可以使用 wireshark / ethereal / tcpdump 轉儲所有流量,隱式轉儲使 PC 過載的流量。這不會讓您獲得 CPU 資訊,但它會準確地告訴您涉及哪些埠和數據,這應該會直接引導您進入所涉及的程序。

與與問題系統的所有互動一樣,這種測量可能會影響行為,但這也更有可能導致比不太準確的答案 (IMO) 更快的答案。如果此測量確實導致系統正常執行而不是按照您想要的方式失敗,您可以使用水龍頭並使用外部設備進行測量。

您也可以使用“iftop”來顯示頻寬佔用,但請記住頻寬!= CPU。

引用自:https://serverfault.com/questions/477851