TPM실

잠깐 20초만 한눈을 팔면, 멈춰 서는 WSL

nohup은 리눅스와 유닉스 시스템에서 프로세스를 백그라운드로 실행하고, 터미널 세션이 종료돼도 해당 프로세스가 계속 실행되도록 하는 명령어입니다. 뒤에 &를 붙여 쓰는 경우가 많습니다. 파워셸의 Start-Process를 실행하면서, WindowStyle Hidden 옵션을 붙여…

PerfView를 활용한 .NET GC 프로파일링

수많은 객체가 생성 및 소멸되는 게임 서버라면 CPU와 메모리 관리는 서버의 성능을 좌우하는 중요 요소가 되죠. 이번에는 PerfView를 이용해 .NET GC(Garbage Collection) 프로파일링에 필요한 기본 설정과 다양한 옵션을 소개해 보려고 합니다.

게임 서버 시스템을 위한 HikariCP 옵션 및 권장 설정

HikariCP는 특별히 옵션을 튜닝하지 않더라도 대부분의 개발 및 배포에서 충분한 성능으로 동작합니다. 하지만 게임 서버 시스템을 위한 JDBC와 Timeout 이해하기에서 이야기한 것처럼 WAS 시스템을 위한 HikariCP 권장 설정을 게임 서버 시스템에 그대로 적용…

게임 서버 시스템을 위한 JDBC와 Timeout 이해하기

HikariCP는 많이 사용되는 만큼 시스템 최적화를 위한 권장 설정 자료를 공식 사이트 또는 인터넷 검색을 통해서 쉽게 구할 수 있습니다. 하지만 대다수의 권장 설정 자료는 WAS와 DB로 구성된 시스템의 성능을 최적화하기 위한 것들입니다. 즉, 게임 서버 시스템을 위한 권장…

도커 데스크톱 없이 구축하는 WSL2와 도커 개발 환경

도커 유료화 정책에서 재미난 포인트는 도커 데스크톱이라는 프로그램과 도커 엔진이 서로 별개 패키지라는 부분입니다. 커맨드라인으로 도커를 사용했던 분들께는 도커 엔진만으로도 충분하기 때문이죠. 그래서 “도커 엔진으로 다 대처할 수 있다면, 도커 데스크톱은 왜 필요한가?”라는 질문을 하시는

한 번에 언리얼 엔진 멀티 클라이언트 테스트 환경 구축하기

단일 클라이언트에서는 이슈가 발생하지 않더라도, 멀티 클라이언트 동작도 꼭 함께 확인해야 합니다. 단순히 이 이유가 아니더라도, 실제 개발 도중에 멀티 클라이언트 동작이 필요한 상황이 종종 생기기도 합니다. 단순히 2~3개보다 많이 구동해야 하는 상황을 마주하신 분도 계실 것…

언리얼 엔진 특화 프로파일러, 언리얼 인사이트

로컬에서 실행한다면 언리얼 인사이트를 클라이언트나 서버(데디케이티드 서버 포함)보다 먼저 실행해두기만 하면 됩니다. 이땐, 프로파일링 파일 저장 경로와 파일명을 지정하지 않아도, 하단 패널에 있는 ‘Trace Store Directory’ 경로에 날짜와 시간 값을 조합한 파일명으로…

언리얼 인사이트와 친해지기 위한 준비 운동

일반적인 서버-클라이언트 구조에서 프로파일링 툴을 활용해 서버를 튜닝하는 사례는 쉽게 찾아볼 수 있습니다. 반면, 언리얼 엔진에 특화된 서버 튜닝 사례는 아직 찾아보기 쉽지 않습니다. 다행히 언리얼 엔진에는 언리얼 인사이트(Unreal Insight)라는 무료 프로파일링 툴이 있습니다.

간단하지만 까다로운 언리얼 엔진 개발 환경 구축

언리얼 엔진 기반으로 개발하는 게임을 마주한다면, 직접 게임을 개발하는 개발자가 아니더라도 디버깅이나 성능 분석을 위해 언리얼 엔진 개발 환경을 구축해야 하는 상황이 생깁니다. 특히, 언리얼 인사이트나 네트워크 프로파일러 같은 유용한 툴을 쓰기 위해서는 언리얼 엔진 소스를 다운…

단일 프로세스에서 NUMA가 야기한 성능 저하

물리적으로는 CPU 1개지만, 그 안에 코어가 여러 개 들어있습니다. 각 코어는 연산을 위해 메모리 컨트롤러를 거쳐 메모리에 접근합니다. 이때, 코어가 메모리에 접근하는 속도를 올리거나 동시 전송량을 늘릴 수 있다면 코어 연산 능력을 높일 수 있습니다. 다만 이들 사이에 오가는…