OutDiscards カウンタ上昇の原因
Catalyst 3560, 3750シリーズ※において、OutDiscards カウンタ上昇の原因についてよくお問い合わせがあります。
※3560-E/3750-E/3560-G/3750-G/3560V2/3750V2/3560-X/3750-X シリーズを対象として記載。
■OutDiscardsカウンタの増加例
3750G#show interfaces counters errors
Port Align-Err FCS-Err Xmit-Err Rcv-Err UnderSize OutDiscards
Gi0/1 0 0 0 0 0 245752
3750G#show interfaces counters errors
Port Align-Err FCS-Err Xmit-Err Rcv-Err UnderSize OutDiscards
Gi0/1 0 0 0 0 0 326767
OutDiscardsカウンタが上昇する主な要因としては、送信キューにおいて Packet Buffer が足りずに処理できないパケットが破棄されることがあげられます。
また、機器の故障によって発生する場合もありますが、殆どのケースが、帯域を超過するようなレートでTrafficを受信、または、瞬間的な Burst Traffic によって発生しております。
OutDiscardsカウンタ上昇の発生例
■事例1
下記例のように、アップリンク側(1Gig)からダウンリンク側(1Gig) へ700Mbps程度のレートで通信している場合は特に問題ありませんが、他のI/F(下記例では Gi0/6) から同時にTrafficが流れ込み、瞬間的にでもトータルで 1Gigを超えるような通信が発生した場合は、送信Port (Gi0/1) で OutDiscards が発生します。
この場合の回避策としましては、帯域幅を増加させるために、出力側のI/Fにおいて、PortChannel を用いる、10G I/Fに変更する、または、ネットワーク全体のTraffic パターンや構成を見直すことなどによって回避することも可能です。
■事例2
平均的な通信レートが1Gbps以下のTrafficであっても、Burst Traffic のように瞬間的に突出した流量のTrafficが連続で発生している場合もあります。その場合、ある程度はBufferで吸収することが可能ですが、連続してBurst Trafficが発生しているような状況においては、Bufferで吸収することが出来ず、その結果、Bufferで溢れたパケットが破棄され、OutDiscardsカウンタが上昇します。
このような状況は、下記例のように、受信インターフェース(10G)と送信インターフェース(1G)で、ワイヤーレートで速度差がある構成において発生しやすくなります。
OutDiscardsの軽減策
mls qos を有効にした状態で OutDiscards カウンタの上昇が発生している場合は、以下のように各キューのサイズを変更(下記例は最大値)することで Packet dropが解消、または軽減される可能性があります。
mls qos queue-set output 1 threshold 1 3200 3200 100 3200
mls qos queue-set output 1 threshold 2 3200 3200 100 3200
mls qos queue-set output 1 threshold 3 3200 3200 100 3200
mls qos queue-set output 1 threshold 4 3200 3200 100 3200
QoSの設定については こちら もご参照ください。(例:C3750X)
Packet Drop 調査用ログ
OutDiscarsdsに限らず、Packet Drop 事象についてTACへ調査を依頼される場合、以下のコマンドを取得して頂くと原因調査がスムーズに進む場合がございます。
間隔をあけて2-3回ほど取得し、最後に show tech-support を1回取得して下さい。
show mls qos queue-set 1
show mls qos queue-set 2
show mls qos map
show mls qos int <if_name>
show mls qos int <if_name> statistics
show mls qos int <if_name> queueing
show mls qos input-queue
show platform pm if-numbers
show platform port-asic exception
show platform port-asic stats drop asic <asic_num>
show platform port-asic stats enqueue asic <asic_num>
show platform port-asic stats miscellaneous asic <asic_num>
show platform port-asic stats supervisor asic <asic_num>
show interfaces <if_name>
show interfaces counters error
show controllers ethernet-controller <if_name>
show controllers ethernet-controller port-asic statistics
show controllers cpu-interface
show buffer
show ip traffic
<if_name> Dropが発生している Interface を入力してください 例 (Gi0/1)
<asic_num> Tab Key で表示される asic番号を全て入力し取得してください。
※3560-E/3750-E/3560-G/3750-G/3560V2/3750V2/3560-X/3750-X を対象としています。
※IOS Version により未サポートコマンドが含まれている場合があります。
※Platformに依存したコマンドは載っていない場合があります。