人工智能已經無縫地融入了我們的生活,并以幾年前難以想象的方式改變了我們。在過去,人們對人工智能的感知是一種未來且復雜的東西。只有大型公司在其采用 HPC 技術的超級計算機上使用人工智能來預測天氣,并在醫(yī)療健康和科學領域取得突破性發(fā)現(xiàn)。
如今,得益于 GPU、CPU、高速存儲和人工智能優(yōu)化軟件的創(chuàng)新,每個人都可以使用人工智能。您甚至可以將人工智能作為服務(SaaS)或基礎設施(IaaS)來部署在云中。
我們見證了人工智能在各行各業(yè)的廣泛應用:醫(yī)療保健和金融、自動駕駛汽車、廣告推薦,以及最近用于創(chuàng)建和編輯視頻、圖像和音樂等內容的生成式人工智能。最近推出的 ChatGPT-4 使用大語言模型(LLM)來理解、響應,甚至生成像人類一樣的文本,想想我們可以實現(xiàn)的無限潛力是令人興奮的。
充分利用您的人工智能需要的不僅僅是昂貴的高端 GPU 和存儲系統(tǒng)。具有突破性性能的、穩(wěn)健可靠的網絡對于充分發(fā)揮人工智能基礎設施的潛力是至關重要的,它可以縮短作業(yè)完成時間(JCT)、加快訓練速度、改進推理和提高存儲 I/O 。
選擇合適的網絡設備和設計對于構建出色的人工智能基礎設施至關重要。作為網絡管理員,您在實現(xiàn)這一目標的過程中發(fā)揮著重要作用,確保網絡在不中斷和停機的情況下平穩(wěn)運行。遺憾的是,事實并非如此,因為沒有完美的網絡。
在您的職業(yè)生涯中,您至少要經歷一次這樣的風暴。當工作負載處理緩慢、存儲性能不佳,或者更糟的是網絡停機,人工智能系統(tǒng)無所事事時,您是否只聽到了指責?
當網絡問題發(fā)生時,您首先要檢查網絡遙測儀表板是否存在異常情況,就像在聽到發(fā)動機發(fā)出奇怪的噪音時,檢查汽車儀表板是否有警示燈一樣。有時,這個問題比傳統(tǒng)的遙測方法所能檢測到的更復雜。
即使您是一位經驗豐富的網絡工程師,能夠從一萬英里外的視角看到問題,分析大量的遙測數(shù)據(jù)也可能是很耗時的。在貴公司的任務關鍵型人工智能任務中,浪費時間是不被接納的。
加快解決問題的速度
在網絡故障排除方面,我們都同意網絡遙測是關鍵。
一些傳統(tǒng)方法(例如 SNMP、sFLOW,甚至網絡計數(shù)器)可提供大量網絡信息,但不一定能確定根本原因。這使得網絡管理員的工作更具挑戰(zhàn)性,因為在所有這些龐大的數(shù)據(jù)中找到問題有時會變得非常困難,就像大海撈針一樣。
圖 1. 傳統(tǒng)網絡遙測概念
NVIDIA Spectrum Switches 提供 What Just Happened(WJH)流式遙測。這種特定應用集成電路(ASIC)遙測功能可在線速下提供交換機級的、實時的和上下文流監(jiān)控。WJH 分析通過交換機的所有數(shù)據(jù)包,并就數(shù)據(jù)包丟棄、擁塞、高延遲甚至錯誤配置引起的性能問題發(fā)出警報。
由于 WJH 是 ASIC 級遙測技術,它提供了有關受影響數(shù)據(jù)包的詳細信息,包括數(shù)據(jù)包頭信息。因此,它使您能夠快速識別數(shù)據(jù)平面異常的根本原因,而這之前是難以做到的。借助這些數(shù)據(jù),您還可以檢測網絡架構中受影響的流量,無論是計算、存儲、管理還是其他非人工智能工作負載相關的流量。
圖 2:WJH 網絡遙測概念
它是如何工作的?
當交換機的 ASIC 丟棄數(shù)據(jù)包時,它會生成 WJH 事件。在這種情況下,您可以在不包括有效負載的情況下找到數(shù)據(jù)包頭信息(5/12 元組)。流式傳輸完整的數(shù)據(jù)包在性能、帶寬和空間利用率方面是不夠的,同時可提供的益處太少。
除了數(shù)據(jù)包元組之外,WJH 還提供了數(shù)據(jù)包被丟棄的原因、時間和位置的詳細描述,并提供了糾正措施建議。WJH 還在數(shù)據(jù)包延遲超過設置的閾值或跨越特定交換機緩沖區(qū)使用率時發(fā)出警報。這有助于檢測網絡瓶頸,發(fā)現(xiàn)應用程序執(zhí)行緩慢,并避免將來因緩沖區(qū)溢出而導致的丟包。
WJH 監(jiān)控什么?
WJH 事件分為以下幾類,每一類都有自己的丟包原因和通知:
第 1 層:諸如損壞的線纜和 CRC 錯誤、自動協(xié)商失敗、光信號衰減等事件。
第 2 層:由 VLAN 配置錯誤、入口端口上的錯誤 VLAN 標記、可疑或保留 MAC 地址等導致的丟包。
第 3 層(路由器):與路由器相關的丟包和問題,如黑洞路由和路由環(huán)路檢測(TTL 過期)、MTU 過小等等。
Overlay(VXLAN):封裝或解封裝錯誤以及關閉隧道接口。
訪問控制列表(ACL):每個 MAC / IP ACL 丟包都具有丟棄數(shù)據(jù)包的確切規(guī)則。盡管拒絕數(shù)據(jù)包是一種有效的 ACL 操作,但這些事件使您能夠確保 ACL 及其規(guī)則是正確的,并在預期情況下過濾這些通知。
擁塞:緩沖區(qū)尾部丟包、WRED 丟包,以及跨域緩沖區(qū)利用率閾值時的警報,以避免未來的丟包。
延遲:數(shù)據(jù)包延遲超過設置的閾值。它有助于發(fā)現(xiàn)造成應用程序執(zhí)行緩慢的交換機。
如何使用 WJH 數(shù)據(jù)?
使用 WJH 事件有幾種方法:
NVIDIA NetQ
標準 gNMI 流
Cumulus Linux 或 SONiC 網絡操作系統(tǒng) CLI
NVIDIA NetQ 監(jiān)控
NVIDIA NetQ 是一款高度可擴展的現(xiàn)代網絡運營工具集,可實時監(jiān)控您的網絡。它使用網絡協(xié)議和服務驗證,并使用遙測數(shù)據(jù)(包括 WJH)提供有關網絡基礎設施運行狀況和數(shù)據(jù)平面異常的可行洞察。
安裝在交換機上的 NetQ 代理會按照類別和類型匯總 WJH 事件,并使用 gRPC 協(xié)議將這些事件以流式傳輸?shù)?NetQ 服務器(本地或 SaaS)。然后,您可以使用 NetQ 界面和命令行界面(CLI)訪問 WJH 數(shù)據(jù)。
WJH 儀表板
儀表板以交互方式顯示高度詳細的 WJH 事件信息。您可以通過餅圖和基于時間的圖表輕松地檢查事件分布。儀表板還提供了有關受影響最嚴重的交換機和丟包類型分布的信息。
儀表板還包括一個完整的表格,按原因、詳細信息、時間戳和匯總計數(shù)來列出所有事件。要查看特定的 WJH 數(shù)據(jù),您可以按時間、設備、丟包類型和原因篩選事件,然后將其導出到 JSON 或 CSV 文件中。
圖 3:NetQ WJH 儀表板
WJH 高級視圖
WJH 高級視圖在按類別列出的表格中顯示所有事件。您可以查看、排序、篩選事件,或將事件導出為 JSON 或 CSV 文件。
圖 4:NetQ WJH 高級視圖
NetQ CLI
通過 NetQ CLI,您可以從注冊到 NetQ 服務器和安裝 NetQ CLI 的任何設備訪問所有 NetQ 數(shù)據(jù)(包括 WJH)。您可以檢查匯總的 WJH 事件分布情況,并查看表中列出的所有事件詳細信息、原因和時間戳。
圖 5:NetQ CLI 中的 WJH 事件
NetQ 還支持您使用集成到流量分析(Flow Analysis)功能中的 WJH 遙測技術來識別和解決由網絡引起的特定應用程序問題。如需了解更多信息,請參閱找出應用程序和網絡的交叉點。
標準 gNMI 流
NetQ 代理為您提供了使用 WJH 遙測的靈活性。利用其功能,您可以使用 gNMI 協(xié)議流式傳輸 WJH 數(shù)據(jù)和訂閱 WJH 事件。這使您能夠將這些信息集成到自己的遙測儀表板和解決方案中,而無需 NetQ 服務器。
NetQ 代理的 gNMI 流式傳輸功能包括接口、系統(tǒng)、LLDP 協(xié)議和平臺的標準 OpenConfig YANG 數(shù)據(jù)模型。它還包括 NVIDIA 擴展接口計數(shù)器和 NVIDIA WJH 模型。
gNMI version: 0.7.0
supported models:
- nvidia-wjh, NVIDIA, 1.0.1
- nvidia-if-ethernet-counters-ext, NVIDIA, 1.0.0
- openconfig-interfaces, OpenConfig, 2.3.2
- openconfig-if-ethernet, OpenConfig, 2.9.0
- openconfig-if-ethernet-ext, OpenConfig, 0.1.1
- openconfig-system, OpenConfig, 0.5.0
- openconfig-lldp, OpenConfig, 0.2.1
- openconfig-platform, OpenConfig, 0.13.0
supported encodings:
??-?JSON
通過遵循 NVIDIA WJH YANG 模型,您可以使用任何 gNMI 客戶端來訂閱 WJH 事件。以下代碼示例顯示了 WJH YANG 模型,以及您可以訂閱的事件類型路徑
module nvidia-wjh {
// Entrypoint /oc-if:interfaces/oc-if:interface
//
// xPath L1 --> interfaces/interface[name=*]/wjh/aggregate/l1
// xPath L2 --> /interfaces/interface[name=*]/wjh/aggregate/l2/reasons/reason[id=*][severity=*]
// xPath Router --> /interfaces/interface[name=*]/wjh/aggregate/router/reasons/reason[id=*][severity=*]
// xPath Tunnel --> /interfaces/interface[name=*]/wjh/aggregate/tunnel/reasons/reason[id=*][severity=*]
// xPath Buffer --> /interfaces/interface[name=*]/wjh/aggregate/buffer/reasons/reason[id=*][severity=*]
????//?xPath?ACL????-->?/interfaces/interface[name=*]/wjh/aggregate/acl/reasons/reason[id=*][severity=*]
WJH 事件信息以 JSON 格式進行流式傳輸:
{
"source": "10.210.24.112:9339",
"subscription-name": "default-1680103195",
"timestamp": 1680144504046097303,
"time": "2023-03-30T02:48:24.046097303Z",
"prefix": "interfaces/interface[name=swp1]/wjh/aggregate/l2/reasons/reason[severity=error][id=204]",
"target": "netq",
"updates": [
{
"Path": "state/drop",
"values": {
"state/drop": "[{"AggCount":31,"Dip":"10.1.10.102","Dmac":"04:3f:72:db:22:a1","Dport":22222,"DropType":"L2","EgressPort":"","EndTimestamp":1680144503,"FirstTimestamp":1680144473,"Hostname":"leaf01","IngressLag":"268435457","IngressPort":"swp1","Proto":6,"Reason":"Ingress VLAN filtering","ReasonId":204,"Severity":"Error","Sip":"10.1.10.101","Smac":"04:3f:72:33:23:aa","Sport":22556}]"
}
}
]
}
{
"source": "10.210.24.112:9339",
"subscription-name": "default-1680103195",
"timestamp": 1680144534271648272,
"time": "2023-03-30T02:48:54.271648272Z",
"prefix": "interfaces/interface[name=swp1]/wjh/aggregate/l2/reasons/reason[severity=error][id=210]",
"target": "netq",
"updates": [
{
"Path": "state/drop",
"values": {
"state/drop": "[{"AggCount":30,"Dip":"10.1.10.102","Dmac":"aa:bb:cc:dd:ee:ff","Dport":22222,"DropType":"L2","EgressPort":"","EndTimestamp":1680144533,"FirstTimestamp":1680144504,"Hostname":"leaf01","IngressLag":"268435457","IngressPort":"swp1","Proto":6,"Reason":"Source MAC equals destination MAC","ReasonId":210,"Severity":"Error","Sip":"10.1.10.101","Smac":"aa:bb:cc:dd:ee:ff","Sport":23333}]"
}
}
]
}
交換機 CLI
WJH 事件可在 Cumulus Linux 或 SONiC 網絡操作系統(tǒng)(NOS)上使用。您不必使用 NetQ 代理或 NetQ 服務器,但可以使用交換機 CLI 來獲取 WJH 數(shù)據(jù)。
這些事件可以直接從 switch SDK 中獲得,您可以查看以詳細表格、YAML 或 JSON 格式列出的事件。這種方法明顯不那么方便,并且提供了有限的可調試性。可以考慮使用其他消費選項之一。
圖 6:Cumulus Linux CLI 中的 WJH 事件
結論
在任何人工智能部署中,強大的網絡基礎設施與高端 GPU 和存儲系統(tǒng)一樣至關重要。而擁有出色的遙測方法也是至關重要的,以便在網絡問題發(fā)生時快速識別其根本原因。
NVIDIA What Just Happened 通過提供有關數(shù)據(jù)包丟棄和數(shù)據(jù)平面異常的詳細和上下文信息,為網絡流遙測帶來了一個新的視角。WJH 減少了故障排除時間和找出根本原因的時間,使您能夠充分利用您的人工智能基礎設施。