Redis 지표 - Amazon ElastiCache for Redis

Redis 지표

AWS/ElastiCache 네임스페이스에는 다음 Redis 지표가 포함되어 있습니다.

ReplicationLagEngineCPUUtilization를 제외하고 이 지표는 Redis info 명령에서 파생됩니다. 각 지표는 캐시 노드 수준에서 계산됩니다.

Redis info 명령에 대한 전체 설명서는 http://redis.io/commands/info를 참조하세요.

참고 항목

지표 설명 Unit
ActiveDefragHits 활성 조각 모음 프로세스에서 수행된 분당 값 재할당 수입니다. 이 수는 Redis INFOactive_defrag_hits 통계에서 나왔습니다. 숫자
AuthenticationFailures AUTH 명령을 사용하여 Redis에 인증한 실패한 시도의 총 수입니다. 개별 인증 실패에 대한 자세한 내용은 ACL LOG 명령을 사용하여 확인할 수 있습니다. 무단 액세스 시도를 감지하려면 이에 대한 경보를 설정하는 것이 좋습니다. 개수
BytesUsedForCache 데이터 세트, 버퍼 등을 포함하여 모든 목적을 위해 Redis에서 할당한 전체 바이트 수. 바이트
데이터 계층화를 사용하는 Redis 클러스터용 Dimension: Tier=Memory: 메모리에서 캐시에 사용된 총 바이트 수입니다. Redis 정보에 있는 used_memory 통계 값입니다. 바이트
데이터 계층화를 사용하는 Redis 클러스터용 Dimension: Tier=SSD: SSD에서 캐시에 사용된 총 바이트 수입니다. 바이트
BytesReadFromDisk 분당 디스크에서 읽은 총 바이트 수입니다. 데이터 계층화를 사용하는 클러스터에서만 지원됩니다. 바이트
BytesWrittenToDisk 분당 디스크에 쓴 총 바이트 수입니다. 데이터 계층화를 사용하는 클러스터에서만 지원됩니다. 바이트
CacheHits 주 딕셔너리의 성공한 읽기 전용 키 조회수. 이 수는 Redis INFOkeyspace_hits 통계에서 나왔습니다. 개수
CacheMisses 주 딕셔너리의 성공하지 못한 읽기 전용 키 조회 수. 이 수는 Redis INFOkeyspace_misses 통계에서 나왔습니다. 개수
CommandAuthorizationFailures 사용자가 호출 권한이 없는 명령을 실행한 실패한 시도의 총 수입니다. 개별 인증 실패에 대한 자세한 내용은 ACL LOG 명령을 사용하여 확인할 수 있습니다. 무단 액세스 시도를 감지하려면 이에 대한 경보를 설정하는 것이 좋습니다. 개수
CacheHitRate Redis 인스턴스의 사용 효율성을 나타냅니다. 캐시 비율이 약 0.8보다 낮으면 상당한 양의 키가 제거되거나, 만료되거나, 존재하지 않음을 의미합니다. 이는 cache_hitscache_misses 통계를 사용하여 다음과 같은 방식으로 계산됩니다. cache_hits /(cache_hits + cache_misses) %
CurrConnections 읽기 전용 복제본의 연결을 제외한 클라이언트 연결 수입니다. ElastiCache는 2~4개의 연결을 사용하여 각 사례의 클러스터를 모니터링합니다. 이 수는 Redis INFOconnected_clients 통계에서 나왔습니다. 개수
CurrItems 캐시 항목 수. 이 지표는 전체 키 스페이스의 모든 키를 합산하여 Redis keyspace 통계에서 파생됩니다. 개수
데이터 계층화를 사용하는 클러스터용 Dimension: Tier=Memory입니다. 메모리에 있는 항목 수입니다. 개수
데이터 계층화를 사용하는 클러스터용 Dimension: Tier=SSD(solid state drives)입니다. SSD의 항목 수입니다. 개수
CurrVolatileItems ttl이 설정된 모든 데이터베이스의 총 키 수입니다. 이 지표는 전체 키 스페이스의 모든 ttl이 설정된 키를 합산하여 Redis expires 통계에서 파생됩니다. 개수
DatabaseMemoryUsagePercentage 사용 중인 클러스터용 메모리의 백분율입니다. 이 수는 Redis INFOused_memory/maxmemory를 사용하여 계산됩니다. %
DatabaseMemoryUsageCountedForEvictPercentage 오버헤드 및 COB에 사용된 메모리를 제외한 사용 중인 클러스터용 메모리의 백분율입니다. 이 수는 Redis INFOused_memory-mem_not_counted_for_evict/maxmemory를 사용하여 계산됩니다. %
DB0AverageTTL Redis INFO 명령의 keyspace 통계에서 DBO의 avg_ttl을 표시합니다. 복제본은 키를 만료 처리하지 않고 프라이머리 노드에서 키를 만료 처리할 때까지 기다립니다. 프라이머리 노드는 키를 만료 처리하거나 LRU로 인해 키를 제거하는 경우 DEL 명령을 합성하여 모든 복제본으로 전송합니다. 따라서 복제본 노드의 경우 DB0AverageTTL은 0입니다. 키를 만료 처리하지 않아 TTL을 추적하지 않기 때문입니다. 밀리초
EngineCPUUtilization

