Cisco IOS QoS – buffer sizeのチューニング

スポンサーリンク

Cisco Routerは受信したパケットをbufferに格納し、格納されたパケットがRP(routing processor)が処理します。buffer sizeのチューニングによってパケットの破棄されづらいようにする事ができます。

コマンド一覧

このシナリオで重要なコマンド一覧は以下の通りです。

Router(config)# buffers small { initial | permanent | min-free | max-free } <size>
Router(config)# buffers middle { initial | permanent | min-free | max-free } <size>
Router(config)# buffers big { initial | permanent | min-free | max-free } <size>
Router(config)# buffers verybig { initial | permanent | min-free | max-free } <size>
Router(config)# buffers large { initial | permanent | min-free | max-free } <size>
Router(config)# buffers huge { initial | permanent | min-free | max-free } <size>

Router(config)# buffers tune automatic

構成図

以下構成にて動作確認を行います。

         e0/0  e0/0
 +--------+.1  .2+--------+
 |   R1   +------+   R2   |
 +--------+      +--------+
       192.168.12.0/24
 R1 Loopback0      R2 Loopback0
 10.1.1.1/32       10.2.2.2/32

 [R1]
interface Ethernet0/0
 ip address 192.168.12.1 255.255.255.0

 [R2]
interface Ethernet0/0
 ip address 192.168.12.2 255.255.255.0

設定全文は下記ファイルです。詳細設定は下記を参照ください。

R1
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R1
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
memory-size iomem 5
!
!
ip cef
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
interface Loopback0
 ip address 10.1.1.1 255.255.255.255
!
interface Ethernet0/0
 ip address 192.168.12.1 255.255.255.0
 half-duplex
!
interface Ethernet0/1
 no ip address
 shutdown
 half-duplex
!
interface Ethernet0/2
 no ip address
 shutdown
 half-duplex
!
interface Ethernet0/3
 no ip address
 shutdown
 half-duplex
!
!
router rip
 version 2
 network 10.0.0.0
 network 192.168.12.0
 no auto-summary
!
ip http server
ip forward-protocol nd
!
!
!
!
!
!
control-plane
!
!
!
!
mgcp behavior g729-variants static-pt
!
!
!
!
!
line con 0
line aux 0
line vty 0 4
 login
!
!
end
R2
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R2
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
memory-size iomem 5
!
!
ip cef
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
interface Loopback0
 ip address 10.2.2.2 255.255.255.255
!
interface Ethernet0/0
 ip address 192.168.12.2 255.255.255.0
 half-duplex
!
interface Ethernet0/1
 no ip address
 shutdown
 half-duplex
!
interface Ethernet0/2
 no ip address
 shutdown
 half-duplex
!
interface Ethernet0/3
 no ip address
 shutdown
 half-duplex
!
!
router rip
 version 2
 network 10.0.0.0
 network 192.168.12.0
 no auto-summary
!
ip http server
ip forward-protocol nd
!
!
!
!
!
!
control-plane
!
!
!
!
mgcp behavior g729-variants static-pt
!
!
!
!
!
line con 0
line aux 0
line vty 0 4
 login
!
!
end

仕様説明

bufferの種類

bufferの状態は以下のコマンドで調べる事ができます。bufferには、small, middle, bigなどの6種類があり、パケットのサイズによってどのbufferに格納するかが決まります。

R1#show buffers
Buffer elements:
     1119 in free list (1119 max allowed)
     86 hits, 0 misses, 619 created

Public buffer pools:
Small buffers, 104 bytes (total 50, permanent 50):
     49 in free list (20 min, 150 max allowed)
     62 hits, 0 misses, 0 trims, 0 created
     0 failures (0 no memory)
Middle buffers, 600 bytes (total 25, permanent 25):
     25 in free list (10 min, 150 max allowed)
     78 hits, 0 misses, 0 trims, 0 created
     0 failures (0 no memory)
Big buffers, 1536 bytes (total 50, permanent 50):
     50 in free list (5 min, 150 max allowed)
     31 hits, 0 misses, 0 trims, 0 created
     0 failures (0 no memory)
VeryBig buffers, 4520 bytes (total 10, permanent 10):
     10 in free list (0 min, 100 max allowed)
     0 hits, 0 misses, 0 trims, 0 created
     0 failures (0 no memory)
Large buffers, 5024 bytes (total 0, permanent 0):
     0 in free list (0 min, 10 max allowed)
     0 hits, 0 misses, 0 trims, 0 created
     0 failures (0 no memory)
