스케줄러는 Valve의 Steam Deck에서 프레임 드롭을 방지하기 위해 원래 개발되었습니다.

Meta가 방대한 규모의 서버군을 위한 개선된 Linux CPU 스케줄러를 탐색했을 때, 그 출발점은 데이터 센터가 아니었습니다. 오히려 휴대용 게이밍 PC였습니다. 최근 도쿄에서 개최된 Linux Plumbers' Conference 기술 강연에서, Meta 엔지니어들은 Valve가 Steam Deck용으로 처음 개발한 저지연성 Linux 스케줄러인 SCX-LAVD를 메시징 백엔드부터 캐싱 서비스에 이르기까지 다양한 서비스를 구동하는 프로덕션 서버에 어떻게 배포하고 있는지 상세히 설명했습니다. 놀라운 결론은 다음과 같습니다. 부하가 걸릴 때 게임의 반응성을 유지하도록 설계된 스케줄러가 대규모 데이터 센터 워크로드에도 탁월하게 적합하다는 것입니다.
일반적으로 CPU 스케줄러는 특정 프로그램이 언제, 어느 CPU 코어에서 실행될지 결정하는 역할을 수행합니다. Linux의 기본 스케줄러는 휴대폰, 노트북, 데스크톱, 서버 등 모든 환경에서 작동해야 하기에 매우 보수적인 특성을 가집니다. 그러나 Meta가 마주한 과제는 달랐습니다. Meta는 수백 개의 CPU 코어, 매우 다양한 워크로드, 그리고 가장 중요한 엄격한 지연 시간 목표를 가진 거대한 시스템들을 운영합니다. 이러한 환경에서는 "어디서든 충분한" 성능만으로는 만족할 수 없습니다. Meta는 모든 서비스에 맞춤 스케줄러를 구축하는 대신, 별도의 수동 조정(hand-tuned configuration) 없이도 자동으로 적응할 수 있는, 모든 환경에 범용적으로 적용 가능한('one size fits most') 기본 스케줄러를 원했습니다. 바로 여기에 SCX-LAVD가 필요했던 것입니다.
SCX-LAVD는 비교적 새로운 Linux 프레임워크인 sched_ext를 기반으로 구축되었는데, 이 프레임워크는 대체 스케줄러가 커널 코드를 대규모로 수정하지 않고도 커널에 플러그인할 수 있게 해줍니다. 쉽게 말해, sched_ext 덕분에 기업들은 리눅스를 포크(fork)하거나 거대한 패치 세트를 관리하는 대신, 다양한 스케줄링 전략을 안전하고 점진적으로 실험할 수 있게 된 것입니다.

LAVD 자체는 'Latency-Aware Virtual Deadline'의 약자이며, 그 이름이 기능적 특징을 암시합니다. 이 스케줄러는 정적 우선순위나 수동적인 힌트에 의존하는 것이 아니라, 작업이 얼마나 자주 수면(sleep)하고, 깨어나고(wake), 블록되는지를 지속적으로 관찰하여 어떤 작업이 지연 시간에 민감한지(latency-sensitive) 추정합니다. 이러한 작업들에는 더 이른 "가상 마감일(virtual deadlines)"이 할당되어, 시스템이 바쁠 때도 적시에 실행될 확률을 높여줍니다.
이러한 접근 방식은 본래 게임 환경에서 동기 부여를 얻었습니다. Steam Deck의 경우, 스케줄링 마감일이 지연되면 프레임 드롭, 버벅거림, 혹은 입력 지연으로 나타납니다. 흥미롭게도 데이터 센터 환경에서도 이와 동일한 실패 양상이 느린 웹 요청, 메시지 지연, 혹은 서비스 수준 목표 미달성으로 나타납니다. 적용 분야는 완전히 다르지만, 근본적으로는 같은 종류의 문제가 발생하는 것입니다.
Meta 엔지니어들은 발표에서 LAVD를 서버급 하드웨어로 확장하는 과정에서 발생한 몇 가지 난관을 설명했습니다. 단일 스케줄링 큐를 공유하는 수십 개의 코어에서는 자원 경합(contention)이 병목 현상을 야기했습니다. 또한, 특정 코어에서만 실행되어야 하는 고정(Pinned) 작업들은 불필요한 간섭을 일으켰으며, 네트워크 중심 서비스는 인터럽트 처리(interrupts)에 과도한 시간을 소요하여 스케줄러의 공정성 계산(fairness accounting) 시스템을 무너뜨렸습니다.

이러한 문제들로 인해 Meta는 LAVD가 작업 큐, 시간 분할(time slices), CPU 계정 처리를 수행하는 방식에 근본적인 변화를 주어야 했습니다. 여러 사례에서 Meta는 캐시 지역성(cache locality)을 보존하거나, 네트워크 인터럽트로 과부하된 코어들을 마치 "속도가 느린" CPU처럼 간주하여 보상하는 로직을 추가했습니다. 결정적으로, 이러한 개선 사항들은 서비스별 구성이나 수동 우선순위 태그 지정이 전혀 필요 없었다는 점입니다. 이것이 바로 Meta에게 LAVD가 핵심적으로 매력적인 지점입니다. 하드 코딩된 규칙이 아닌, 실제 관찰된 행동을 기반으로 스스로 적응하기 때문입니다.
엔지니어들은 또한 "Meta 서버용 스케줄러 최적화가 원래 게임 사용 사례에 악영향을 미치지 않을까"라는 당연한 우려 사항에 대해서도 답변했습니다. 현재까지의 테스트 결과, 변경 사항은 Steam Deck에 대해 중립적이거나 유익하며, 적용되지 않는 기능은 커널 플래그로 간단히 비활성화할 수 있다고 밝혔습니다. 그럼에도 불구하고, 이 실험은 현재 진행 중임을 인정했습니다.
Linux의 발전 과정에서 볼 수 있듯이, 한 분야에서 얻은 기술적 진보는 종종 다른 분야의 혁신을 촉진합니다. 이처럼 기술적 접근법의 경계가 허물어지면서 얻은 효율성은 결국 산업 전반의 발전 동력이 됩니다. 오픈 소스 기술의 역사는 끊임없는 상호 작용의 역사이며, 이는 한 분야에서 발생한 작은 최적화가 거대한 산업적 변화를 이끌어내는 원동력이 됨을 보여줍니다.