시스템 용량별 운영 및 경고 → 관리
시스템 용량 경고
1) 왜 필요한가
용량 성 경보는 사건이 발생하기 오래 전에 기술적 한계에 접근하는 것을 경고합니다. "우리는 한도의 80% 입니다. 이제 확장 할 시간입니다. "식료품 사업의 경우 누락 된 베팅/예금, 세션 삭감, 라이브 게임 지연 및 제공자 실패 = 수익 손실, 평판, 벌금 및 리베이트와 같은 돈에 관한 것입니다.
목표:- 피크로드 (이벤트, 토너먼트, 스트림, 대규모 캠페인) 를 견딜 수 있습니다.
- 정시에 자동 스케일링을 켜고 용량 향상을 계획하십시오.
- SLO/돈이 위험에 처했을 때 소음을 줄이고 "비즈니스" 를 시작하십시오.
- 런북을 통해 엔지니어에게 정확한 권장 사항을 제
2) 기본 개념
용량: 최대 안정적인 처리량 (RPS/TPS, 연결, IOPS, 처리량).
헤드 룸: 현재 부하와 한계 사이의 마진.
SLO/SLA: 목표 수준의 가용성/응답 시간; 경고는 "SLO 인식" 이어야합니다.
번 레이트: SLO 예산 오류/대기 시간을 "연소" 하는 속도.
높음/낮음 워터 마크: 작업 및 자동 복구를위한 상위/하위 레벨.
3) 신호 아키텍처 및 데이터 소스
원격 측정: 메트릭 (Prometheus/OTel), 로그 (ELK/ClickHouse), 흔적 (OTel/Jaeger).
레이어 접근 방식: 레이어 별 경고 (Edge → API → 비즈니스 서비스 → 대기열/스트림 → 데이터베이스/캐시 → 파일/객체 저장 → 외부 공급자).
맥락: 플래그, 릴리스, 마케팅 캠페인, 토너먼트, 지리 정렬 기능.
사건 타이어: Alertmanner/PagerDuty/Opsgenie/Slack; 런북 및 에스컬레이션 매트릭스에 바인딩.
4) 계층 별 키 지표 (모니터링 대상 및 이유)
가장자리/L7
RPS, 95-/99- 백분위 수 대기 시간, 오류율 (5xx/4xx), 열린 연결.
속도 제한/할당량을 떨어 뜨리십시오.
API를위한 백엔드/프론트 렌드
작업자/작업 풀별 포화, 대기열 요청, 다운 스트림으로의 타임 아웃.
분해 분율 (폴백, 회로 차단기).
대기열/스트리밍 (Kafka/Rabbit/Pulsar)
지연/소비자 지연, 백 로그 성장률, 처리량 (msg/s, MB/s).
파티션 스큐, 재조정 이탈, ISR (카프카 용), 재 트레이/할아버지-나중에.
비동기 근로자
작업 시간 초과, 대기열 길이, 만료 된 SLA 작업 백분율.
수영장에서 포화 CPU/메모리/FD.
캐시 (Redis/Memcached)
적중 비율, 대기 시간, 퇴거, 사용 된 메모리, 연결된 클라이언트/ops/s.
클러스터: 슬롯/복제품, 장애 조치 이벤트.
확장 (PostgreSQL/MySQL/ClickHouse)
활성 연결 대 최대, 잠금 대기, 복제 지연, 버퍼/캐시 적중.
IOPS, 읽기/쓰기 대기 시간, 체크 포인트/플러시, 팽창/조각화.
객체/파일 저장소
PUT/GET 대기 시간, 4xx/5xx, 출구, 요청/초, 공급자 제한.
외부 제공 업체 (결제/LCC/게임 제공자)
TPS 제한, QPS 창, 오류율/타임 아웃, 다시 트레이 대기열, "통화 비용".
인프라
노드/포드/ASG의 CPU/메모리/FD/IOPS/네트워크 채도.
HPA/VPA 이벤트, 보류중인 포드, 컨테이너 OOM/Throttling.
5) 용량 성 경고의 종류
1. 정적 임계 값
간단하고 간단한: 'db _ 연결> 80% max'. 비콘 신호로 좋습니다.
2. 적응 형 (동적) 임계 값
계절성과 추세 (롤링 윈도, STL 분해) 를 기반으로합니다. "이 시간/요일 동안 비정상적으로 높은 잡기" 를 허용하십시오.
3. SLO 지향 (연소율)
오류 예산 식사율이 X 시간 지평에서 SLO를 위태롭게 할 때 트리거됩니다.
4. 예후 (예측 경고)
"현재 추세에서 20 분 후에 대기열은 90% 에 도달합니다". 짧은 창에서 선형/견고성/선지자 같은 예측이 사용됩니다.
5. 다중 신호
조합으로 트리거하기: 'queu _ lag q' + '소비자 _ cpu 85%' + '최대 자동 검사' → "수동 개입이 필요합니다".
6) 임계 값 정책 및 소음 방지
높음/낮음 워터 마크:- 위: 경고 70-75%, 크레타 85-90%. 다운: 히스테리시스 5-10 pp "임계 값을 보지 않기 위해"
- 'for: 5m' for 기준 ',: 10-15m', 경고. 야간 모드: 페이징없이 채팅하는 데 중요하지 않은 경로.
- 사건 카드를 생산하지 않도록 서비스/클러스터/지오별로 그룹화하십시오.
- KYC 공급자가 없어지고 API 오류가 통합 소유자에게 페이징하기 때문인 경우 모든 소비자가 아닙니다.
- 재고 기간 동안 "예상 성장" 에 대한 소음 임계 값을 높이지 만 SLO 경고는 그대로 둡니다.
7) 규칙 예 (pseudo-Prometheus)
DB 연결:
ALERT PostgresConnectionsHigh
IF (pg_stat_activity_active / pg_max_connections) > 0. 85
FOR 5m
LABELS {severity="critical", team="core-db"}
ANNOTATIONS {summary="Postgres connections >85%"}
한계에서 Kafka lag + 자동 스케일링:
ALERT StreamBacklogAtRisk
IF (kafka_consumer_lag > 5_000_000 AND rate(kafka_consumer_lag[5m]) > 50_000)
AND (hpa_desired_replicas == hpa_max_replicas)
FOR 10m
LABELS {severity="critical", team="streaming"}
연소 속도 SLO (API 대기 시간):
ALERT ApiLatencySLOBurn
IF slo_latency_budget_burnrate{le="300ms"} > 4
FOR 15m
LABELS {severity="page", team="api"}
ANNOTATIONS {runbook="wiki://runbooks/api-latency"}
Redis 메모리와 evikshens:
ALERT RedisEvictions
IF rate(redis_evicted_keys_total[5m]) > 0
AND (redis_used_memory / redis_maxmemory) > 0. 8
FOR 5m
LABELS {severity="warning", team="caching"}
결제 제공 업체-한도:
ALERT PSPThroughputLimitNear
IF increase(psp_calls_total[10m]) > 0. 9 psp_rate_limit_window
FOR 5m
LABELS {severity="warning", team="payments", provider="PSP-X"}
8) SLO 접근 및 비즈니스 우선 순위
신호에서 비즈니스 영향까지: 용량 경고는 SLO (특정 게임/geo/GGR 메트릭, 예금 변환) 에 대한 위험을 참조해야합니다.
다단계: 통화 중 서비스에 대한 경고; 크레타 - 도메인 소유자 페이지; SLO-drop-주요 사건 및 팀 "요약" 채널.
분해 기능: 자동로드 감소 (부분 읽기 전용, 무거운 기능 감소, 잭팟 방송의 빈도 감소, 라이브 게임에서 "무거운" 애니메이션 끄기).
9) 자동 스케일링 및 "올바른" 트리거
HPA/VPA: CPU/메모리뿐만 아니라 비즈니스 메트릭 (RPS, 큐 지연, p99 대기 시간) 을 대상으로합니다.
워밍업 타이밍: 콜드 스타트 및 공급자 제한 (ASG 스핀 업, 컨테이너 빌더, 워밍업 캐시) 을 고려하십시오.
Guardrails: 눈사태와 같은 오류의 증가에서 조건을 중지하십시오. "scalim 문제" 로부터 보호.
용량 플레이 북: 파편/파티/복제본을 추가하는 장소 및 방법, 지역별 트래픽을 재분배하는 방법.
10) 프로세스: 설계에서 작동까지
1. 제한 매핑: 각 계층 (최대 콘, IOPS, TPS, 할당량 제공 업체) 에 대한 "진정한" 병목 현상 제한을 수집합니다.
2. 예측 변수 메트릭 선택: 어떤 신호가 먼저 "N 분 안에 휴식" 을 나타냅니다.
3. 임계 값 설계: 고/저 + SLO- 번 + 화합물.
4. 각 크리에이티브에 대한 런북: 진단 단계 ("열어야 할 것", "명령", "확대 할 곳"), 세 가지 동작 옵션: 빠른 순회, 스케일링, 열화.
5. 테스트: 로드 시뮬레이션 (혼돈/게임 일), 건조한 경고 시작, 노이즈 방지 확인.
6. 검토 및 채택: 신호 소유자 = 서비스 소유자. 소유자가 없습니다-페이지가 없습니다.
7. 회고전 및 튜닝: 허위/누락에 대한 주간 분석; 메트릭 "MTTA (ack), MTTD, MTTR, 노이즈/신호 비율".
11) 반 패턴
CPU> 90% 공황: 대기 시간/대기열과 상관 관계없이 정상일 수 있습니다.
"모두를위한 하나의 임계 값": 다른 지역/시간 영역-다른 트래픽 프로파일.
런북없이 경고: 명확한 동작이없는 페이지가 호출 중입니다.
제공자에 대한 실명: 외부 할당량/제한은 종종 스크립트 (PSP, KYC, 사기 방지, 게임 제공 업체) 를 가장 먼저 "중단" 합니다.
히스테리시스 없음: 80 %/79% 경계에서 "톱질".
12) iGaming/financial 플랫폼의 기능
스케줄 피크: 프라임 타임, 토너먼트 결승, 메이저 경기; 대상 복제본을 홍보하고 캐시를 미리 채 웁니다.
라이브 스트림 및 잭팟: 방송 이벤트 버스트 → 중개인/웹 사이트 제한
지불 및 KYC: 공급자 창, 사기 방지 점수; 예비 경로 및 "유예 모드" 예금을 유지하십시오.
지리 균형: 로컬 제공 업체 실패-헤드 룸이있는 인근 지역으로 트래픽을 전환하지 못합니다.
책임: 베팅/잭팟을 잃을 위험이 있음-도메인 팀 + 비즈니스 경고에 대한 즉석 페이지.
13) 대시 보드 (최소 세트)
용량 개요: 레이어 별 헤드 룸, 상위 3 개 위험 영역, 연소 속도 SLO.
스트림 및 대기열: 지연, 백 로그 성장, 소비자 채도, HPA 상태.
DB & Cache: 연결, repl-lag, p95/p99 대기 시간, 적중률, 퇴거.
제공자: TPS/창/할당량, 타임 아웃/오류, 통화 비용.
릴리스/기능 컨텍스트: 커브 옆에 릴리스/phicheflags.
14) 구현 점검표
- "진정한" 한계 및 소유자 목록.
- 예측 메트릭스 맵 + 계층 간 연관성.
- 정적 임계 값 + 히스테리시스.
- 중요한 경로에 대한 SLO 번 경고 (예금, 내기, 라이브 게임 출시).
- 대기열/스트림/연결에 대한 예측 경고.
- 창의 억제/유지 관리; 소음 방지 정치.
- 런북 '및 명령, 그래프, 저하 필터가 있습니다.
- 오 탐지 및 튜닝에 대한 주간 분석.
- 마케팅 캠페인 및 이벤트 일정 계정.
15) 예제 런북 패턴 (약칭)
신호: 'StreamBacklogAtRisk'
목표: 지연 성장> 천만 및 치료 지연> 5 분 방지
진단 (3-5 분):1. 구덩이에서 'hpa _ watch/max', 스로틀/oom을 확인하십시오.
2. 보기 'rate (lag)', 분할 (skew).
3. 체크 브로커 (ISR, 복제되지 않은 네트워크).
동작:- 소비자 복제품을 + N 증가시키고 최대 비행을 늘리십시오.
- "중요한 주제" 에 우선 순위 풀을 사용하십시오
- 이차 치료/농축 빈도를 일시적으로 줄입니다.
- '최대 ASG' 인 경우-클라우드에서 일시적으로 향상을 요청하십시오. 병렬로-무거운 함수를 분해 할 수 있습니다.
- 롤백: '지연 <1 million' 15 분 후 일반 트래픽 프로파일로 돌아갑니다.
- 에스컬레이션: Kafka 클러스터 소유자, SRE 플랫폼.
16) KPI 및 신호 품질
적용 범위: 용량 성 경보로 닫힌 중요한 경로의%.
소음/신호: 통화/주당 허위 페이지가 1 개를 넘지 않습니다.
MTTD/MTTR: 용량 성 사고는 SLO가 발생하기 5 분 전에 감지됩니다.
사전 저장: 예방 된 사고 수 (사후).
17) 빠른 시작 (보수적 인 불이행)
DB: 연결/IOPS/lat의 75% 경고; 크리스탈 85%, 히스테리시스 8-10 pp
캐시: '적중 <0. 9 '그리고' 퇴거> 0 '> 5 분-경고;' (PHP 3 = 3.0.6, PHP 4)
대기 시간: '지연' 높이> 평균 30d + 'hpa at max' -크레타.
API: 'p99> SLO1. 3 '10 분-경고;' 연소율> 4 '15 분-크레타.
제공자: '처리량> 90% 할당량' -경고; '타임 아웃> 5%' -크레타.
18) FAQ
Q: 왜 "CPU> 80%" 가 아닌가?
A: 대기 시간/큐잉 컨텍스트가 없으면 소음입니다. CPU 자체는 위험과 같지 않습니다.
Q: 적응 형 임계 값이 필요합니까?
A: 예, 일일/주간 계절성-오 탐지를 줄입니다.
Q: 마케팅/이벤트를 고려하는 방법?
A: 캠페인 일정 → 그래프 + 임시 노이즈 방지 조정에 주석이 있지만 SLO 경고는 건드리지 마십시오.