목차

소개

배경 정보

일반 정보

MEMPOOL_HEAPCACHE_X

Heapcache 메모리 경고 이해

MEMPOOL_GLOBAL_SHARED

경고 컨텍스트

MEMPOOL_DMA 및 MEMPOOL_DMA_ALT1

DMA 메모리 풀 개요

DMA 메모리 사용

DMA 메모리 풀의 동작

언제 걱정해야 합니까?

SNMP 모니터링

소개

이 문서에서는 ASA(Adaptive Security Appliance)/FTD(Firepower Threat Defense)의 다양한 메모리 구성 요소에 대한 이해를 설명합니다.

배경 정보

메모리 관련 알림을 수신하는 경우 이 문서에서는 예방 조치를 취하는 시기와 이를 무시할 시기를 결정합니다. SNMP(Simple Network Management Protocol) 폴링은 일반적으로 메모리 관련 경보를 시작하는 데 사용됩니다. 이 SNMP는 show memory detail 명령의 결과를 사용하여 데이터를 수집하고 알림을 트리거합니다.

일반 정보

이 글에서는 아래에서 언급하는 메모리 요소에 대해 논의한다

- MEMPOOL_HEAPCACHE_X

- MEMPOOL_GLOBAL_SHARED

- MEMPOOL_DMA 및 MEMPOOL_DMA_ALT1

MEMPOOL_HEAPCACHE_X

Heapcache 메모리 경고 이해

1. Heapcache 할당 동작

- Heapcache는 메모리 할당을 위한 기본 풀입니다.

- Heapcache 풀이 소진되면 전역 공유 풀에서 추가 할당이 수행됩니다.

- 전역 공유 풀 자체는 필요에 따라 시스템 메모리에서 메모리를 가져옵니다.

2. Heapcache 메모리 경고

- Heapcache 메모리 알림 수신은 정상이며 문제를 나타내지 않습니다.

- Heapcache 메모리는 사용을 위해 할당된 첫 번째 풀이므로 사용량이 많을 것으로 예상됩니다.

3. 모니터링을 위한 핵심 사항

- 시스템 메모리 사용에 집중합니다.

- 시스템 메모리가 충분한 경우 MEMPOOL_HEAPCACHE_0 또는 MEMPOOL_GLOBAL_SHARED 풀에 대한 알림을 걱정하지 않아도 됩니다.

- SNMP 툴을 사용하여 심각한 임계값 또는 성능 저하를 시스템 메모리를 모니터링합니다.

4. 알림 및 예상 동작

- 메모리 예약 동작이 정상입니다.

- 시스템은 필요에 따라 메모리를 동적으로 예약하고 할당합니다.

- 시스템 메모리 자체가 매우 높아지지 않는 한 Heapcache 또는 전역 공유 풀과 관련된 알림을 안전하게 무시할 수 있습니다.

MEMPOOL_GLOBAL_SHARED

- 동적 메모리 처리

MEMPOOL_GLOBAL_SHARED는 부팅 시 모든 메모리를 사전 할당하지 않습니다. 그 대신 필요에 따라 운영 체제에서 온디맨드로 메모리를 요청합니다.

- 메모리 해제

많은 양의 메모리가 해제되면 MEMPOOL_GLOBAL_SHARED는 메모리를 운영 체제로 다시 반환합니다.

- 탄력적인 성장/축소

MEMPOOL_GLOBAL_SHARED의 크기는 워크로드에 따라 동적으로 확장 및 축소됩니다. 이러한 적응형 동작은 효율적인 메모리 활용을 보장합니다.

- 속도를 위한 최소 캐시

MEMPOOL_GLOBAL_SHARED 내에 소량의 메모리가 할당된 상태로 남아 향후 메모리 할당 요청을 가속화하고 레이턴시를 방지합니다.

경고 컨텍스트

이 알림이 나타나면 MEMPOOL_GLOBAL_SHARED의 예상 동작을 설명합니다. 동적으로 메모리를 확장, 축소 및 관리하므로 동작이 정상적이며 문제를 나타내지 않습니다. 특정 메모리 관련 성능 문제가 관찰되지 않는 한 이 경고를 안전하게 무시할 수 있습니다.

MEMPOOL_DMA 및 MEMPOOL_DMA_ALT1

DMA 메모리 풀 개요

Cisco ASA/FTD의 DMA(Direct Memory Access) 메모리 시스템은 두 개의 키 메모리 풀로 구성됩니다.

1. MEMPOOL_DMA

2. MEMPOOL_DMA_ALT1

이 두 풀은 원활한 메모리 가용성을 보장하기 위해 함께 작동합니다.

- MEMPOOL_DMA는 기본 풀입니다.

- MEMPOOL_DMA_ALT1은 기본 풀이 소진될 때 백업 역할을 합니다.

DMA 메모리 사용

DMA 메모리 풀은 주로 고속 데이터 액세스 및 메모리 집약적인 작업이 필요한 작업에 사용됩니다. 일반적으로 VPN 관련 기능 및 다음을 포함한 기타 프로세스에 사용됩니다.

1. VPN(가상 사설망) 서비스:

- IPSec(IKEv1/IKEv2)

- TLS(Transport Layer Security) 프록시

- WebVPN(AnyConnect/클라이언트리스 VPN)

2. 보안 및 로깅 서비스:

