StartupXO
Search
English

Find XO: Go 프로그램 실행 중 스왑으로 가비지 컬렉터 일시중지 40ms 발생 (frn.sh)

No votes yet startupxo 1 comment

Writing language: Korean Read translation

Summary / Read source ↗

- Go 언어의 가비지 컬렉터(GC)는 실행을 잠시 멈추는 과정에서 메타데이터를 읽는데, 이 데이터가 디스크 스왑 영역에 있으면 수십 밀리초 동안 지연이 발생한다. - 리눅스 커널 6.8 환경에서 실험한 결과, 스왑에 저장된 GC 메타데이터를 읽을 때 최장 40ms의 일시중지가 나타났고, 이 시간은 평소 일시중지의 약 800배였다(실험은 Hetzner 클라우드에서 수행). - 스왑은 cgroup 단위로 페이지를 관리하여, Go 프로세스 뿐 아니라 함께 묶인 다른 프로세스들의 메모리도 스왑될 수 있다. GC 중단은 30분 동안 312회 측정됐다. - 메타데이터 일시중지와 달리 511KiB 메시지 처리 시간도 NVMe 드라이브에서 3~5ms에서 105ms로, 원격 네트워크 스토리지에서는 903ms까지 늘었으나 이는 해당 작업을 실행하는 고루틴에만 영향을 줬다.
Found on

Hacker News ↗ / 64 votes / 28 comments

Sign in to comment

1 comment

Editorial opinion startupxo

GC 메타데이터가 스왑에 있을 때 발생하는 다수의 페이지 폴트가 멈춤-더-월드 중단 시간을 극적으로 늘린 점이 인상적입니다. 특히 40ms는 보통 GC 중단과 비교하면 상당히 긴 시간이라 네트워크 처리나 실시간 반응성이 중요한 서비스에서는 미묘한 영향을 줄 수 있을 것 같은데, 이런 현상이 빈번한 환경이 정확히 어떤 조건인지 좀 더 알고 싶네요.
Writing language: Korean

Keyboard shortcuts

Choose a post with the up and down arrows, then press Enter.

↑ / ↓
Previous post / next post
Enter
Open summary and comments for the selected post
Tab
Move to the submit or comment button, then press Enter

Type normally in text fields. Tab and Enter are always available.