소개
이 문서에서는 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 메모리 경고 이해
- Heapcache 할당 동작
- Heapcache는 메모리 할당을 위한 기본 풀입니다.
- Heapcache 풀이 소진되면 전역 공유 풀에서 추가 할당이 수행됩니다.
- 전역 공유 풀 자체는 필요에 따라 시스템 메모리에서 메모리를 가져옵니다.
- Heapcache 메모리 경고
- Heapcache 메모리 알림 수신은 정상이며 문제를 나타내지 않습니다.
- Heapcache 메모리는 사용을 위해 할당된 첫 번째 풀이므로 사용량이 많을 것으로 예상됩니다.
- 모니터링을 위한 핵심 사항
- 시스템 메모리 사용에 집중합니다.
- 시스템 메모리가 충분한 경우 MEMPOOL_HEAPCACHE_0 또는 MEMPOOL_GLOBAL_SHARED 풀에 대한 알림을 걱정하지 않아도 됩니다.
- SNMP 툴을 사용하여 심각한 임계값 또는 성능 저하를 시스템 메모리를 모니터링합니다.
- 알림 및 예상 동작
- 메모리 예약 동작이 정상입니다.
- 시스템은 필요에 따라 메모리를 동적으로 예약하고 할당합니다.
- 시스템 메모리 자체가 매우 높아지지 않는 한 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) 메모리 시스템은 두 개의 키 메모리 풀로 구성됩니다.
- MEMPOOL_DMA
- MEMPOOL_DMA_ALT1
이 두 풀은 원활한 메모리 가용성을 보장하기 위해 함께 작동합니다.
DMA 메모리 사용
DMA 메모리 풀은 주로 고속 데이터 액세스 및 메모리 집약적인 작업이 필요한 작업에 사용됩니다. 일반적으로 VPN 관련 기능 및 다음을 포함한 기타 프로세스에 사용됩니다.
- VPN(가상 사설망) 서비스:
- 보안 및 로깅 서비스:
- IPS(Intrusion Prevention System)
- Syslogging("logging host ...")
- SSH(Secure Shell) 연결
-
관리 및 기타 서비스:
DMA 메모리 풀의 동작
- 부팅 시간 할당:
부팅 시 ASA는 활성화된 기능을 기반으로 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 값
- MIB .1.3.6.1.4.1.9.9.221.1.1.1.18: - 이 MIB는 사용된 메모리 풀에 대한 고용량 카운터인 cempMemPoolHCUsed 객체를 나타냅니다. 풀에서 사용되는 메모리의 양을 바이트 단위로 제공합니다.
- MIB .1.3.6.1.4.1.9.9.221.1.1.1.20: - 이 MIB는 사용 가능한 메모리 풀에 대한 고용량 카운터인 cempMemPoolHCFree 개체를 나타냅니다. 풀에서 사용 가능한 메모리의 양을 바이트 단위로 제공합니다.
특정 MIB의 용도:
- MEMPOOL_MSGLYR_HB: - 메시지 레이어 하트비트의 메모리 풀을 나타냅니다. 시스템에서 하트비트 메시지에 할당된 메모리를 모니터링하는 데 사용됩니다.
- MEMPOOL_MSGLYR: - 메시지 레이어의 메모리 풀을 나타냅니다. 이는 시스템의 일반적인 메시지 레이어 작업에 할당된 메모리를 모니터링하는 데 사용됩니다.
- MEMPOOL_HEAPCACHE_1 - 힙 캐시 1에 대한 메모리 풀을 나타냅니다. 시스템의 첫 번째 힙 캐시에 할당된 메모리를 모니터링하는 데 사용됩니다.
- 구성원 풀_HEAPCACHE_0: - 힙 캐시 0에 대한 메모리 풀을 나타냅니다. 시스템에서 기본 힙 캐시에 할당된 메모리를 모니터링하는 데 사용됩니다.
- MEMPOOL_DMA_ALT1: - DMA 대체 1에 대한 메모리 풀을 나타냅니다. 시스템에서 첫 번째 대체 DMA 작업에 대해 할당된 메모리를 모니터링하는 데 사용됩니다.
- MEMPOOL_DMA: - DMA에 대한 메모리 풀을 나타냅니다. 이는 시스템의 DMA 작업에 할당된 메모리를 모니터링하는 데 사용됩니다.
- MEMPOOL_GLOBAL_SHARED: - 글로벌 공유 메모리에 대한 메모리 풀을 나타냅니다. 시스템에서 전역 공유 작업에 할당된 메모리를 모니터링하는 데 사용됩니다.