- IPS(Intrusion Prevention System)

- Syslogging("logging host ...")

- SSH(Secure Shell) 연결

3. 관리 및 기타 서비스:

- ASDM(Adaptive Security Device Manager)(ASA HTTPS 서버)

- DHCP(Dynamic Host Configuration Protocol) 서버

DMA 메모리 풀의 동작

1. 부팅 시간 할당:

부팅 시 ASA는 활성화된 기능을 기반으로 DMA 메모리를 할당합니다.

2. 동적 메모리 사용:

- 필요한 경우 MEMPOOL_DMA에서 요청 메모리를 처리합니다.

- 프로세스가 완료되면 메모리가 여유 풀로 반환됩니다(약간의 지연).

3. MEMPOOL_DMA_ALT1로 대체:

- MEMPOOL_DMA가 완전히 사용되면 시스템은 자동으로 MEMPOOL_DMA_ALT1을 사용하기 시작합니다.

- 따라서 메모리 관련 중단 없이 지속적인 작업을 수행할 수 있습니다.

언제 걱정해야 합니까?

- MEMPOOL_DMA 사용률이 높은 경우(100%에 가까움), MEMPOOL_DMA_ALT1에 메모리가 충분한 경우 즉각적인 문제는 없습니다.

- MEMPOOL_DMA_ALT1도 채우기 시작하면 메모리 소진 문제를 나타내며 추가 조사가 필요합니다.

- 필요한 조치:

- MEMPOOL_DMA_ALT1 사용을 모니터링합니다.

- 두 풀이 모두 전체 활용에 접근하면 기능 사용, 로깅 활동, 메모리 부족 프로세스를 조사합니다.

높은 DMA 메모리 관련 문제를 관찰하는 경우 다음을 확인합니다.

HTTP 서버: HTTP가 구성된 경우 4, 80, 1550, 2048 및 2560바이트 블록이 할당되고 약 7Mb의 DMA가 사용됩니다. 당분간 ASDM 액세스를 비활성화해 보십시오.

URL 서버: 구성된 경우 81Kb의 DMA 메모리가 추가됩니다.

IKE(인터넷 키 교환) 및 WebVPN: 어떤 형태로든 VPN을 활성화하면 DMA 메모리 풀에서 메모리가 추출됩니다.

VPN을 사용 중인 경우 이 메모리도 사용할 수 있습니다. VPN 사용률을 선택하여 VPN이 박스 용량을 초과하지 않도록 하십시오.

로깅: 로깅에 사용되는 DMA는 대기열 크기 및 로깅 호스트 수에 의해 제어됩니다.

#sh 실행 로그

로깅 큐 0 사용 안 함

로깅 큐 8192를 사용하지 않음

둘 이상의 로깅 서버를 구성하지 마십시오.

점보 프레임 구성 안 함

SNMP 모니터링

표시된 MIB(Management Information Base)는 SNMP 메모리 모니터링에 사용됩니다.

이러한 MIB의 Counter64 값 이해 및 사용 방법:

MIB의 Counter64 값

1. MIB .1.3.6.1.4.1.9.9.221.1.1.1.18: - 이 MIB는 사용된 메모리 풀에 대한 고용량 카운터인 cempMemPoolHCUsed 객체를 나타냅니다. 풀에서 사용되는 메모리의 양을 바이트 단위로 제공합니다.

2. MIB .1.3.6.1.4.1.9.9.221.1.1.1.20: - 이 MIB는 사용 가능한 메모리 풀에 대한 고용량 카운터인 cempMemPoolHCFree 개체를 나타냅니다. 풀에서 사용 가능한 메모리의 양을 바이트 단위로 제공합니다.

특정 MIB의 용도:

1. MEMPOOL_MSGLYR_HB: - 메시지 레이어 하트비트의 메모리 풀을 나타냅니다. 시스템에서 하트비트 메시지에 할당된 메모리를 모니터링하는 데 사용됩니다.

2. MEMPOOL_MSGLYR: - 메시지 레이어의 메모리 풀을 나타냅니다. 이는 시스템의 일반적인 메시지 레이어 작업에 할당된 메모리를 모니터링하는 데 사용됩니다.

3. MEMPOOL_HEAPCACHE_1 - 힙 캐시 1에 대한 메모리 풀을 나타냅니다. 시스템의 첫 번째 힙 캐시에 할당된 메모리를 모니터링하는 데 사용됩니다.

4. 구성원 풀_HEAPCACHE_0: - 힙 캐시 0에 대한 메모리 풀을 나타냅니다. 시스템에서 기본 힙 캐시에 할당된 메모리를 모니터링하는 데 사용됩니다.

5. MEMPOOL_DMA_ALT1: - DMA 대체 1에 대한 메모리 풀을 나타냅니다. 시스템에서 첫 번째 대체 DMA 작업에 대해 할당된 메모리를 모니터링하는 데 사용됩니다.

6. MEMPOOL_DMA: - DMA에 대한 메모리 풀을 나타냅니다. 이는 시스템의 DMA 작업에 할당된 메모리를 모니터링하는 데 사용됩니다.

7. MEMPOOL_GLOBAL_SHARED: - 글로벌 공유 메모리에 대한 메모리 풀을 나타냅니다. 시스템에서 전역 공유 작업에 할당된 메모리를 모니터링하는 데 사용됩니다.