この製品のドキュメントセットは、偏向のない言語を使用するように配慮されています。このドキュメントセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブ ランゲージの取り組みの詳細は、こちらをご覧ください。
シスコは世界中のユーザにそれぞれの言語でサポート コンテンツを提供するために、機械と人による翻訳を組み合わせて、本ドキュメントを翻訳しています。ただし、最高度の機械翻訳であっても、専門家による翻訳のような正確性は確保されません。シスコは、これら翻訳の正確性について法的責任を負いません。原典である英語版(リンクからアクセス可能)もあわせて参照することを推奨します。
このドキュメントでは、APIC GUIの動作が遅い場合の一般的なトラブルシューティング方法について説明します。
APIC GUIの処理速度が遅い問題は、スクリプト、統合、またはアプリケーションから送信されるAPI要求の割合が高いことが原因で発生することがよくあります。APICのaccess.logには、処理された各API要求が記録されます。APICのaccess.logは、Github Datacenterグループaci-tac-scriptsプロジェクト内のAccess Log Analyzerスクリプトを使用してすばやく分析できます。
NGINXは、各APICで使用できるAPIエンドポイントを担当するDMEです。NGINXがダウンしている場合、API要求は処理できません。NGINXが輻輳している場合、APIは輻輳しています。各APICは独自のNGINXプロセスを実行するため、アグレッシブクエリアの対象がそのAPICだけであれば、1つのAPICだけがNGINX問題を抱える可能性があります。
APIC UIは複数のAPI要求を実行して各ページに入力します。同様に、APICのすべての「show」コマンド(NXOSスタイルのCLI)は、複数のAPI要求を実行し、応答を処理し、ユーザに提供するPythonスクリプトのラッパーです。
ログファイル名 |
場所 |
どのテクニカルサポートに属しているか |
注釈 |
アクセス。ログ |
/var/log/dme/log |
APIC 3of3 |
ACIに依存せず、API要求ごとに1行を提供 |
エラーログ |
/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月7日:20:10:59 +0000 |
要求が処理された日時 |
要求($r) |
GET /api/class/fvTenant.xml HTTP/1.1 |
Httpメソッド(GET、POST、DELETE)およびURI |
ステータス($s) |
200 |
|
$body_bytes_sent送信 |
1586 |
応答ペイロードサイズ |
$http_referer |
- |
- |
$http_user_agent |
Python-urllib |
要求を送信したクライアントのタイプ |
長期間にわたる高レートの要求バースト:
一貫した4xxまたは5xx応答:
NGINXのCPUおよびメモリの使用量は、APICからtopコマンドを使用して確認できます。
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 Techsupport guide』を参照してください。
迅速な要求が見つからず、ユーザのUIの速度が低下し続ける場合、問題はクライアント(ブラウザ)からサーバ(APIC)への遅延である可能性があります。
これらのシナリオでは、ブラウザからAPICへのデータパス(地理的な距離、VPNなど)を検証します。 可能であれば、分離するAPICと同じ地域またはデータセンターにあるジャンプサーバからのアクセスを導入してテストします。他のユーザの遅延が同程度であるかどうかを検証します。
すべてのブラウザは、ブラウザ開発ツールキット(通常はNetworkタブ内)を使用して、HTTP要求および応答を検証できます。
このツールを使用すると、図に示すように、ブラウザソースの要求の各段階にかかる時間を検証できます。
APICが応答するまで1.1分待機するブラウザの例
ポリシーグループページ:
Cisco Bug ID CSCvx14621:「ファブリック」タブのIPGポリシーでのAPIC GUIのロードが遅くなります。
インベントリページのインターフェイス:
Cisco Bug ID CSCvx90048:「レイヤ1物理インターフェイス設定」操作タブの初期読み込みが長く、フリーズを引き起こします。
Firefoxなどの特定のブラウザでは、デフォルトでホストごとにより多くのWeb接続を使用できます。
VPNとAPICへの距離により、クライアントブラウザの要求とAPIC応答の移動時間に応じて、全体的なUIの速度が向上します。APICに対して地理的にローカルなジャンプボックスにより、ブラウザのAPIC移動時間が大幅に短縮されます。
Webサーバ(APIC上のNGINX)が大量の長Web要求を処理する場合、並行して受信される他の要求のパフォーマンスに影響を与える可能性があります。
これは、APICなどの分散データベースを持つシステムに特に当てはまります。1つのAPI要求で、ファブリック内の他のノードに対して追加の要求とルックアップを送信する必要があるため、応答時間が大幅に長くなる可能性があります。このような長いWeb要求が短い時間内にバーストすると、必要なリソースの量が増え、応答時間が予想外に長くなる可能性があります。さらに、受信した要求がタイムアウトする(90秒)可能性があり、ユーザの観点から見ると予期しないシステム動作が発生します。
4.2(1)+では、処理時間が長かったAPIリクエストを追跡して強調表示する「システムパフォーマンス計算」を有効にできます。
計算は[システム] - [システム設定] - [システムパフォーマンス]から有効にできます。
「計算」が有効になると、ユーザはコントローラの下の特定のAPICに移動して、過去300秒以内の最も遅いAPI要求を表示できます。
システム – コントローラ – コントローラフォルダ – APIC x – サーバ応答時間
UI応答がランダムに遅くなるものの、その発生頻度を知るアクティブなモニタリングがない場合は、2つの方法のいずれかを使用できます
オプション1:ファブリックからの応答時間を継続的に取得するサブスクリプションアプローチ。この手順では、サブスクリプション要求を送信して更新するスクリプトを実行する外部サーバが必要です。
オプション2:オンデマンドスクリプトをAPIC自体で実行し、出力をLVでマッサージします。依存性が少ないため、この方法の方が簡単です
ステップ1:(前述のとおり)APICで1回だけグローバルに変更します。標準の変更プラクティスに常に従うことが望ましいが、業務に支障を与えることはない
System—>System Settings—>System Performanceの順に選択します
計算の有効化
応答しきい値を50000 msに設定
他のパラメータは変更しないでください
「計算」が有効になると、ユーザはコントローラの下の特定の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時間ごとに1回、ターミナルセッションログをTACケースにアップロードします。
ステップ3:TACの出力と、イベントレコードのアクセスログを収集し、毎日特定の時刻の過去24時間に発生したAPIクエリを実行します。
5.3/6.0(3d)より前のバージョンを実行しているACIファブリックの場合、aci-tac-scriptsリポジトリ内にCollect TacOutputスクリプトがあります。このスクリプトは、trigger tacoutputコマンドと同様のインターフェイスを提供します。
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...
tacoutputxx.tgzファイルを抽出し、ケースにアップロードします。
注:バージョン5.3/6.0(3d)以降のリリースを実行するACIファブリックの場合、trigger tacoutputはイベント、障害、監査、およびその他のトラブルシューティング出力用の簡素化された収集インターフェイスを提供します。 スクリプトを使用する必要はありません。
##任意の1つの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
uploadicname_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のGitの場所 – > https://wwwin-github.cisco.com/CX-ACI/lv_accloganalyzer
スクリプトをローカルのscriptsフォルダ(/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 requests per second(r/s)または2400 requests per minute(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"
原則として、要求スロットルは、クエリ集約型クライアントによって引き起こされるDDOSに似た症状からサーバ(APIC)を保護するためにのみ機能します。アプリケーション/スクリプトロジックの最終的なソリューションについて、要求の厳しいクライアントを理解して切り分けます。
改定 | 発行日 | コメント |
---|---|---|
3.0 |
20-Aug-2025
|
コールアウト6.1(2) NGINXのスロットル制限 |
2.0 |
04-Jan-2023
|
「システム応答時間」セクションと「NGINX要求スロットル」セクションを追加 |
1.0 |
17-May-2022
|
初版 |