WSL 3, 커널 6.18로 업그레이드하며 성능 3~60% 향상
원제 WSL3 Performance is about 5-60% faster than WSL2 depending on the workload
140 포인트댓글 97
Key Point
메모리 대역폭 61% 향상과 커널 오버헤드 16% 감소는 로컬 데이터베이스나 컨테이너 워크로드의 성능에 직접 영향을 미치므로, 특정 워크로드의 개발자는 반드시 확인해야 할 성능 변화를 제시한다.
핵심 요약
- Microsoft가 WSL 3.x 스택 출시와 함께 기본 가상화 런타임을 개선하고 리눅스 커널을 6.6 LTS에서 6.18로 업데이트했다.
- WSL 2.6.3.0(커널 6.6.87.2)과 WSL 3.0.2.0(커널 6.18.40.1)을 Alpine Linux에서 실제 벤치마크로 비교한 결과, 메모리 대역폭이 7.84 GB/s에서 12.64 GB/s로 61.35% 증가했다.
- 커널 primitives 수준에서 스케줄러 지연은 약 11% 감소했으며, 시스템콜 오버헤드도 약 4% 개선되었다.
- 실제 Go 컴파일러 워크로드(GoReleaser)에서는 전체 컴파일 시간이 191초에서 183초로 약 3.91% 단축되었고, 커널 시간(sys)은 57초에서 48초로 15.98% 감소했다.
- 개선의 주 원인은 WSL 3.x 커널 명령줄의 page_reporting.page_reporting_order=5 설정으로, 이는 Hyper-V 메모리 회수 인터페이스와의 상호작용 시 하이퍼바이저 트랩 빈도와 페이지 테이블 오버헤드를 줄인다.
- WSL 3.x는 메모리 집약적 시스템이나 Unix 도메인 소켓을 통해 페이로드를 주고받는 마이크로서비스에서 특히 효과적이지만, 계산 위주의 컴파일러 같은 CPU 제약 워크로드에서는 커널 시간 개선에도 불구하고 전체 빌드 시간은 vCPU 개수와 클록 속도가 병목이 된다.