맘가는 대로
스태디아 - 리눅스 스케줄러가 문제를 일으킨다 본문
구글이 발표한 스트리밍 게이밍 서비스, 스태디아에서 리눅스 스케줄러에서 기인한 문제가 발견되었다고 합니다.
스태디아를 간략히 설명하자면, 구글에서 커스텀 하드웨어와 오픈 소스 소프트웨어를 게임 개발자들에게 기반으로 제공하며, 사용자들은 개발된 게임을 클라우드 컴퓨팅 서비스에 기반한 자원을 가지고 게임을 플레이할 수 있습니다. 이 때, 오픈 소스 소프트웨어는 OS 는 리눅스로, 그래픽 API 는 Vulkan 을 사용할 수 있습니다.
관련한 문제는 게임 '레이지2' 의 스태디아 포팅을 진행하던 개발자가 지속적으로 원인을 알 수 없는 화면의 지연 혹은 멈춤 현상이 발견하면서 알려졌습니다. 이걸 전해들은 게임 개발자인 Malte Skarupke 가 원인을 찾기 시작했으며, 결론을 말하자면 리눅스의 스케줄러가 스핀락을 다루는데 좋지 않은 것을 확인하였습니다.
그의 설명에 따르면, 리눅스의 스케줄러는 스핀락을 다룰 때 스레드에서 스핀락을 가져올 때, 그 어떠한 스레드에서 스핀락을 점유하지 않았음에도 반드시 수 밀리초를 소요하여 확인 과정을 진행한다는 것입니다. 수 밀리초가 짧게 느껴질 수도 있으나, 1 초에 60 프레임 혹은 30 프레임을 모니터에 표시해야 하는 컴퓨터에게 1 프레임을 계산하는데 주어지는 시간은 16 밀리초 혹은 33 밀리초 입니다. 이 때, 수밀리초를 아무런 의미 없는 작업에 소요하게 되어 프레임 계산에 영향이 생겨 몇 프레임씩 그리지 못하게 되면 게임을 즐기는 사용자가 볼 때 화면이 끊기거나 멈춘 것으로 보여지게 됩니다.
안 좋은 소식은 여기서 그치지 않습니다. 리눅스에 더 나은 스케줄러를 제공하기 위한 대안인 MuQSS 스케줄러가 있는데, 이마저도 그리 좋은 성능을 나타내고 있지는 않습니다. 반면, 윈도우 스케줄러는 준수한 성능을 나타낸다고 합니다.
다만, 좋은 소식은 구글이 이미 이러한 현상에 대해 잘 알고 있으며, 대응을 하고 있다고 합니다.
자세한 테스트 코드와 벤치마킹은 Malte Skarupke 의 블로그를 통해 확인할 수 있습니다.
출처
'최신 소식' 카테고리의 다른 글
유럽 지역의 IPv4 주소가 동나다 (0) | 2019.11.27 |
---|---|
리눅스 커널 5.4 버전 출시 (0) | 2019.11.25 |
RHEL 8.1 출시 (0) | 2019.11.07 |
Fedora 31 출시 (0) | 2019.11.02 |
파이썬 3.8.0 출시 (0) | 2019.10.17 |