Redis 엔진 스레드의 CPU 사용률을 제공합니다. Redis는 단일 스레드이므로 이 지표를 사용하여 Redis 프로세스 자체의 로드를 분석할 수 있습니다. EngineCPUUtilization 지표는 Redis 프로세스에 대한 보다 정확한 정보를 제공합니다. 이 지표를 CPUUtilization 지표와 함께 사용할 수 있습니다. CPUUtilization은 다른 운영 체제 및 관리 프로세스를 포함하여 전체적인 서버 인스턴스의 CPU 사용률을 표시합니다. 4개 이상의 vCPU를 포함하는 대규모 노드 유형에는 EngineCPUUtilization 지표를 사용하여 조정 임계값을 모니터링하고 설정하세요.

참고

ElastiCache 호스트에서는 백그라운드 프로세스가 관리형 데이터베이스 환경을 제공하기 위해 호스트를 모니터링합니다. 이러한 백그라운드 프로세스는 CPU 워크로드의 상당 부분을 차지할 수 있습니다. vCPU가 2개 이상인 대규모 호스트에서는 이 점이 중요하지 않습니다. 하지만 vCPU가 2개 이하인 소규모 호스트에 영향을 줄 수 있습니다. EngineCPUUtilization 지표만 모니터링하는 경우 호스트가 Redis의 높은 CPU 사용률과 백그라운드 모니터링 프로세스의 높은 CPU 사용률로 오버로드되는 상황을 인식하지 못합니다. 따라서 vCPU가 2개 이하인 호스트의 CPUUtilization 지표를 모니터링하는 것이 좋습니다.

