반응형
Ghostwire:Tokyo [epic games] on Steam Deck

최근 epic store 에서 ghostwire (고스트와이어) 를 무료로 배포 하였습니다. 스팀덱 (Steamdeck) 에 #heroic #Launcher 를 통해 다운로드 및 설치를 하였는데, 바로 실행을 하면, 게임 시작 시 검은 화면만 나오고 게임 진행이 안되는 문제를 경험했습니다. 다음 설정으로 문제 해결을 했으니, 저와 같은 문제를 가지고 있는 스팀덱 사용자라면 확인 해 볼 만한 설정이여서 로그 남깁니다.

[출처: https://postimg.cc/gallery/ZSVB0NtW/]

즐겜하세요

Ghostwire : Tokyo [epic games] on Steam Deck

 

반응형
반응형

스팀덱 구매 후 설정 관련해서 찾아보면 #CryoByte33 의 #Steam-Deck-Utility 설정 부분이 빠지지 않고 나온다. 설정은 하라는데로 했고, 복잡한 원리는 사실, 게임이 잘 되기 때문에, 알고 싶은 생각은 없었다.  이 설정을 왜 하는지, 향상되는 이유가 무엇인지 궁금하지 않았다.

하지만.. 이 유틸리티의 기본적인 원리? 에 대해 질문을 받았으며, 이를 답변해 주기 위해, 우선 내가 먼저 이해를 해야 했고, 지루한? 유튜브(youtube) 비디오 내용을 시청 하였다. CryoByte33 의 깃허브(Github) 에 공유된 내용도 정리하여 확인 해 보았다.

*참고로 번역은 #ChatGpt (https://chat.openai.com/) 의 도움을 받았다.

 

GitHub - CryoByte33/steam-deck-utilities: A utility to improve performance and help manage storage on Steam Deck.

A utility to improve performance and help manage storage on Steam Deck. - GitHub - CryoByte33/steam-deck-utilities: A utility to improve performance and help manage storage on Steam Deck.

github.com

#cyobyte33 #steam-deck-utilities

- 요약

스팀덱은 알려진 바와 같이 CPU + GPU (그래픽카드) 가 합쳐진 APU 를 사용 하며, 16기가 램을 탑재하였다. 하지만 GPU 용 VRAM 이 별도로 없어서, 탑제된 16GB 의 시스템 램 (RAM) 을 공유 한다. 일 (Task)들을 처리 하면서, 필요하면 서로 램 공간을 사용하는 식으로 작동 되며, 특별히 Valve 에서 1GB 램을 GPU 전용으로 사전 설정하였다. 그래서 15기가의 램 공간이 CPU 와 GPU 간 공유하도록 설정이 되었는 상태이다.

CryoByte33 의 steam deck utilities 는 swap 과 swapiness 의 허용 사이즈 변경 하여, 1GB 의 GPU 용 램 사이즈를 4GB로 높이더라도, CPU 가 필요한 RAM 공간의 대체 공간을 ssd 에 16GB 정도로  설정하여, 보다 안정적으로 메모리 사용의 효율을 높여준다. 

CryoByte33 의 steam deck utilities 는 swap 과 swapiness 의 허용 사이즈 는 "recommended" 로 설정하면 되며, VRAM 사이즈 변경은 스팀덱 부팅 시 BIOS 집입하여 UMA Frame Buffer Size 를 1 - > 4로 변경을 해주면 된다.

다음은, CryoByte33 의 steam deck utilities 를 통해 어떤 부분이 변경이 되었고, 왜 되었으며, 어떻게 되었는지 CryoByte33 의 Github 내용을 ChatGPT 의 번역 기능의 도움을 받아 정리해 보았다.

- Swap Size

더보기

Swap Size 란?

Arch Wiki에 따르면 다음과 같습니다:

리눅스(Linux) 는 물리적인 RAM(랜덤 액세스 메모리 Random Access Memory)을 페이지(page) 라는 메모리(Memory) 덩어리(chunk) 로 나눕니다. 스와핑(swapping) 은 메모리의 한 페이지 가 물리적인 (physical) 메모리에서 사전 설정된 공간인 스왑 공간이라고 불리는 하드 디스크(hard Disk)로 복사되는 프로세스(Process)입니다. 이를 통해 해당 페이지의 메모리를 해제(free up)할 수 있습니다. 물리적인 메모리와 스왑 공간의 결합된 크기가 가용한 가상 메모리의 양입니다.

왜 변경하였나요?

스왑 크기를 늘리면 몇 가지 작업을 수행할 수 있습니다:

  • 메모리 압력을 크게 감소시킬 수 있습니다. 이렇게 하면 더 많은 캐시가 가능하며, 동시에 VRAM이 조금 더 확장될 수 있습니다.
  • 물리적인 메모리가 부족해지면 "긴급 메모리"의 저장 공간을 확보할 수 있습니다. 이렇게 하면 대량의 메모리 이전을 방지하고, 메모리 관리를 더 긴 시간 동안 분산시켜 지연 시점을 방지할 수 있습니다.

어떻게 변경하였나요?

sudo swapoff -a
sudo dd if=/dev/zero of=/home/swapfile bs=1G count=SIZE_IN_GB status=none
sudo chmod 0600 /home/swapfile
sudo mkswap /home/swapfile  
sudo swapon /home/swapfile

- Swappiness

더보기

Swappiness 란?

또한 Arch Wiki에 따르면 다음과 같습니다:

swappiness는 스왑 공간에 대한 커널(Kernel)의 선호 (혹은 회피) 정도 나타내는 sysctl 매개변수입니다. swappiness 값은 0부터 200까지 가질 수 있습니다 (Linux 5.8 미만의 경우 최대 100). 기본값은 60입니다. 낮은 값은 커널이 스왑을 피하도록하고, 높은 값은 커널이 스왑 공간을 사용하려고 시도하며, 100의 값은 IO 비용이 동등하다고 가정합니다. 대부분의 시스템에서 메모리가 충분한 경우 낮은 값이 IO 의 반응을 향상시키는 것으로 알려져 있습니다.

왜 변경하였나요?

기본적으로 스팀덱(SteamDeck)은 스왑니스(swappiness) 값이 매우 높은 100으로 설정되어 있어 많은 물리적 메모리가 남아 있을 때에도 데이터가 스왑으로 이동할 수 있습니다.

이는 두 가지 이유로 인해 문제가 될 수 있습니다:

  • 과도한 쓰기 작업은 드라이브 수명을 단축시킬 수 있습니다.
  • 스왑은 메모리보다 훨씬 느리며, 스왑을 사용하면 성능이 저하됩니다.

따라서, 스왑을 낮은 값으로 또는 제안된 값 1로 줄여서 다음과 같은 이점을 얻을 수 있습니다:

  • 스왑은 실제로 필요한 경우에만 마지막 순간에 사용되도록 보장합니다.
  • 드라이브의 건강 상태를 유지합니다.

어떻게 변경하였나요?

echo VALUE | sudo tee /proc/sys/vm/swappiness

- sysctl 매개 변수라는 스왑니스. sysctl 은 뭘까 궁금해서 찾아보았다.

더보기

sysctl은 리눅스 커널 매개변수를 동적으로 구성하고 관리하기 위한 유틸리티입니다. 이 도구를 사용하면 운영 체제의 커널 매개변수를 읽고 수정할 수 있습니다.

커널 매개변수는 운영 체제의 동작을 제어하는데 사용되는 변수입니다. 이러한 변수는 시스템의 다양한 측면을 조정하고 최적화하는 데 사용됩니다. 예를 들어, 스케줄링 동작, 메모리 관리, 네트워크 설정 등에 대한 커널 매개변수를 조정할 수 있습니다.

sysctl을 사용하면 커널 매개변수를 실시간으로 조정할 수 있으므로 시스템 동작을 변경하거나 성능을 향상시킬 수 있습니다. 이는 커널 매개변수를 재부팅 없이 조정하고 테스트할 수 있는 편리한 방법을 제공합니다.

sysctl은 주로 터미널 또는 명령줄 인터페이스를 통해 사용되며, 많은 리눅스 배포판에서 기본적으로 설치되어 있습니다.

- Transparent Hugepages

더보기

Transparent Hugepages 란?

트랜스페어런트(Transparent  hugepages)는 Emin이 작성한 훌륭한 설명에 따르면 다음과 같습니다:

CPU가 필요한 프로세스에 메모리를 할당할 때, 일반적으로 4KB 페이지 청크로 할당합니다. CPU의 MMU(메모리 관리 유닛)는 들어오는 I/O 요청에 따라 가상 메모리를 물리 메모리로 변환하기 위해 활동적으로 작동해야 합니다. 모든 4KB 페이지를 거치는 것은 자연스럽게 비용이 많이 드는 작업입니다. 다행히 CPU는 자체적인 TLB 캐시(번역 룩어사이드 버퍼)를 가지고 있어 가장 최근에 사용된 메모리를 캐싱하여 특정 메모리 주소에 액세스하는 데 필요한 시간을 줄일 수 있습니다.

왜 변경하였나요?

설명에서 언급한 대로, 페이지를 할당하는 것은 비용이 많이 듭니다. 트랜스페어런트(hugepages)는 할당과 조회가 훨씬 쉽고, 대량의 메모리를 처리할 때 발생하는 지연을 많이 줄여줍니다.

어떻게 변경하였나요?

echo always | sudo tee /sys/kernel/mm/transparent_hugepage/enabled

- Shared Memory in Transparent HugePages

더보기

Shared Memory in Transparent HugePages 란?

커널 문서에 따르면 다음과 같습니다:

마운트는 SysV SHM, memfd, 공유 익명 mmap (/dev/zero 또는 MAP_ANONYMOUS), GPU 드라이버의 DRM 객체, Ashmem에 사용됩니다.

이렇게 함으로써 이러한 요소들이 hugepages에 저장될 수 있게 됩니다.

왜 변경하였나요?

거대 페이지(hugepages)를 활성화하는 것과 같은 이유로 인해, 이는 메모리 관리에서 일부 지연 시간을 줄일 수 있습니다.

어떻게 변경하였나요?

echo advise | sudo tee /sys/kernel/mm/transparent_hugepage/shmem_enabled

- Compaction Proactiveness

더보기

Compaction Proactiveness 란?

이 기능은 Linux에서 "다운타임"을 감지할 때, 메모리 조각화를 예방차원에서 수행합니다.

왜 변경하였나요?

심지어 커널 문서에서도 이 기능이 전체 시스템 성능에 영향을 미친다고 인정하고 있습니다:

참고로, 컴팩션은 서로 다른 프로세스에 속한 페이지들이 이동함으로써 전체 시스템에 중대한 영향을 미칠 수 있으며, 예상치 못한 응용 프로그램에서 지연 증가를 초래할 수도 있습니다.

기본적으로 Linux는 컴팩션을 수행할 적절한 시기를 감지하려고 노력하지만, 게임 중에는 좋은 시기가 없으므로 비활성화하는 것이 가장 좋습니다.

어떻게 변경하였나요?

echo 0 | sudo tee /proc/sys/vm/compaction_proactiveness

- Hugepage Defragmentation

더보기

Hugepage Defragmentation란?

기능은 proactive compaction과 같은 기능이지만 hugepages에 대한 것입니다.

왜 변경하였나요?

proactive compaction을 비활성화하는 이유를 참조하세요.

어떻게 변경하였나요?

echo 0 | sudo tee /sys/kernel/mm/transparent_hugepage/khugepaged/defrag

- Page Lock Unfairness

더보기

Page Lock Unfairness란?

PLU (Page Lock Unfairness) 설정은 "허용 가능할 정도의 정상적인" 상태가 될 때까지, 프로세스가 페이지에 대한 잠금을 시도할 수 있는 횟수를 설정하며, 해당 프로세스에 페이지 액세스를 보장합니다. 자세한 내용은 커밋을 참조하십시오.

왜 변경하였나요?

불행히도, 이는 특히 게임에서 부정적인 부작용을 일으킬 수 있습니다. 반복적으로 대기하는 프로세스는 게임의 지연 문제를 뱔생 시키고, 일부 프로세스는 올바르지 않은 상태에서 휴면 상태로 진입 할 수 있습니다.

어떻게 변경하였나요?

echo 1 | sudo tee /proc/sys/vm/page_lock_unfairness

 

- 마치며

대부분의 내용이 리눅스 (Linux) 관련된 내용으로, 번역한 내용은 크게 와닿는 부분은 없지만, 이를 통해 스팀 OS 및 리눅스 에 대해 궁금한 점도 많아졌고, 그외에도 시스템 적인 부분이 명령어, 혹은 스크립트를 통해 변경이 가능하다는 것도 알게 되었다. 신기한 점은 이렇게 수정이 가능한 것을 알아냈다는 점이다. 내용에 나오는 Emin 이란 분이 이 리눅스 깊숙한 최적화에 큰 도움을 주신 분이라고 한다. 

Emin 의 Github

 

GitHub - CachyOS/linux-cachyos: Archlinux Kernel based on different schedulers and some other performance improvements.

Archlinux Kernel based on different schedulers and some other performance improvements. - GitHub - CachyOS/linux-cachyos: Archlinux Kernel based on different schedulers and some other performance i...

github.com

여하튼, 이 유틸리티를 설치하고, retrodeck 에서 스위치 에뮬레이션이 아주 안정적으로 구동이 되고 있으며, 테스트 해본 게임 중엔 The Division, Death Stranding, Tekken 7, Call of Duty 시리즈 등, 모두 안정적인 프레임 을 유지 했으며, 낮음 설정의 그래픽도, 상향 조정이 가능해질 만큼 게임 내 그래픽 퀄리티 와 성능이 좋아졌다.

이 유틸리티는 개인 적으로도, 그리고 많은 사람들이 강력 추천하는 프로그램이니, 스팀덱으로 게임 진행할 때 버벅거림을 경험한다면 설치해 보도록 한다.

반응형
반응형

항상, Steam (이하 스팀)이 만든 기기들 (스팀머신, 컨트롤러, 링크 등) 의 소식과 리뷰, 그리고 스팀OS 의 소식도 전해 들으며, 언젠가는 스팀 플랫폼 게임들을 구동시킬 기기 하나, 제대로 만들 것 같은 느낌으로 항상 관심있게 관련 소식을 기다리고 있었는데, 마침내, 2021년에 발표가 되고 2022년 초? 에 #스팀덱이 세상에 선을 보이게 되었다. 생각했던데로 물량이 별로 없어서, 국내엔 작년 8월 초부터 예약을 받아서 2022년 말쯤 배송 시작 된 것으로 기억된다. 

photo from: Steam Deck vs Logitech G Cloud: Which handheld should you buy? (xda-developers.com)

애플 제품들 (아이폰3gs, 아이패드 1세대 등) 과는 다르게, 여러 리뷰들을 보며, 바로 예약 구매 신청은 하지 않았다. 개인적으로 모니터 상의 리뷰들을 통한 간접 경험 보다는 직접 손으로 각 버튼들을 눌러보고, 무게나 화면 크기등을 직접 경험해 보고 싶었기 때문이다. 언젠가, 스팀덱을 구입한 주위 친구들을 통해, 확인해 보거나, 해외 나가서 직접 체험 후, 구입할 기회가 되면 구매를 하려고 했다. 음.. 올해 (2023) 초, 해당 기기를 리뷰해 본 친구의 말을 빌리자면, 스팀덱은 무조껀 구입해야 하는 기기이며, 내가 무척 좋아할 것이라는 말로 날 설레이게 했다.

photo from: Steam Deck vs Logitech G Cloud: Which handheld should you buy? (xda-developers.com)

직접 체험을 고대하는 중에, UMPC 혹은 hand-handled PC 시장엔 오래전부터 나왔던 Ayaneo 에서 window 10을 탑재한 비슷한 제품이 또 출시 되었고, Logitech 에서도, Logitech G Cloud 이라는 이름으로 안드로이드를 탑재하고 출시하면서, UMPC 시장을 나눠먹기 시작했다. 두 기기 모두 훌륭했고, 모양도 비슷했으며 성능도 우수 하다고 리뷰 되었다. 다음 스팀덱과 로지텍G클라우드 의 사양 비교 표에서, 내가 가장 중요하게 본 부분은 1. OS 와 2. 화면크기, 3. 배터리, 4. 확장 그리고  5. 가격 이다. 

from : Steam Deck vs Logitech G Cloud: Which handheld should you buy? (xda-developers.com)

이  5가지 사양 중 대부분 로지텍G클라우드 가 스팀덱 보다 우수했다. 단 하나.. 가장 큰 단점은 OS 였고, 그 이유는 다음과 같다. 그동안 스마트 기기들 (스마트폰, 웨어러블, IoT, ai 스피커 등)이 무수히 나오면서, 안드로이드 OS 는 v2.0 부터 v12까지 충분히 스마트폰과 태블릿들로 체험을 했다. 또한, 가지고 있는 기기들이 로지텍G클라우드 보다 성능이 더 좋은 기기들이기도 했고, 게임 관련 악세사리들도 있기 때문에, Logitech G Cloud 의 경험은 집에 있는 기기와 악세사리의 조합으로 충분히 충족이 되어, 구입 목록에서 자연스럽게 제외 되었다.

photo from : Ayaneo 2 review: I wouldn’t trade a $400 Steam Deck for this $1,300 handheld - The Verge

그에 비해, Ayaneo 는 말 그대로  UMPC (울트라 모바일 PC) 이며 최고의 hand-handle Gaming PC 라고 생각한다. 현재 Ayaneo2 말고도 여러가지 제품들이 나와 있고, 스펙도 어느 PC 못지 않을 성능으로 만들어져 나와서, 안돌아가는 게임이 없을 정도라는 한다. 가장 눈에 띄는 사양은 CPU AMD Ryzen 6800U 이다. 회사 내, 주변에서 이 프로세서를 탑재한 노트북으로 작업 하시는 분들이 꽤 여럿 있는데, 해당 기기에 대한 만족도가 꽤 높았다. (2022-2023). GPU 로 들어가 있는 라데온 기종은 사용해본적이 없어서 잘 모르겠지만, 검색해 보니, 3.4TFlops 의 성능까지 낼 수 있으며 4TFlops 성능을 내는 xbox series S 과 근접한 수치여서 꽤 준수한 그래픽 효과들을 보여줄 수 있을 것 같았다. 

from Ayaneo 2 vs Steam Deck: Which will be the better choice for handheld gaming in 2023? (sportskeeda.com)

실제로 이 유튜버분 (무적풍화륜) 의 리뷰를 보면,  Ayaneo 2 는 진정, 게임에 최적화된 기기라는 것을 알수 있었다. 리뷰에 나온 모든 게임들이 안정적으로 동작하였고, 디자인도 스팀의 투박한 모습과 비교해 보면 훨씬 좋아 보였다. 

ayaneo 2 review by 무적풍화륜

자, 그럼 이 최고 사양의 Ayaneo2 를 구입해야 하는 것이 당연하다는 생각이 들기도 하지만, 가격 대비 만족도를 확인해 봐야 할 것이다. 1년 좀 전 쯤, 구입한 PS5 의 가격은 63만원.. 비슷한 시기에 구입한 인텔12세대 PC 의 가격은 100만원. 이 2가지만 비교했을 경우, 비싼 PC 구매 후 만족도가 컸어야 하지만, 여러가지 (설정 및 추가 구매 등) 생각 해보면 PS5 구매의 기쁨과 사용 시의 만족도는 PC 와는 비교할 수 없을 만큼 컸다. 설정도 간단하고, 사용도 쉬웠다. 그만큼 게임 판매 플랫폼이 있는 기기들은 플랫폼에서 판매되는 모든 소프트웨어들이 해당 기기에 거의 완벽에 가까울 정도로 맞춤 출시를 하기 때문에 설정 및 사용이 쉽게 되어 있다. 반면 모든 곳에서 구입해서 게임을 즐길 수 있는 windowsOS PC 그만큼 설치해아 하는 게임런처들도 많이 있으며 세일 때 구입을 많이 하기 때문에 게임들이 여러 판매 플랫폼에 분산되어 있는 단점이 있다. Ayaneo2 는 windowsSO PC 와 동일한 단점을 가지고 있기도 하지만, 가격 또한 Gaming (이하 게이밍) 노트북 처럼 매우 높게 책정되었다. (16기가 램, 1T SSD 기기 네이버 검색가격 1,790,000 원 2023/07/05) 아쉽게도.. 구매 목록에서 제외 되었다.

from: Ayaneo 2 vs Steam Deck: Which will be the better choice for handheld gaming in 2023? (sportskeeda.com)

사실, WIndowsOS 에서 게이밍 경험이 더 많기도 하고, 게이밍 시 여러모로 수월 하기 때문에, 게임 판매 플랫폼의 이유 보다는 가격의 이유로 Ayaneo  2 를 구매하지 않았다가 좀더 사실적인 이유다. 만약, windowsOS PC 가 집에 없었다면.. 아마 고려 할 만한 기기 이지만, ubisoft 의 the division2 등 fps 만을 위한 pc 를 이미 가지고 있어서, 좀 애매한 기기가 될 것 같았다. (가격이 비싸다라는 다른 말 ㅋ)

결국, 스팀덱만 남았다. 직접 체험 해 보고 구입하자고 마음을 먹기 전에 이것 저것 검색을 통해 알아본 내용은 다음과 같다. 

  • 구입 시 모델은 64기가를 구입 후, 필요한 용량은 ssd 혹은 microSD 로 추가한다.
  • PD 충전 시 스팀덱이 사용하는 용량은 35W.
  • Steam 에서 제공하는 게임 외, 다른 플랫폼에서 제공하는 게임들도 스팀OS 에서 가능하다.
    • Epic Games, GOG, Ubisoft Connect, Battle.Net 등
  • 전동 스팀용 DOCK(이하 독) 은 DP 연결을 필요하면 구입하고 아니면 다른 제품들 사용이 가능하다.
  • COMODO 에서 구입 시 2주정도 걸리며 배송비는 8,000원. 
  • 다른 제품들보다 크고, 무겁고 구입 후 별로 안쓰게 된다. - 헙!@! 이런 글을 보니 중고마켓을 확인해 보았는데, 꽤 많이 등록되어 있어서, 중고 구매도 고민했다.
  • Windows OS 설치가 가능하다 (듀얼부팅)

그리고 구입했다. 와이프에게 아주 작은 PC 여서 가지고 싶다고 전했고. #Steam 외 게임유통사들에서 구입한 게임들 중, 가볍게 즐기려고 했지만 PC 에 설치를 안하는 게임들을 하고 싶다는 전하지 않았다.

음.. 일하는데 필!요! 할지도 모른다.. 라고 해서 허가가 났다. 바로 뽀록이 나버렸지만.. ㅡ,.ㅡa

SteamDeck - 64Gb 용량 버전을 구매했으며, 2023-06 월 어느날 일렉트로마트에서 구입이 가능하다는 이야기를 듣고 사무실에서 가장 가까운 일렉트로마트 물량 확인 후 가보려고 했는데, 와이프가 동네 이마트 (일레트로마트가 있는) 간다며 구매해 주겠다고 했다. 

와이프: (일렉트로 마트 직원에게) 혹시 스팀 이라는 컴퓨터 있나요?

직원: 아.. 게임기요? 있습니다. 

딱!!! 걸렸으..  아웅.. 박스도 저렇게 생겼네.. 아놔.. ㅋㅋ

우선 정상적인 제품이 왔는지 꼼꼼하게 확인 해 보라는 글도 있고, 혹시 모르니 영상으로 남겨야 한다는 글도 있어서, 언박싱? 영상을 찍게 되었다. 

Youp Han - YouTube

 

반응형

+ Recent posts