2016-12-15 4 views
1

우리는 우리의 응용 프로그램에 AWS Elasticache를 사용하고 있습니다. 처음에는 권장 임계 값을 기반으로 CPU 경보 임계 값을 22 % (4 코어 노드, 따라서 효과적으로 90 % CPU 사용)로 설정했습니다. 그러나 종종 CPU 사용률이 25 %를 훨씬 넘는 28 %, 34 % 같은 값으로 나타납니다. 레디 스 생각 나는 방법이 이론적으로 가능하다는 것을 이해하려고 노력하고 무엇AWS Elasticache CPU 사용률이 100 %를 초과했습니다

는 단일 스레드인가? 이 문제가 발생할 수 있다고 생각할 수있는 유일한 방법은 다른 코어에서 유지 관리 작업이 발생하여 CPU 사용률이 25 %를 넘을 수있는 경우입니다. 클러스터의로드가 높을지라도 CPU 사용량을 25 %로 제한해야하며 클라이언트에 대한 시간 초과가 시작될 수 있습니다. 어떤 사람이 단일 스레드 Redis 인스턴스의 CPU 사용이 100 % CPU 사용률을 초과 할 수있는 시나리오가 무엇인지 이해할 수 있습니까?

답변

1

Redis 이벤트 루프는 단일 스레드입니다. Redis 프로세스 자체가 아닙니다. 몇 가지 I/O 바운드 작업을 오프라인 화하기위한 몇 가지 추가 스레드가 있습니다. 이제이 스레드는 CPU를 소비하지 않아야합니다. 그러나

, 레디 스도 포크의 자식 프로세스는 AOF 재 작성 또는 RDB 저장과 같은 무거운 의무 작업을 돌봐합니다. 일반적으로 각 포크 프로세스는 Redis 이벤트 루프 소비량 위에 CPU 코어의 100 %를 소비합니다 (I/O에 의해 작업 속도가 느려지는 경우 제외).

당신이 CPU의 소비가 정기적으로 높은 발견하면 잘못된 AOF 및 RDB 구성에 (즉 레디 스 인스턴스가 AOF를 다시 작성하거나 너무 자주 덤프를 생성) 때문에, 그것은있을 수 있습니다.

관련 문제