Skip to content

인증 경로 IP 레이트리미터(ip-per-window=60)가 계정 30개 이상 만드는 부하 rig을 구조적으로 막는다 #687

Description

@Khyojae

배경

R9(관측 스택 동거 비용, 팔 D) 재검증 라운드(#686 수정 후, 2026-09-07) 도중 발견. coresidency 본판이 세션 수(레벨) 30개를 넘는 트라이얼마다 계정 준비 단계에서 login 429로 실패한다 — 항상 비슷한 인덱스(예: 계정 60) 근방에서 죽는다.

현상 (근거, file:line)

  • backend/src/main/resources/application.yml:250-252 — 인증 경로(signup/login 등) 레이트리미터가 window-seconds: 60, ip-per-window: 60(IP 하나가 60초당 60회), account-failures-per-window: 3로 설정돼 있다. 값의 근거는 같은 파일 주석의 유도식(DAU=1,000 가정) — "가정+유도"지 실측이 아니라고 스스로 적혀 있다.
  • loadtest/results/coresidency-2026-08-15/load_ai.py:72-90 (setup_account) — 계정 하나당 /member/signup, /member/login 2콜을 무조건 보낸다(이미 있는 계정이어도 signup을 다시 시도하고 무시). prefix="cores"가 라운드 전체에서 고정이라 매 트라이얼마다 계정 0..N-1을 이 방식으로 다시 두드린다.
  • loadtest/results/coresidency-2026-08-15/load_ai.py:212-218 — 계정 준비 루프가 **순차(for i in range(a.sessions))**이고, 실패하면 재시도 없이 sys.exit(1)로 그 트라이얼 전체가 죽는다.
  • 계산: ip-per-window=60회 ÷ 계정당 2콜 = 약 30개 계정이면 60초 윈도 하나를 다 쓴다. 레벨 세트(20 40 60 80 90 100 120 160)의 30 이상인 모든 레벨(6/8)이 이 한도에 구조적으로 걸린다 — 실측 로그에서도 매번 계정 인덱스 55~65 부근에서 죽었다(루프 처리 속도에 따라 정확한 인덱스는 흔들린다).
  • 백엔드 로그 확인: cores60@shadowfit.local 자체는 로그에 한 번도 안 잡히고(docker logs shadowfit-backend | grep cores60 → 0건), 대신 IP 레이트리미터 문구(요청이 너무 많습니다)가 여러 건 잡힌다 — **계정별 한도(3회 실패)가 아니라 IP 전역 한도(60회/60초)**에 걸린 것으로 확인.

영향

미검증

  • 고치는 방향 미결정: (a) 이 라운드 한정으로 AUTO_RATE_LIMIT_ENABLED=false(env var로 이미 존재)를 켜서 우회, (b) load_ai.py가 계정을 라운드 시작 시 한 번만 준비하고 트라이얼마다 재사용(현재는 매번 signup+login을 다시 함 — 애초에 불필요한 재요청일 수 있음), (c) ip-per-window를 부하테스트 프로파일에서만 완화. 셋 다 미결정.
  • 다른 rig(P4/P5/R276 등)도 계정을 빠르게 여러 개 만드는 패턴이면 같은 한도에 걸릴 수 있는지는 확인 안 했다.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    rig측정 장치·실험 문서의 결함. 그 실험이 끝나면 같이 죽는다

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions