목차

소개

사전 요구 사항

요구 사항

사용되는 구성 요소

표기 규칙

일반 개요

로우엔드 플랫폼(Cisco 1600, 2500 및 4000 Series 라우터)

하이엔드 플랫폼(Route Processor, Switch Processor, Silicon Switch Processor 및 Route/Switch Processor)

입자 기반 플랫폼

버퍼 조정

패브릭 버퍼 예약

버퍼 누수

관련 정보

소개

이 문서에서는 현재 플랫폼을 기반으로 하는 버퍼 조정에 대한 개요를 제공하며 show buffers 명령에 대한 일반적인 정보를 제공합니다.

사전 요구 사항

요구 사항

이 문서에 대한 특정 요건이 없습니다.

사용되는 구성 요소

이 문서는 특정 소프트웨어 및 하드웨어 버전으로 한정되지 않습니다.

이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다.이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다.라이브 네트워크에서 작업하는 경우, 사용하기 전에 모든 명령의 잠재적인 영향을 이해해야 합니다.

표기 규칙

문서 표기 규칙에 대한 자세한 내용은 Cisco 기술 팁 표기 규칙을 참조하십시오.

일반 개요

버퍼 조정을 사용하면 라우터가 사용 가능한 메모리에서 버퍼를 할당하는 방법을 수정할 수 있으며, 일시적인 트래픽 버스트 중에 패킷 삭제를 방지할 수 있습니다.

라우터에 버퍼를 튜닝해야 하는지 확인하려면 show interface 및 show buffers 명령을 사용합니다.

show interfaces 및 show buffers 명령의 출력 또는 Cisco 디바이스의 show technical-support(enable 모드에서)의 출력이 있는 경우 Cisco CLI Analyzer를 사용하여 잠재적인 문제 및 수정 사항을 표시할 수 있습니다.Cisco CLI Analyzer를 사용하려면 등록된 고객으로 로그인한 상태여야 하고 JavaScript가 활성화되어 있어야 합니다.

다음은 show interfaces 명령 출력의 예입니다.

Output queue 0/40, 1041 drops; input queue 0/75, 765 drops

35252345 packets input, 547082589 bytes, 940 no buffer

- 입력 및 출력 삭제는 트래픽의 버스트로 인해 입력 및 출력 대기열이 오버런되기 때문입니다.이는 버퍼 문제가 아니라 프로세스 스위칭 성능 제한과 관련이 있습니다.

- "No buffer"는 패킷을 복사할 사용 가능한 버퍼가 없기 때문에 삭제된 패킷 수를 나타냅니다.

show buffers 명령을 사용하여 인터페이스의 MTU(Maximum Transmission Unit)에 해당하는 버퍼 크기를 확인합니다.

Middle buffers, 600 bytes (total 150, permanent 25):

147 in free list (10 min, 150 max allowed)

61351931 hits, 137912 misses, 51605 trims, 51730 created

91652 failures (0 no memory)

아래 표에서는 출력에 대해 설명합니다.

키워드

설명

총계

사용된 버퍼와 사용되지 않은 버퍼를 포함하여 풀에 있는 총 버퍼 수입니다.

영구

풀에 할당된 버퍼의 영구 수입니다.이러한 버퍼는 항상 풀에 있으며 잘라낼 수 없습니다.

무료 목록

풀에서 사용 가능한 현재 사용 가능한 버퍼 수입니다.

분

라우터가 "사용 가능한 목록"에 유지하려고 시도할 최소 버퍼 수 "사용 가능한 목록에 있는 버퍼 수가 "min" 값보다 작은 경우 라우터는 해당 풀에 대해 더 많은 버퍼를 생성하려고 시도해야 합니다.

최대 허용

허용되는 최대 버퍼 수 "사용 가능한 목록"입니다. "사용 가능한 목록에 있는 버퍼 수가 "최대 허용" 값보다 큰 경우 라우터는 풀에서 버퍼를 트림하려고 시도해야 합니다.

