本產品的文件集力求使用無偏見用語。針對本文件集的目的,無偏見係定義為未根據年齡、身心障礙、性別、種族身分、民族身分、性別傾向、社會經濟地位及交織性表示歧視的用語。由於本產品軟體使用者介面中硬式編碼的語言、根據 RFP 文件使用的語言,或引用第三方產品的語言,因此本文件中可能會出現例外狀況。深入瞭解思科如何使用包容性用語。
思科已使用電腦和人工技術翻譯本文件,讓全世界的使用者能夠以自己的語言理解支援內容。請注意,即使是最佳機器翻譯,也不如專業譯者翻譯的內容準確。Cisco Systems, Inc. 對這些翻譯的準確度概不負責,並建議一律查看原始英文文件(提供連結)。
本文檔介紹對APIC GUI體驗緩慢進行故障排除的一般方法。
人們經常發現,APIC GUI問題緩慢是由於來自指令碼、整合或應用程式的API請求速率過高造成的。APIC的access.log會記錄每個已處理的API請求。可以使用Github資料中心組aci-tac-scripts專案中的訪問日誌分析器指令碼快速分析APIC的access.log。
NGINX是負責每個APIC上可用的API終端的DME。如果NGINX關閉,則無法處理API請求。如果NGINX擁塞,則API擁塞。每個APIC都運行自己的NGINX進程,因此如果任何主動式查詢器僅針對APIC,則可能只有一個APIC會出現NGINX問題。
APIC UI執行多個API請求以填充每個頁面。同樣,所有APIC 'show'命令(NXOS Style CLI)都是執行多個API請求、處理響應然後提供給使用者的python指令碼的包裝程式。
日誌檔名 |
位置 |
它位於哪一技術支援中 |
意見 |
access.log |
/var/log/dme/log |
APIC 3of3 |
與ACI無關,每個API請求提供1行 |
error.log |
/var/log/dme/log |
APIC 3of3 |
ACI不可知,顯示nginx錯誤(包括限制) |
nginx.bin.log |
/var/log/dme/log |
APIC 3of3 |
特定於ACI,記錄DME事務 |
nginx.bin.warnplus.log |
/var/log/dme/log |
APIC 3of3 |
ACI特定包含警告+嚴重性的日誌 |
什麼受到影響?
這種緩慢的感受如何?
遲緩是何時被首次注意到的?
access.log是NGINX的一項功能,因此與APIC無關。每行代表APIC收到的1個HTTP請求。參考此日誌,瞭解APIC的NGINX使用情況。
ACI 5.2+版上的預設access.log格式:
log_format proxy_ip '$remote_addr ($http_x_real_ip) - $remote_user [$time_local]'
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
此行表示執行moquery -c fvTenant時的access.log條目:
127.0.0.1 (-) - - [07/Apr/2022:20:10:59 +0000]"GET /api/class/fvTenant.xml HTTP/1.1" 200 15863 "-" "Python-urllib"
示例access.log條目對映到log_format:
log_format欄位 |
示例內容 |
意見 |
$remote_addr |
127.0.0.1 |
傳送此請求的主機的IP |
$http_x_real_ip |
- |
使用代理時最後一個請求者的IP |
$remote_user |
- |
一般不使用。選中nginx.bin.log以跟蹤登入執行請求的使用者 |
$time_local |
2022年4月07日:20:10:59 +0000 |
處理請求的時間 |
$request |
獲取/api/class/fvTenant.xml HTTP/1.1 |
Http方法(GET、POST、DELETE)和URI |
$status |
200 |
|
$body_bytes_sent |
1586 |
響應負載大小 |
$http_referer |
- |
- |
$http_user_agent |
Python-urllib |
傳送請求的客戶端型別 |
在一段較長的時間內發生高速請求突發:
一致的4xx或5xx響應:
可以使用APIC中的top命令檢查NGINX CPU和記憶體使用情況:
top - 13:19:47 up 29 days, 2:08, 11 users, load average: 12.24, 11.79, 12.72
Tasks: 785 total, 1 running, 383 sleeping, 0 stopped, 0 zombie
%Cpu(s): 3.5 us, 2.0 sy, 0.0 ni, 94.2 id, 0.1 wa, 0.0 hi, 0.1 si, 0.0 st
KiB Mem : 13141363+total, 50360320 free, 31109680 used, 49943636 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 98279904 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
21495 root 20 0 4393916 3.5g 217624 S 2.6 2.8 759:05.78 nginx.bin
高NGINX資源使用率直接與高處理請求率相關。
NGINX崩潰不常用於慢速APIC GUI問題。但是,如果找到NGINX核心,請將其連線到TAC SR進行分析。有關檢查核心的步驟,請參閱ACI技術支援指南。
如果找不到快速請求,但使用者繼續表現出UI緩慢,則問題可能是客戶端(瀏覽器)到伺服器(APIC)延遲。
在這些情況下,驗證從瀏覽器到APIC的資料路徑(地理距離、VPN等)。 如果可能,請部署並測試從與APIC位於同一地理區域或資料中心內的跳轉伺服器進行的訪問。驗證其他使用者是否顯示類似的延遲量。
所有瀏覽器都能夠通過其Browser Development Toolkit(通常在Network(網路)頁籤中)驗證HTTP請求和響應。
此工具可用於驗證來自瀏覽器的請求的每個階段所需的時間,如下圖所示。
等待1.1分鐘以供APIC響應的瀏覽器示例
「策略組」頁:
思科漏洞ID CSCvx14621 - APIC GUI在交換矩陣頁籤中的IPG策略上緩慢載入。
Inventory頁面下的介面:
思科錯誤ID CSCvx90048 — 「Layer 1 Physical Interface Configuration」(第1層物理介面配置)Operational(操作)頁籤的初始載入為長/導致「凍結」。
預設情況下,某些瀏覽器(如Firefox)允許每個主機擁有更多的Web連線。
VPN和與APIC的距離會根據客戶端瀏覽器請求和APIC響應旅行時間增加整體UI延遲。在APIC上本地的跳轉框可顯著減少瀏覽器到APIC的旅行時間。
如果Web伺服器(APIC上的NGINX)處理大量的長Web請求,這可能會影響並行接收的其他請求的效能。
對於具有分散式資料庫的系統(如APIC)尤其如此。單個API請求可能需要向結構中的其他節點傳送額外的請求和查詢,這可能會導致預期的更長的響應時間。這些長Web請求在短時間幀內突發,會增加所需的資源量,導致意外的更長的響應時間。此外,接收的請求隨後會超時(90秒),導致從使用者角度而言出現意外的系統行為。
在4.2(1)+中,使用者可以啟用「系統效能計算」,跟蹤並突出顯示花費時間處理的API請求。
可以從系統 — 系統設定 — 系統效能啟用計算
啟用「計算」後,使用者可以導航到控制器下的特定APIC,檢視最近300秒內最慢的API請求。
System - Controllers - Controllers資料夾 — APIC x — 伺服器響應時間
如果您有使用者介面響應隨機減慢但沒有活動監控來瞭解其發生的頻率,則可以使用以下兩種方法之一
選項 1: 一種以固定方式從交換矩陣獲取響應時間的訂閱方法。此步驟需要外部伺服器運行將傳送訂閱請求並刷新的指令碼。
選項 2: 在APIC本身上運行按需指令碼,在LV上修改輸出。由於相關性較小,因此這可能是一個更簡單的選項
步驟 1: (上面也提到過)APIC的一次性全球變化。無侵入性,但始終遵循標準變更實踐很好。
轉至「系統」 — >「系統設定」 — >「系統效能」
啟用計算
將響應閾值設定為50000ms
不更改其他引數
啟用「計算」後,使用者可以導航到控制器下的特定APIC,檢視最近300秒內最慢的API請求。
步驟 2:
apic_query_subscription_slowui.py的Git位置 — > https://wwwin-github.cisco.com/CX-ACI/lv_accloganalyzer
python apic_query_subscription_slowui.py -a <anyapicip> -u <使用者名稱>
每24小時將終端作業階段日誌上傳一次到TAC案例
步驟 3:收集TAC輸出和訪問日誌,以瞭解事件記錄和完整的api查詢(每天在特定時間觸發24小時)。
對於運行早於5.3/6.0(3d)的ACI交換矩陣,aci-tac-scripts儲存庫中提供Collect TacOutput指令碼,該指令碼使用與trigger tacutput命令類似的介面:
apic# /tmp/collectTacOutputs.sh Select corresponding numbers of objects to collect. Separate numbers with commas. *Note, topSystem, fabricNode, and firmwareARunning are automatically included. Ex: 1,2,3,4,5 1. faultInfo *collected unfiltered 2. faultRecord 3. eventRecord 4. aaaModLR 5. polDeploymentRecord 6. epRecord 7. healthRecord 8. healthInst *collected unfiltered Enter selections: 3 Enter record start date (format: 2019-12-15T00:00:00) *default is one month prior to current date: 2019-12-25T00:00:00 Enter record end date (format: 2019-12-15T00:00:00) *default is current date: 2020-01-05T00:00:00 ...script collection runs...
擷取tacutputxx.tgz檔案並上傳到案件
註:對於運行版本5.3/6.0(3d)和更高版本的ACI交換矩陣,觸發計數為事件、故障、審計和其他故障排除輸出提供簡化的收集介面)。 您不必使用指令碼。
##來自任意一個APIC,。
mkdir /data/techsupport/apicname_srnumber
cd /var/log/dme/log
cp access* /data/techsupport/apicname_srnumber
cd /data/techsupport/
tar -zcvfapicname_srnumber.tgz /data/techsupport/apicname_srnumber
uploadapicname_srnumber.tgz到案例
實驗從外部主機執行指令碼的示例:
(my-virtual-env-3.7.13) root@aci-fab1-esxi2-oob:~# python apic_query_subscription_slowui.py -a 10.122.141.98 -u rgatti
Logging into APIC 10.122.141.98
rgatti password:
********** WebSocket Subscription URIS and IDs **********
WebSocket Subscription Status Code: 101
https://10.122.141.98/api/class/commRequestData.json?subscription=yes
- Subscription ID: 72059449487065089
********** WebSocket Subscription Messages **********
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","clientHostname":"10.122.141.126","dn":"topology/pod-1/node-1/web/apiAvgResp/reqData-1","method":"GET","modTs":"2024-08-06T13:15:07.857-04:00","responseSize":"2313","responseTime":"1017","rn":"","startTime":"2024-08-06T13:12:38.334-04:00","status":"modified","url":"/api/node/class/firmwareOSource.json"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","clientHostname":"10.26.164.186","dn":"topology/pod-1/node-1/web/apiAvgResp/reqData-2","method":"GET","modTs":"2024-08-06T13:15:07.857-04:00","responseSize":"252","responseTime":"1007","rn":"","startTime":"2024-08-06T13:13:39.145-04:00","status":"modified","url":"/api/node/mo/uni/infra/nodecfgcont/node-103.json"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","clientHostname":"10.26.161.138","dn":"topology/pod-1/node-1/web/apiAvgResp/reqData-3","modTs":"2024-08-06T13:15:07.857-04:00","responseTime":"788","rn":"","startTime":"2024-08-06T13:14:24.351-04:00","status":"modified"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","clientHostname":"10.24.131.101","dn":"topology/pod-1/node-1/web/apiAvgResp/reqData-4","modTs":"2024-08-06T13:15:07.857-04:00","responseTime":"784","rn":"","startTime":"2024-08-06T13:14:41.169-04:00","status":"modified"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","clientHostname":"10.25.130.136","dn":"topology/pod-1/node-1/web/apiAvgResp/reqData-5","modTs":"2024-08-06T13:15:07.857-04:00","responseTime":"783","rn":"","startTime":"2024-08-06T13:12:29.028-04:00","status":"modified"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","dn":"topology/pod-1/node-2/web/apiAvgResp/reqData-1","modTs":"2024-08-06T13:15:51.533-04:00","responseSize":"3926","responseTime":"1013","rn":"","startTime":"2024-08-06T13:12:22.387-04:00","status":"modified","url":"/api/node/class/topSystem.json"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","dn":"topology/pod-1/node-2/web/apiAvgResp/reqData-2","modTs":"2024-08-06T13:15:51.533-04:00","responseSize":"905","responseTime":"208","rn":"","startTime":"2024-08-06T13:12:59.783-04:00","status":"modified","url":"/api/node/class/dnsProv.json"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","dn":"topology/pod-1/node-2/web/apiAvgResp/reqData-3","modTs":"2024-08-06T13:15:51.533-04:00","responseSize":"905","responseTime":"114","rn":"","startTime":"2024-08-06T13:10:59.781-04:00","status":"modified","url":"/api/node/class/dnsProv.json"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","dn":"topology/pod-1/node-2/web/apiAvgResp/reqData-4","modTs":"2024-08-06T13:15:51.533-04:00","responseSize":"905","responseTime":"98","rn":"","startTime":"2024-08-06T13:14:59.782-04:00","status":"modified","url":"/api/node/class/dnsProv.json"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","dn":"topology/pod-1/node-2/web/apiAvgResp/reqData-5","modTs":"2024-08-06T13:15:51.533-04:00","responseSize":"1075","responseTime":"46","rn":"","startTime":"2024-08-06T13:14:26.565-04:00","status":"modified"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","dn":"topology/pod-2/node-3/web/apiAvgResp/reqData-1","modTs":"2024-08-06T13:16:19.490-04:00","responseTime":"2392","rn":"","startTime":"2024-08-06T13:11:44.143-04:00","status":"modified"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","dn":"topology/pod-2/node-3/web/apiAvgResp/reqData-2","modTs":"2024-08-06T13:16:19.490-04:00","responseTime":"2389","rn":"","startTime":"2024-08-06T13:15:24.604-04:00","status":"modified"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","dn":"topology/pod-2/node-3/web/apiAvgResp/reqData-3","modTs":"2024-08-06T13:16:19.490-04:00","responseTime":"2384","rn":"","startTime":"2024-08-06T13:13:38.231-04:00","status":"modified"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","dn":"topology/pod-2/node-3/web/apiAvgResp/reqData-4","modTs":"2024-08-06T13:16:19.490-04:00","responseTime":"2384","rn":"","startTime":"2024-08-06T13:13:14.402-04:00","status":"modified"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","dn":"topology/pod-2/node-3/web/apiAvgResp/reqData-5","modTs":"2024-08-06T13:16:19.490-04:00","responseTime":"2383","rn":"","startTime":"2024-08-06T13:14:24.584-04:00","status":"modified"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","clientHostname":"10.26.161.138","dn":"topology/pod-1/node-1/web/apiAvgResp/reqData-1","method":"POST","modTs":"2024-08-06T13:20:07.951-04:00","responseSize":"0","responseTime":"784","rn":"","startTime":"2024-08-06T13:19:24.361-04:00","status":"modified","url":"/uitelemetry/clicks"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","clientHostname":"10.25.130.136","dn":"topology/pod-1/node-1/web/apiAvgResp/reqData-2","method":"POST","modTs":"2024-08-06T13:20:07.951-04:00","responseSize":"0","responseTime":"783","rn":"","startTime":"2024-08-06T13:18:34.821-04:00","status":"modified","url":"/uitelemetry/clicks"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","clientHostname":"10.25.130.136","dn":"topology/pod-1/node-1/web/apiAvgResp/reqData-3","modTs":"2024-08-06T13:20:07.951-04:00","responseTime":"781","rn":"","startTime":"2024-08-06T13:17:03.705-04:00","status":"modified"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","clientHostname":"10.25.130.136","dn":"topology/pod-1/node-1/web/apiAvgResp/reqData-4","modTs":"2024-08-06T13:20:07.951-04:00","responseTime":"781","rn":"","startTime":"2024-08-06T13:18:04.530-04:00","status":"modified"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","clientHostname":"10.26.161.138","dn":"topology/pod-1/node-1/web/apiAvgResp/reqData-5","modTs":"2024-08-06T13:20:07.951-04:00","responseTime":"781","rn":"","startTime":"2024-08-06T13:18:24.354-04:00","status":"modified"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","dn":"topology/pod-1/node-2/web/apiAvgResp/reqData-1","modTs":"2024-08-06T13:20:51.568-04:00","responseSize":"905","responseTime":"1018","rn":"","startTime":"2024-08-06T13:16:59.784-04:00","status":"modified","url":"/api/node/class/dnsProv.json"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","dn":"topology/pod-1/node-2/web/apiAvgResp/reqData-2","modTs":"2024-08-06T13:20:51.568-04:00","responseSize":"405","responseTime":"148","rn":"","startTime":"2024-08-06T13:18:01.471-04:00","status":"modified","url":"/api/node/class/proxyServer.json"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","clientHostname":"192.168.1.1","dn":"topology/pod-1/node-2/web/apiAvgResp/reqData-3","modTs":"2024-08-06T13:20:51.568-04:00","responseSize":"3390","responseTime":"112","rn":"","startTime":"2024-08-06T13:17:29.488-04:00","status":"modified","url":"/api/node/class/pkiFabricSelfCAEp.json"}}}]}
在APIC CLI上
bash
<paste the below directly on the APIC cli - modify the filename. The script will run for 1 hr>
let i=1
while [ $i -lt 60 ]
do
date
date >> /data/techsupport/commRequestData.txt
moquery -c commRequestData >> /data/techsupport/commRequestData_<date_time>.txt
sleep 60
let i=i+1
done
輸出不容易讀取,可以在LV上使用下面的指令碼進行編輯。
commrequests_processing.py —> https://wwwin-github.cisco.com/CX-ACI/lv_accloganalyzer的Git位置
將指令碼複製到本地指令碼資料夾(例如/users/rgatti/scripts)。
如何執行:
users/rgatti/dnld_695998256/cv1/jul14_2025/commrequestdata --> This is where we saved the commRequestData_<date_time>.txt file
python3 /users/rgatti/scripts/commrequests_processing.py -f commRequestData_jul14_4pm.txt > commRequestData_jul14_4pm.txt.formatted
以下示例:responseTime用於在頂部顯示最長響應時間的排序
rgatti@aci-logviewer2:~/dnld_695998256/cv1/jul14_2025/commrequestdata$ less commRequestData_jul14_4pm.txt.formatted
Processing file: commRequestData_jul14_4pm.txt
clientHostname | dn | method | responseCode | responseSize | responseTime | startTime | url
---------------+-------------------------------------------------+--------+--------------+--------------+--------------+-------------------------------+------------------------------------------------------------------------------------
127.0.0.1 | topology/pod-2/node-5/web/apiAvgResp/reqData-1 | GET | 200 | 14255310 | 31123 | 2025-07-14T15:08:38.598-05:00 | /api/class/fvRInfoHolder.json
127.0.0.1 | topology/pod-2/node-5/web/apiAvgResp/reqData-1 | GET | 200 | 14255310 | 31123 | 2025-07-14T15:08:38.598-05:00 | /api/class/fvRInfoHolder.json
127.0.0.1 | topology/pod-2/node-1/web/apiAvgResp/reqData-1 | GET | 200 | 17050 | 29660 | 2025-07-14T15:08:39.262-05:00 | /api/node/class/fabricPathEp.json
127.0.0.1 | topology/pod-2/node-1/web/apiAvgResp/reqData-2 | GET | 200 | 111529 | 29658 | 2025-07-14T15:08:39.261-05:00 | /api/class/mgmtRsInBStNode.json
127.0.0.1 | topology/pod-2/node-1/web/apiAvgResp/reqData-3 | GET | 200 | 474 | 29631 | 2025-07-14T15:08:39.258-05:00 | /api/class/mgmtInstP.json
127.0.0.1 | topology/pod-2/node-4/web/apiAvgResp/reqData-1 | GET | 200 | 13637 | 28933 | 2025-07-14T15:08:38.597-05:00 | /api/class/faultDelegate.json
127.0.0.1 | topology/pod-2/node-2/web/apiAvgResp/reqData-2 | GET | 200 | 530 | 28243 | 2025-07-14T15:08:39.274-05:00 | /api/class/vzRsDenyRule.json
127.0.0.1 | topology/pod-2/node-2/web/apiAvgResp/reqData-1 | GET | 200 | 30 | 28243 | 2025-07-14T15:08:39.273-05:00 | /api/class/fvRsProtBy.json
127.0.0.1 | topology/pod-2/node-2/web/apiAvgResp/reqData-2 | GET | 200 | 530 | 28243 | 2025-07-14T15:08:39.274-05:00 | /api/class/vzRsDenyRule.json
127.0.0.1 | topology/pod-2/node-2/web/apiAvgResp/reqData-1 | GET | 200 | 30 | 28243 | 2025-07-14T15:08:39.273-05:00 | /api/class/fvRsProtBy.json
127.0.0.1 | topology/pod-2/node-1/web/apiAvgResp/reqData-1 | GET | 200 | 18426168 | 27107 | 2025-07-14T15:40:33.874-05:00 | /api/mo/uni.xml
127.0.0.1 | topology/pod-2/node-1/web/apiAvgResp/reqData-1 | GET | 200 | 18426168 | 27107 | 2025-07-14T15:40:33.874-05:00 | /api/mo/uni.xml
127.0.0.1 | topology/pod-2/node-1/web/apiAvgResp/reqData-4 | GET | 200 | 18429959 | 25516 | 2025-07-14T15:08:46.841-05:00 | /api/mo/uni.xml
127.0.0.1 | topology/pod-2/node-1/web/apiAvgResp/reqData-2 | GET | 200 | 719780 | 24794 | 2025-07-14T15:40:35.346-05:00 | /api/class/fabricPathEp.json
127.0.0.1 | topology/pod-2/node-1/web/apiAvgResp/reqData-2 | GET | 200 | 719780 | 24794 | 2025-07-14T15:40:35.346-05:00 | /api/class/fabricPathEp.json
127.0.0.1 | topology/pod-2/node-1/web/apiAvgResp/reqData-5 | GET | 200 | 18431710 | 24604 | 2025-07-14T15:08:56.167-05:00 | /api/mo/uni.xml
127.0.0.1 | topology/pod-2/node-1/web/apiAvgResp/reqData-3 | GET | 200 | 452 | 23720 | 2025-07-14T15:40:36.395-05:00 | /api/class/mgmtOoB.json
127.0.0.1 | topology/pod-2/node-1/web/apiAvgResp/reqData-3 | GET | 200 | 452 | 23720 | 2025-07-14T15:40:36.395-05:00 | /api/class/mgmtOoB.json
127.0.0.1 | topology/pod-2/node-1/web/apiAvgResp/reqData-6 | GET | 200 | 18430138 | 23578 | 2025-07-14T15:08:49.945-05:00 | /api/mo/uni.xml
127.0.0.1 | topology/pod-2/node-1/web/apiAvgResp/reqData-1 | GET | 200 | 14255310 | 21159 | 2025-07-14T15:38:59.233-05:00 | /api/class/fvRInfoHolder.json
127.0.0.1 | topology/pod-2/node-1/web/apiAvgResp/reqData-1 | GET | 200 | 14255310 | 21159 | 2025-07-14T15:38:59.233-05:00 | /api/class/fvRInfoHolder.json
4.2(1)+版本中提供,使用者可以獨立啟用針對HTTP和HTTPS的請求限制。
註:從ACI 6.1(2)版本開始,此功能支援的最大速率從10,000 r/m降低到每秒40個請求(r/s)或每分鐘2400個請求(r/m)。
交換矩陣 — 交換矩陣策略 — 策略資料夾 — 管理訪問資料夾 — 預設
啟用時:
apic# less /var/log/dme/log/error.log
...
2023/04/17 20:19:14 [error] ... limiting requests, excess: 40.292 by zone "httpsClientTagZone", client: h.o.s.t, ... request: "GET /api/class/...", host: "a.p.i.c"
2023/04/17 20:19:14 [error] ... limiting requests, excess: 40.292 by zone "httpsClientTagZone", client: h.o.s.t, ... request: "GET /api/node/...", host: "a.p.i.c"
通常,Request Throttle僅用於保護伺服器(APIC)免受查詢密集型客戶端引起的DDOS樣症狀的影響。在應用/指令碼邏輯中瞭解並隔離請求攻擊型客戶端,以獲得最終解決方案。
修訂 | 發佈日期 | 意見 |
---|---|---|
3.0 |
20-Aug-2025
|
標註6.1(2)NGINX限制條件 |
2.0 |
04-Jan-2023
|
新增系統響應時間部分和NGINX請求限制部分 |
1.0 |
17-May-2022
|
初始版本 |