%
Evictions maxmemory 제한으로 인해 제거된 키 수 이 수는 Redis INFOevicted_keys 통계에서 나왔습니다. 개수
GlobalDatastoreReplicationLag 보조 리전의 기본 노드와 기본 리전의 기본 노드 간의 지연입니다. 클러스터 모드가 활성화된 Redis의 경우 지연은 샤드 간의 최대 지연을 나타냅니다.
IsMaster 노드가 현재 샤드/클러스터의 기본 노드인지 여부를 나타냅니다. 이 지표는 0(기본 노드 아님) 또는 1(기본 노드임)일 수 있습니다. 개수
KeyAuthorizationFailures 사용자가 액세스 권한이 없는 키에 액세스한 실패한 시도의 총 수입니다. 개별 인증 실패에 대한 자세한 내용은 ACL LOG 명령을 사용하여 확인할 수 있습니다. 무단 액세스 시도를 감지하려면 이에 대한 경보를 설정하는 것이 좋습니다. 개수
KeysTracked Redis 키 추적에서 추적 중인 키의 수로, tracking-table-max-keys의 백분율로 표시됩니다. 키 추적은 클라이언트 측 캐싱을 지원하고 키가 수정된 경우 클라이언트에 알리는 데 사용됩니다. 개수
MemoryFragmentationRatio Redis 엔진의 메모리 할당의 효율성을 나타냅니다. 특정 임계값은 다른 동작을 나타냅니다. 조각화를 1.0 이상으로 설정하는 것이 좋습니다. 이 수는 Redis INFOmem_fragmentation_ratio statistic에서 계산됩니다. 숫자
NewConnections 이 기간에 서버에서 허용된 총 연결 수 이 수는 Redis INFOtotal_connections_received 통계에서 나왔습니다. 개수
NumItemsReadFromDisk 분당 디스크에서 검색된 총 항목 수입니다. 데이터 계층화를 사용하는 클러스터에서만 지원됩니다. 개수
NumItemsWrittenToDisk 분당 디스크에 기록된 총 항목 수입니다. 데이터 계층화를 사용하는 클러스터에서만 지원됩니다. 개수
MasterLinkHealthStatus 이 상태에는 0 또는 1의 두 가지 값이 있습니다. 값 0은 ElastiCache 기본 노드의 데이터가 EC2의 Redis와 동기화되지 않았음을 나타냅니다. 값 1은 데이터가 동기화되었음을 나타냅니다. 마이그레이션을 완료하려면 CompleteMigration API 작업을 사용합니다. 부울
Reclaimed 키 만료 이벤트 총 수 이 수는 Redis INFOexpired_keys 통계에서 나왔습니다. 개수
ReplicationBytes 복제된 구성 노드의 경우 ReplicationBytes가 기본 노드에서 모든 복제본에 전송하는 바이트 수를 보고합니다. 이 지표는 복제 그룹에 대한 쓰기 부하를 나타냅니다. 이 수는 Redis INFOmaster_repl_offset 통계에서 나왔습니다. 바이트
ReplicationLag 이 지표는 읽기 복제본으로 실행되는 노드에 한해 적용됩니다. 기본 노드에서 변경 내용을 적용할 때 복제본에서 경과된 시간(초)을 나타냅니다. Redis 엔진 버전 5.0.6 이상의 경우 지연은 밀리초 단위로 측정할 수 있습니다.
SaveInProgress 이 이진 지표는 백그라운드 저장(forked 또는 forkless)가 진행 중일 때마다 1을, 그렇지 않으면 0을 반환합니다. 백그라운드 저장 프로세스는 일반적으로 스냅샷 작업과 동기화 작업에 사용됩니다. 하지만 이 두 가지 작업은 성능 저하의 원인이 되기도 합니다. 이때는 SaveInProgress 지표를 사용하면 백그라운드 저장 프로세스로 인한 성능 저하 여부를 진단할 수 있습니다. 이 수는 Redis INFOrdb_bgsave_in_progress 통계에서 나왔습니다. 개수
TrafficManagementActive ElastiCache for Redis가 들어오는 명령, 모니터링 또는 복제에 할당된 트래픽을 조정하여 트래픽을 적극적으로 관리하는지 여부를 나타냅니다. 트래픽은 Redis에서 처리할 수 있는 것보다 더 많은 명령이 노드로 전송되는 경우 관리되며 엔진의 안정성과 최적의 작동을 유지하는 데 사용됩니다. 데이터 포인트가 1이면 노드가 제공되는 워크로드에 대해 적게 크기 조정되었음을 나타낼 수 있습니다. 부울

EngineCPUUtilization 가용성

다음에 나열된 AWS 리전은 지원되는 모든 노드 유형에서 사용할 수 있습니다.