적중

사용 가능한 목록에서 성공적으로 할당된 버퍼 수입니다.

실패

버퍼가 요청되었지만 사용 가능한 목록에 사용할 수 있는 버퍼가 없거나 사용 가능한 목록에 "최소" 버퍼보다 적은 버퍼가 있는 횟수입니다.

삼류

"사용 가능한 목록에 있는" 버퍼 수가 "최대 허용" 버퍼 수를 초과할 때 풀에서 잘린 버퍼 수입니다.

생성됨

"사용 가능한 목록에 있는" 버퍼 수가 "min"보다 작을 때 풀에서 생성된 버퍼 수입니다.

메모리 없음

라우터에서 새 버퍼를 생성하려고 했지만 라우터에 사용 가능한 메모리가 부족하여 생성할 수 없는 횟수입니다.

실패

인터럽트 시간 동안 요청자에게 버퍼를 부여하지 못한 횟수(라우터가 프로세스 스위칭 수준에서 새 버퍼를 생성할 수 있으므로 "메모리 없음"이 없으면 "실패"가 발생하지 않습니다). "실패 수"는 버퍼 부족으로 인해 삭제된 패킷 수를 나타냅니다.

라우터에서 버퍼를 처리하는 방법

사용 가능한 버퍼 수는 사용 가능한 버퍼 수입니다.버퍼 요청이 들어오면 "사용 가능한 목록"의 버퍼가 할당됩니다.

IOS 버퍼는 두 가지 주요 이유로 사용됩니다.

- 라우터에서 종료되는 트래픽을 처리합니다.

- 패킷이 프로세스 스위칭되는 경우

사용 가능한 버퍼가 없고 고속 스위칭이 활성화된 경우 버퍼 오류가 발생하고 패킷이 삭제됩니다.버퍼 풀 관리자 프로세스가 버퍼 실패를 탐지하면 이후 실패를 방지하기 위해 새 버퍼를 "생성"합니다.

"in free list" 숫자가 "max allowed" 값과 같으면 라우터가 새 버퍼를 생성하지 않습니다.라우터에 메모리가 부족하여 새 버퍼를 생성할 수 없으면 "메모리 없음"으로 기록됩니다. "in free list" 숫자가 "max allowed" 수보다 큰 경우 라우터는 초과 버퍼를 "trms"합니다.

"실패" 수 및 "메모리 없음"이 유일한 관심사입니다.실패가 발생할 수 있지만, 잠시 후에 이러한 현상이 안정되어야 합니다.라우터는 실패 횟수를 안정화하기 위해 필요에 따라 버퍼를 생성하거나 트림합니다.실패 횟수가 계속 증가하면 버퍼 튜닝이 필요할 수 있습니다.

메모리가 부족하여 새 버퍼를 만들 수 없는 경우 버퍼 누수 또는 더 일반적인 메모리 문제를 찾습니다.버퍼는 빠른 스위칭 경로에 생성되지 않으므로 라우터가 패킷을 빠르게 전환하려고 시도하지만 사용 가능한 버퍼가 없으면 패킷이 삭제되고 오류가 보고됩니다.다음에 버퍼 풀 관리자를 실행할 때 새 버퍼가 생성됩니다.

로우엔드 플랫폼(Cisco 1600, 2500 및 4000 Series 라우터)

고속 전환 패킷 및 프로세스 전환 패킷은 동일한 버퍼를 공유합니다.이러한 버퍼는 공유 메모리에 있습니다.공유 메모리는 Cisco 1600 및 2500 Series 라우터의 DRAM(동적 RAM)에 있거나 Cisco 4000, 4500 및 4700 Series 라우터의 공유 RAM(SRAM)에 있습니다.

show memory 명령의 첫 번째 줄은 공유 메모리 양, 현재 사용 중인 메모리 양 및 가장 낮은 지점을 나타냅니다.패킷을 빠르게 전환할 수 없는 경우 패킷에 대한 포인터가 프로세스 스위칭 입력 대기열에 삽입되지만 패킷 자체는 복사되지 않습니다.

다음은 로우엔드 플랫폼(Cisco 4500)에서 show buffers 명령의 출력입니다.

router# show buffers

Buffer elements:

471 in free list (500 max allowed)

870696495 hits, 0 misses, 0 created

Public buffer pools:

Small buffers, 104 bytes (total 50, permanent 50):

49 in free list (20 min, 150 max allowed)

27301678 hits, 23 misses, 20 trims, 20 created

0 failures (0 no memory)

Middle buffers, 600 bytes (total 150, permanent 25):

147 in free list (10 min, 150 max allowed)

61351931 hits, 137912 misses, 51605 trims, 51730 created

91652 failures (0 no memory)

Big buffers, 1524 bytes (total 67, permanent 50):

67 in free list (5 min, 150 max allowed)

46293638 hits, 455 misses, 878 trims, 895 created

0 failures (0 no memory)

VeryBig buffers, 4520 bytes (total 96, permanent 10):

79 in free list (0 min, 100 max allowed)

11818351 hits, 246 misses, 98 trims, 184 created

243 failures (0 no memory)

Large buffers, 5024 bytes (total 10, permanent 0):

10 in free list (0 min, 10 max allowed)

4504003 hits, 873040 misses, 759543 trims, 759553 created

873040 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)

Interface buffer pools:

TokenRing0 buffers, 4516 bytes (total 48, permanent 48):

0 in free list (0 min, 48 max allowed)

3099742 hits, 9180771 fallbacks

16 max cache size, 1 in cache

TokenRing1 buffers, 4516 bytes (total 48, permanent 48):

0 in free list (0 min, 48 max allowed)

335172 hits, 403668 fallbacks

16 max cache size, 16 in cache

Serial1 buffers, 1524 bytes (total 96, permanent 96):

63 in free list (0 min, 96 max allowed)

33 hits, 0 fallbacks

0 max cache size, 0 in cache

Serial2 buffers, 1524 bytes (total 96, permanent 96):

63 in free list (0 min, 96 max allowed)

701370936 hits, 268 fallbacks

0 max cache size, 0 in cache

Serial3 buffers, 1524 bytes (total 96, permanent 96):

63 in free list (0 min, 96 max allowed)

33 hits, 0 fallbacks

0 max cache size, 0 in cache

Serial0 buffers, 4546 bytes (total 96, permanent 96):

28 in free list (0 min, 96 max allowed)

346854 hits, 5377043 fallbacks

32 max cache size, 27 in cache

인터페이스 버퍼 풀은 입력/출력(I/O)에 인터페이스에서 사용됩니다. 인터페이스 버퍼 사용 가능 목록에 더 이상 버퍼가 없으면 라우터는 폴백으로서 공용 버퍼 풀로 이동합니다.폴백(fallback)에 대한 성능 히트가 없습니다.

캐싱은 일부 오버헤드를 우회하여 인터럽트 레벨 드라이버 코드의 버퍼 가용성을 높이는 소프트웨어 조작입니다.

참고: 일반적으로 인터페이스 버퍼는 조정해서는 안 됩니다.

하이엔드 플랫폼(Route Processor, Switch Processor, Silicon Switch Processor 및 Route/Switch Processor)

다음은 하이엔드 플랫폼에서 show buffers 명령의 출력입니다.

Router# show buffers

Buffer elements:

498 in free list (500 max allowed)

326504974 hits, 0 misses, 0 created

Public buffer pools:

Small buffers, 104 bytes (total 150, permanent 150):

140 in free list (30 min, 250 max allowed)

564556247 hits, 148477066 misses, 16239797 trims, 16239797 created

29356200 failures (0 no memory)

Middle buffers, 600 bytes (total 120, permanent 120):

116 in free list (20 min, 200 max allowed)

319750574 hits, 85689239 misses, 9671164 trims, 9671164 created

26050704 failures (0 no memory)

Big buffers, 1524 bytes (total 100, permanent 100):

98 in free list (10 min, 300 max allowed)

20130595 hits, 14796572 misses, 251916 trims, 251916 created

11813639 failures (0 no memory)

VeryBig buffers, 4520 bytes (total 15, permanent 15):

14 in free list (5 min, 300 max allowed)

22966334 hits, 3477687 misses, 13113 trims, 13113 created

2840089 failures (0 no memory)

Large buffers, 5024 bytes (total 12, permanent 12):

12 in free list (0 min, 30 max allowed)

849034 hits, 1979463 misses, 1028 trims, 1028 created

1979456 failures (0 no memory)

Huge buffers, 18024 bytes (total 6, permanent 5):

4 in free list (2 min, 13 max allowed)

338440 hits, 1693496 misses, 1582 trims, 1583 created

1640218 failures (0 no memory)

헤더 풀

공용 버퍼 풀은 DRAM에 있으며 시스템 버퍼라고 합니다.RSP(Route/Switch Processor)의 공유 메모리를 MEMD(시스템 패킷 메모리)라고 하며 2MB의 메모리를 허용합니다.RP(Route Processor) 및 SP(Switch Processor)(또는 Silicon Switch Processor - SSP)에서 시스템 버퍼는 RP에 있고 MEMD는 SP(또는 SSP)에 있습니다.

패킷이 들어오면 수신 인터페이스 프로세서에 의해 MEMD에 저장됩니다(Versatile Interface Processor - VIP의 경우 제외). 고속 스위칭이 불가능한 경우 전체 패킷이 DRAM의 시스템 버퍼로 복사됩니다.따라서 show buffers 명령에 표시되는 버퍼는 DRAM에 있는 시스템 버퍼입니다.

show controllers cbus 명령은 MEMD의 인터페이스 버퍼를 보여줍니다.다시 한 번 인터페이스 버퍼를 조정하지 않는 것이 좋습니다.패킷을 빠르게 전환할 수 없고 시스템 버퍼로 복사하면 패킷이 삭제되고 사용 가능한 시스템 버퍼가 없는 경우 오류가 계산됩니다.

입자 기반 플랫폼

Cisco 3600 및 7200 Series 라우터는 입자를 사용합니다.인터페이스 버퍼는 패킷이 분할되는 입자라고 하는 원자 버퍼입니다.패킷이 빠른 스위칭될 수 없는 경우, 프로세스 스위칭 코드는 입자를 처리할 수 없으므로 라우터가 하나의 시스템 버퍼에서 패킷을 다시 어셈블해야 합니다.

다음은 Cisco 3600에서 show buffers 명령의 출력입니다.

Router# show buffers

Buffer elements:

499 in free list (500 max allowed)

136440 hits, 0 misses, 0 created

Public buffer pools:

Small buffers, 104 bytes (total 50, permanent 50):

49 in free list (20 min, 150 max allowed)

4069435 hits, 141 misses, 73 trims, 73 created

52 failures (0 no memory)

Middle buffers, 600 bytes (total 25, permanent 25):

25 in free list (10 min, 150 max allowed)

628629 hits, 21 misses, 21 trims, 21 created

3 failures (0 no memory)

Big buffers, 1524 bytes (total 50, permanent 50):

50 in free list (5 min, 150 max allowed)

9145 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)

Interface buffer pools:

CD2430 I/O buffers, 1524 bytes (total 0, permanent 0):

0 in free list (0 min, 0 max allowed)

0 hits, 0 fallbacks

Header pools:

Header buffers, 0 bytes (total 265, permanent 256):

9 in free list (10 min, 512 max allowed)