Huge buffers, 18024 bytes (total 0, permanent 0):
     0 in free list (0 min, 4 max allowed)
     0 hits, 0 misses, 0 trims, 0 created
     0 failures (0 no memory)

 <omitted>

bufferの領域

6種類のbufferについて、以下のパラメータについてチューニング可能です。

パラメータ 説明
initial システム再起動直後に割り当てられるbuffer
permanent 絶対に削除される事のない固定buffer。言い換えればbufferの最小値とも考えられます。
min-free in free listとして確保するbufferの最小値。
max-free in free listとして確保するbufferの最大値。

手動チューニング

以下のコマンドでbuffer sizeを手動設定する事ができます。

Router(config)# buffers small { initial | permanent | min-free | max-free } <size>
Router(config)# buffers middle { initial | permanent | min-free | max-free } <size>
Router(config)# buffers big { initial | permanent | min-free | max-free } <size>
Router(config)# buffers verybig { initial | permanent | min-free | max-free } <size>
Router(config)# buffers large { initial | permanent | min-free | max-free } <size>
Router(config)# buffers huge { initial | permanent | min-free | max-free } <size>

自動チューニング

以下のコマンドでbuffer sizeを自動的にチューニングするようになります。

Router(config)# buffers tune automatic

bufferの領域

動作確認

3000byte, 5000byte, 8000byteの大きめのパケットをR1からR2へ送信します。

 [R1]
R1#ping 10.2.2.2 size 3000

Type escape sequence to abort.
Sending 5, 3000-byte ICMP Echos to 10.2.2.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/31/112 ms
R1#
R1#
R1#ping 10.2.2.2 size 5000 repeat 3

Type escape sequence to abort.
Sending 3, 5000-byte ICMP Echos to 10.2.2.2, timeout is 2 seconds:
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 4/34/52 ms
R1#
R1#
R1#ping 10.2.2.2 size 8000 repeat 2

Type escape sequence to abort.
Sending 2, 8000-byte ICMP Echos to 10.2.2.2, timeout is 2 seconds:
!!
Success rate is 100 percent (2/2), round-trip min/avg/max = 32/50/68 ms
R1#

buffer sizeを観察します。大きめのパケットを送付したので、large, huge bufferのin free listが0ではなくなった事が確認できます。

また、large, hugeのin free listの初期設定は0ですので、bufferから溢れたパケットが”misses”としてカウントされた事が分かります。

 [R1]
R1#show buffers

 <omitted>

Large buffers, 5024 bytes (total 2, permanent 0, peak 2 @ 00:00:22):
     2 in free list (0 min, 10 max allowed)
     2 hits, 1 misses, 0 trims, 2 created
     0 failures (0 no memory)
Huge buffers, 18024 bytes (total 4, permanent 0, peak 4 @ 00:00:17):
     4 in free list (0 min, 4 max allowed)
     14 hits, 2 misses, 0 trims, 4 created
     0 failures (0 no memory)

手動チューニング

設定投入

buffer sizeを以下のように変更します。

 [R1]
buffers large initial 5
buffers large min-free 4
buffers large max-free 20
buffers large permanent 2
buffers huge initial 5
buffers huge min-free 2
buffers huge max-free 10
buffers huge permanent 1

動作確認

buffer sizeが変わった事を確認します。

 [R1]
R1#show buffers

 <omitted>

Large buffers, 5024 bytes (total 4, permanent 2, peak 4 @ 00:00:37):
     4 in free list (4 min, 10 max allowed)
     2 hits, 1 misses, 0 trims, 2 created
     0 failures (0 no memory)
Huge buffers, 18024 bytes (total 5, permanent 1, peak 5 @ 00:00:24):
     5 in free list (2 min, 10 max allowed)
     14 hits, 2 misses, 0 trims, 4 created
     0 failures (0 no memory)

自動チューニング

設定投入

以下のコマンドでbufferの自動チューニングが有効になります。

 [R2]
buffers tune automatic

動作確認

以下のコマンドでbuffer tuningの様子を観察する事ができます。

 [R2]
R2#show buffers tune

R2#

今回の動作確認ではshowコマンドによる出力は得られませんが、機材によっては”show buffers tune”コマンドで以下のような出力が得られます。

Router# show buffers tune
Tuning happened for the pool Small
Tuning happened at 22: 43: 19
Oldvalues
permanent: 50 minfree: 20 maxfree: 150
Newvalues
permanent: 62 minfree: 15 maxfree: 78
Tuning happened for the pool Middle
Tuning happened at 22: 43: 19
Oldvalues
permanent: 25 minfree: 10 maxfree: 150
Newvalues
permanent: 36 minfree: 9 maxfree: 45
Router#
タイトルとURLをコピーしました