리전(Region) 리전 이름
us-east-2 미국 동부(오하이오)
us-east-1 미국 동부(버지니아 북부)
us-west-1 미국 서부(캘리포니아 북부)
us-west-2 미국 서부(오리건)
ap-northeast-1 아시아 태평양(도쿄)
ap-northeast-2 아시아 태평양(서울)
ap-northeast-3 아시아 태평양(오사카)
ap-east-1 아시아 태평양(홍콩)
ap-south-1 아시아 태평양(뭄바이)
ap-southeast-1 아시아 태평양(싱가포르)
ap-southeast-2 아시아 태평양(시드니)
ap-southeast-3 아시아 태평양(자카르타)
ca-central-1 캐나다(중부)
cn-north-1 중국(베이징)
cn-northwest-2 중국(닝샤)
me-south-1 중동(바레인)
eu-central-1 유럽(프랑크푸르트)
eu-west-1 유럽(아일랜드)
eu-west-2 유럽(런던)
eu-west-3 EU(파리)
eu-south-1 유럽(밀라노)
af-south-1 아프리카(케이프타운)
eu-north-1 유럽(스톡홀름)
sa-east-1 남아메리카(상파울루)
us-gov-west-1 AWS GovCloud(미국 서부)
us-gov-east-1 AWS GovCloud(미국 동부)

다음은 info commandstats에서 파생된 몇 가지 유형의 명령 모음입니다. commandstats 섹션에서는 호출 수, 이러한 명령에 의해 소비된 총 CPU 시간, 명령 실행당 소비된 평균 CPU 등을 포함한 명령 유형에 따른 통계를 제공합니다. 각 명령 유형에 다음 행이 추가됩니다. cmdstat_XXX: calls=XXX,usec=XXX,usec_per_call=XXX

다음에 나열된 대기 시간 지표는 Redis INFO의 commandstats 통계를 사용하여 계산됩니다. 이러한 지표는 delta(usec)/delta(calls) 방식으로 계산됩니다. delta는 1분 이내의 차이로 계산됩니다. 대기 시간은 ElastiCache에서 명령을 처리하는 데 걸리는 CPU 시간으로 정의됩니다. 데이터 계층화를 사용하는 클러스터의 경우 SSD에서 항목을 가져오는 데 걸리는 시간은 이러한 측정에 포함되지 않습니다.

사용 가능한 명령의 전체 목록은 Redis 설명서의 redis 명령을 참조하세요.

지표 설명 Unit
ClusterBasedCmds 클러스트 기반 명령 총 수입니다. 이 지표는 클러스터(commandstats, cluster slot, 등)를 기반으로 실행되는 모든 명령을 합산하여 Redis cluster info 통계에서 파생됩니다. 개수
ClusterBasedCmdsLatency 클러스터 기반 명령의 대기 시간입니다. 마이크로초
EvalBasedCmds EVAL 기반 명령의 총 명령 수. 이 수는 eval, evalsha를 합산하여 Redis commandstats 통계에서 나왔습니다. 개수
EvalBasedCmdsLatency eval 기반 명령의 대기 시간입니다. 마이크로초
GeoSpatialBasedCmds geospatial 기반 명령의 총 명령 수입니다. 이 수는 Redis commandstats 통계 자료에서 나왔습니다. 이 수는 모든 geo 유형의 명령(geoadd, geodist, geohash, geopos, georadiusgeoradiusbymember)을 합산하여 계산됩니다. 개수
GeoSpatialBasedCmdsLatency geospatial 기반 명령의 대기 시간입니다. 마이크로초
GetTypeCmds read-only 유형 명령의 총 건수. 이 수는 read-only 유형의 모든 명령(get, hget, scard, lrange 등)을 합산하여 commandstats 통계에서 나왔습니다. 개수
GetTypeCmdsLatency 읽기 명령의 지연 시간. 마이크로초
HashBasedCmds 해시 기반 명령 총 수. 이 지표는 1개 이상의 해시(hget, hkeys, hvals, hdel 등)를 기반으로 실행되는 모든 명령을 합산하여 Redis commandstats 통계에서 파생됩니다. 개수
HashBasedCmdsLatency 해시 기반 명령의 지연 시간. 마이크로초
HyperLogLogBasedCmds HyperLogLog 기반 명령 총 건수. 이 수는 pf 유형의 모든 명령(pfadd, pfcount, pfmerge 등)을 합산하여 commandstats 통계에서 나왔습니다. 개수
HyperLogLogBasedCmdsLatency HyperLogLog 기반 명령의 대기 시간입니다. 마이크로초
JsonBasedCmds JSON 기반 명령 총 수입니다. 이 지표는 1개 이상의 JSON 문서 객체를 기반으로 실행되는 모든 명령을 합산하여 Redis commandstats 통계에서 파생됩니다. 개수
JsonBasedCmdsLatency 하나 이상의 JSON 문서 객체를 기반으로 실행되는 모든 명령의 Delta[Usec]/Delta[Calls]로 계산된 총 대기 시간(서버측 CPU 시간)을 표시합니다. 마이크로초
KeyBasedCmds 키 기반 명령 총 수. 이 수는 여러 데이터 구조(del, expire, rename 등) 상에서 1개 이상의 키에서 작동하는 모든 명령을 합산하여 Redis commandstats 통계에서 나왔습니다. 개수
KeyBasedCmdsLatency 키 기반 명령의 지연 시간. 마이크로초
ListBasedCmds 목록 기반 명령 총 수. 이 지표는 1개 이상의 목록(lindex, lrange, lpush, ltrim 등)을 기반으로 실행되는 모든 명령을 합산하여 Redis commandstats 통계에서 파생됩니다. 개수
ListBasedCmdsLatency 목록 기반 명령의 지연 시간. 마이크로초
PubSubBasedCmds pub/sub 기능의 명령 총 수. 이 수는 Pub/sub 기능에 사용되는 모든 명령(psubscribe, publish, pubsub, punsubscribe, subscribeunsubscribe)을 합산하여 Redis commandstats 통계에서 나왔습니다. 개수
PubSubBasedCmdsLatency pub/sub 기반 명령의 대기 시간입니다. 마이크로초
SetBasedCmds 집합 기반 명령 총 수. 이 지표는 1개 이상의 집합(scard, sdiff, sadd, sunion 등)을 기반으로 실행되는 모든 명령을 합산하여 Redis commandstats 통계에서 파생됩니다. 개수
SetBasedCmdsLatency 집합 기반 명령의 지연 시간. 마이크로초
SetTypeCmds write 유형의 총 명령 건수. 이 수는 데이터(set, hset, sadd, lpop 등)에서 작동하는 모든 mutative 유형의 명령을 합산하여 Redis commandstats 통계에서 나왔습니다. 개수
SetTypeCmdsLatency 쓰기 명령의 지연 시간. 마이크로초
SortedSetBasedCmds 정렬된 집합 기반 명령 총 수. 이 지표는 1개 이상의 정렬된 집합(zcount, zrange, zrank, zadd 등)을 기반으로 실행되는 모든 명령을 합산하여 Redis commandstats 통계에서 파생됩니다. 개수
SortedSetBasedCmdsLatency 정렬 기반 명령의 지연 시간. 마이크로초
StringBasedCmds 문자열 기반 명령 총 수. 이 지표는 1개 이상의 문자열(strlen, setex, setrange 등)을 기반으로 실행되는 모든 명령을 합산하여 Redis commandstats 통계에서 파생됩니다. 개수
StringBasedCmdsLatency 문자열 기반 명령 지연 시간 마이크로초
StreamBasedCmds 총 스트림 기반 명령 수. 이 지표는 1개 이상의 스트림 데이터 형식(xrange, xlen, xadd, xdel 등)을 기반으로 실행되는 모든 명령을 합산하여 Redis commandstats 통계에서 파생됩니다. 개수
StreamBasedCmdsLatency 스트림 기반 명령의 지연 시간. 마이크로초