WSL3, WSL2 대비 최대 61% 성능 향상

원제: WSL3 Performance is about 5-60% faster than WSL2 depending on the workload

왜 중요한가

WSL3의 메모리·스케줄러 개선은 Windows에서 Linux 개발 워크로드를 실행하는 개발자에게 실질적 생산성 향상을 제공한다.

2026년 10월, 개발자 Tony Metzidis가 WSL 2.6.3.0(커널 6.6.87)과 WSL 3.0.2.0(커널 6.18.40)을 Intel Core i5-8500T, 16GB RAM 환경에서 벤치마크 비교한 결과, 메모리 대역폭은 최대 61%, 컨텍스트 스위치 지연은 11% 개선됐으며 실제 Go 컴파일 속도는 약 4% 빨라진 것으로 나타났다.

Microsoft가 WSL 3.x 스택을 출시하며 기본 가상화 런타임을 교체하고 게스트 커널을 6.6 LTS에서 6.18로 업그레이드했다. 마케팅 문구의 실효성을 직접 확인하기 위해 Metzidis는 Alpine Linux 3.23.0 환경에서 표준 perf bench 및 GoReleaser 컴파일 워크로드로 두 버전을 비교했다.

가장 두드러진 결과는 메모리 대역폭으로, glibc 기본 memcpy(1GB) 기준 7.84 GB/s에서 12.64 GB/s로 61.35% 상승했다. 커널 명령줄의 `page_reporting.page_reporting_order=5` 설정이 Hyper-V 동적 메모리 회수 인터페이스와의 하이퍼바이저 트랩 빈도와 페이지 테이블 탐색 오버헤드를 줄인 덕분이다.

스케줄러 측면에서는 pipe 기반 프로세스 핑퐁이 12.68% 향상됐고, Hackbench(20그룹, 800태스크) 실행 시간은 14.5초에서 13.0초로 10% 단축됐다. 커널 6.18의 스케줄러 개선과 Hyper-V VMBus 합성 인터럽트 처리 최적화가 주된 원인으로 분석됐다.

반면 getppid() 기반 단순 시스콜 전환 지연은 3.83% 개선에 그쳤다. 8세대 Intel 하드웨어에서 링 전환 비용은 CPU 아키텍처 한계에 종속되어 소프트웨어 튜닝 여지가 적기 때문이다.

실전 워크로드인 GoReleaser 전체 빌드(캐시 클리어 후)에서는 벽시계 시간이 3분 11초에서 3분 4초로 3.91% 단축됐다. 더 주목할 지표는 커널 시간(sys)으로, 57.39초에서 48.22초로 15.98% 감소해 시스템 콜 집약적 작업에서 실질적인 이득이 확인됐다.

출처

tonym.us — 원문 읽기 →