Skip to content

Fix: 캐시 표본 점검이 부하 때문에 캐시에 있는 표본을 식었다고 오판함 - #202

Merged
DO0OG merged 1 commit into
mainfrom
201-fix-cache-probe-false-cold
Nov 14, 2026
Merged

DO0OG merged 1 commit into
mainfrom
201-fix-cache-probe-false-cold

Conversation

@DO0OG

@DO0OG DO0OG commented Nov 14, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • 캐시 표본 점검이 표본을 느린 것으로 세는 조건에, 읽는 시간이 기준을 넘는 것에 더해 그 읽기 동안 시스템의 페이지 읽기 누계가 읽은 쪽 수의 1/4(하한 16쪽, 표본이 더 작으면 그 쪽 수) 이상 늘었는지를 더했습니다 (csharp/src/AsterCache.Windows/CacheProbe.cs).
  • 누계를 읽을 수 없으면 이전처럼 시간만으로 판정합니다.
  • 4 KiB 표본을 쓰는 로딩 경계 감시는 이전처럼 시간만으로 판정합니다. 1쪽짜리 조건은 거르는 힘이 없기 때문입니다 (csharp/src/AsterCache.Service/LoadBoundary.cs).
  • 표본을 고르는 방법, 읽는 양과 위치, 식었다고 보는 기준(8곳 중 2곳), 로그 문구는 그대로입니다.
  • docs/AUTO_MODE, docs/SOLAR, docs/FAQ 의 영문·한국어 문서에 반영했습니다.

알아 둘 점

  • 근거는 설치본 로그입니다. cache refresh skipped, the samples are cold (2/8 over 0.8 ms) … since the ladder 4 min ago: 806 MiB repurposed of 5367 MiB ahead 가 찍힌 지 1분 48초 뒤, 같은 게임의 목록 전체가 디스크 읽기 없이 다시 만져졌습니다(그 사이 재예열 없음). 표본 점검은 다른 게임의 예열 스트림이 시작된 직후, 다른 프로세스들이 모든 코어를 쓰는 상태에서 돌았습니다.
  • 같은 PC 에서 버퍼드 읽기는 캐시에 있으면 페이지 읽기가 0쪽, 없으면 1 MiB 에 256쪽 늘었습니다.
  • 표본의 25% 미만만 캐시에서 빠진 경우는 이제 느린 표본으로 세지 않습니다. 다른 프로세스의 읽기 몰림과 겹치는 오판은 남을 수 있습니다.
  • 네트워크·가상 볼륨에서 이 누계가 오르는지는 확인하지 않았습니다.
  • 오판이 설치본에서 줄었는지는 아직 확인하지 않았습니다.
  • 새 조건을 뺀 코드로 되돌리면 새 시험 6건이 실패하는 것을 확인했습니다.

Test plan

  • dotnet build csharp -c Release -m:1 경고 0, 오류 0
  • dotnet test csharp/tests/AsterCache.Tests -c Release --no-build --filter "Category!=Live" 4,570건 통과
  • dotnet format csharp --verify-no-changes 종료 코드 0
  • git diff --check 종료 코드 0
  • CI build-test 통과: https://github.com/DO0OG/AsterCache/actions/runs/43577861392

Closes #201

표본 점검은 표본을 읽는 시간만 재서 0.8 ms 를 넘으면 느린 표본으로 셌습니다.
다른 프로세스가 CPU 를 쓰는 동안에는 읽는 스레드가 밀려 캐시에 있는 표본도
기준을 넘었고, 그러면 표식이 지워지고 캐시에 있는 목록을 디스크에서 다시
읽었습니다.

- 느린 표본으로 세려면 읽는 동안 시스템의 페이지 읽기 누계도 읽은 쪽 수의 1/4(하한 16쪽) 이상 늘어야 함
- 누계를 읽을 수 없으면 이전처럼 시간만으로 판정함
- 4 KiB 표본을 쓰는 로딩 경계 감시는 이전처럼 시간만으로 판정함
- `docs/AUTO_MODE`, `docs/SOLAR`, `docs/FAQ` 의 영문·한국어 문서에 반영함

Issues #201
@DO0OG
DO0OG merged commit ba97b57 into main Nov 14, 2026
1 check passed
@DO0OG
DO0OG deleted the 201-fix-cache-probe-false-cold branch November 14, 2026 09:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fix: 캐시 표본 점검이 부하 때문에 캐시에 있는 표본을 식었다고 오판함

1 participant