253 hits, 3 misses, 0 trims, 9 created

0 failures (0 no memory)

256 max cache size, 256 in cache

Particle Clones:

1024 clones, 0 hits, 0 misses

Public particle pools:

F/S buffers, 256 bytes (total 384, permanent 384):

128 in free list (128 min, 1024 max allowed)

256 hits, 0 misses, 0 trims, 0 created

0 failures (0 no memory)

256 max cache size, 256 in cache

Normal buffers, 1548 bytes (total 512, permanent 512):

356 in free list (128 min, 1024 max allowed)

188 hits, 0 misses, 0 trims, 0 created

0 failures (0 no memory)

128 max cache size, 128 in cache

Private particle pools:

Ethernet0/0 buffers, 1536 bytes (total 96, permanent 96):

0 in free list (0 min, 96 max allowed)

96 hits, 0 fallbacks

96 max cache size, 64 in cache

Serial0/0 buffers, 1548 bytes (total 14, permanent 14):

0 in free list (0 min, 14 max allowed)

14 hits, 0 fallbacks

14 max cache size, 14 in cache

BRI0/0 buffers, 1548 bytes (total 14, permanent 14):

0 in free list (0 min, 14 max allowed)

14 hits, 0 fallbacks

14 max cache size, 14 in cache

BRI0/0:1 buffers, 1548 bytes (total 14, permanent 14):

0 in free list (0 min, 14 max allowed)

14 hits, 0 fallbacks

14 max cache size, 14 in cache

BRI0/0:2 buffers, 1548 bytes (total 14, permanent 14):

0 in free list (0 min, 14 max allowed)

14 hits, 0 fallbacks

14 max cache size, 14 in cache

TokenRing0/0 buffers, 1548 bytes (total 64, permanent 64):

0 in free list (0 min, 64 max allowed)

64 hits, 0 fallbacks

64 max cache size, 64 in cache

4 buffer threshold, 0 threshold transitions

프라이빗 파티클 풀은 인터페이스에서 사용되며 조정해서는 안 됩니다.사용 가능한 목록에 사용 가능한 버퍼가 없는 경우 라우터는 퍼블릭 입자 풀로 돌아갑니다.

헤더 버퍼는 패킷에 속하는 모든 입자의 목록을 기록하는 데 사용됩니다.

참고: 시스템 버퍼는 프로세스 스위칭에 사용됩니다.Cisco 3600에서는 이러한 모든 버퍼가 DRAM에 있는 I/O 메모리에 있습니다.memory-size iomem 명령을 사용하여 I/O 메모리 양을 지정할 수 있습니다.Cisco 7200에서는 PA(High Bandwidth Port Adapter)의 인터페이스 입자 버퍼 풀이 SRAM에 있습니다.

버퍼 조정

다음은 show buffers 명령의 예입니다.

Middle buffers, 600 bytes (total 150, permanent 25):

147 in free list (10 min, 150 max allowed)

61351931 hits, 137912 misses, 51605 trims, 51730 created

91652 failures (0 no memory)

이 예에서는 중간 버퍼에 오류가 많습니다.이것은 히트의 0.1%에 불과하기 때문에 심각한 문제가 아니다.이러한 수치는 일부 버퍼 조정으로 쉽게 개선되어야 합니다.

패킷이 CEF 스위칭될 수 없는 경우에만 버퍼 조정이 수행됩니다.

라우터의 아키텍처에 따라 조정되는 버퍼는 일반적으로 I/O 메모리(로우엔드) 또는 기본 메모리(하이엔드)에 속합니다. 버퍼를 튜닝하기 전에 먼저 show memory 명령의 첫 번째 줄을 사용하여 여유 I/O 또는 주 메모리가 충분한지 확인합니다.

다음은 사용할 수 있는 몇 가지 일반적인 값입니다.

- 영구:풀의 총 버퍼 수를 가져와서 약 20%를 추가합니다.

- 최소 무료:풀에 할당된 영구 버퍼 수의 약 20-30%로 min-free를 설정합니다.

- 최대 사용 가능:영구적 및 최소값의 합계보다 큰 값으로 max-free를 설정합니다.

위의 버퍼 조정 예에서는 글로벌 컨피그레이션 모드에서 다음 명령을 입력할 수 있습니다.

buffers middle permanent 180

buffers middle min-free 50

buffers middle max-free 230

일반적으로 Cisco IOS® Software는 이러한 설정이 양호하도록 동적으로 버퍼를 생성합니다.그러나 트래픽 버스트의 경우 라우터가 새 버퍼를 생성하는 데 충분한 시간이 없을 수 있으며 실패 횟수가 계속 증가할 수 있습니다.기본 버퍼 풀 설정을 변경하려면 buffers 명령을 사용합니다.잘못된 버퍼 설정이 시스템 성능에 영향을 줄 수 있으므로 버퍼 값을 변경할 때는 주의해야 합니다.버퍼 카운터를 지우려면 라우터를 다시 로드해야 합니다.

두 가지 종류의 트래픽 버스트가 있습니다.

- 느린 버스트:이 경우 라우터는 새 버퍼를 생성할 수 있는 충분한 시간을 갖습니다.최소 여유 버퍼 수를 늘립니다.사용 가능한 버퍼를 사용하면 최소값 값에 도달한 다음 새 버퍼를 생성할 수 있습니다.

- 빠른 버스트:빠른 트래픽 버스트를 사용할 경우 라우터가 새 버퍼를 생성할 충분한 시간이 없으므로 사용 가능한 버퍼를 사용해야 합니다.이렇게 하려면 영구 버퍼 수를 수정합니다.

결론:처음 튜닝한 후 생성 카운터가 증가하면 최소값(느린 버스트)을 늘립니다. 오류 카운터가 증가하지만 만들기 카운터(빠른 버스트)가 아닌 경우 영구 값을 늘립니다.

패브릭 버퍼 예약

시스템 처리량을 개선하고 ASIC 버퍼를 예약하려면 fabric buffer-reserve 명령을 입력할 수 있습니다.

이 명령은 다음 모듈에서 지원됩니다.

- WS-X6704-10GE

- WS-X6748-SFP

- WS-X6748-GE-TX

- WS-X6724-SFP

이 명령은 Supervisor Engine 32로 구성된 Cisco 7600 Series 라우터에서 지원되지 않습니다.

fabric buffer-reserve [high | low | medium | value]

주의: 이 명령은 Cisco TAC의 방향으로만 사용합니다.

다음은 이 명령이 유용한 일반적인 상황입니다.

- 여러 인터페이스에 대해 라인 프로토콜이 다운됨

- 다중 인터페이스에서 오버런이 확인됨

- 포트가 EtherChannel에서 자주 나가고 합류함

- DFC가 있는 라인 카드에 대해 TestMacNotification 테스트가 반복적으로 실패함

버퍼 누수

다음은 show buffers 명령의 출력 예입니다.

Big buffers, 1524 bytes (total 1556, permanent 50):

52 in free list (5 min, 150 max allowed)

43670437 hits, 5134 misses, 0 trims, 1506 created

756 failures (0 no memory)

이 출력은 대형 버퍼 풀의 버퍼 누수를 나타냅니다.라우터에 총 1,556개의 빅버퍼가 있으며, 무료 목록에 52개만 있습니다.어떤 것은 모든 버퍼를 사용하고 있으며, 사용 가능하게 하지 않습니다.버퍼 유출에 대한 자세한 내용은 버퍼 누수 문제 해결을 참조하십시오.

관련 정보

- 메모리 문제 해결

- 버퍼 누수 문제 해결

- 기본 시스템 관리 명령

- 시스템 버퍼 크기 수정

- Technical Support - Cisco Systems