주의 사항 ) 이 글을 쓴 사람은 퍼포스 초보입니다. 틀린 정보일 수 있으니 주의...!
현재 VR 게임을 제작하는 팀 프로젝트를 진행 중이다.
팀 프로젝트를 위한 협업 & 버전 관리 도구로 퍼포스를 사용하여 작업하고 있다.
그런데... 이상한 현상이 나타났다.
현재 우리 팀은 퍼포스 서버로 AWS EC2를 사용한다.
총 30GB의 용량을 사용할 수 있는데, 이 중에 23.9GB를 사용하고 있는 것을 확인했다.
하지만 워크스페이스를 통해 확인한 프로젝트의 크기는 11.3GB다.
워크스페이스에 프로젝트 파일의 크기와, 퍼포스 서버에서의 디스크 사용량이 2배가량 차이 나는 문제점이 나타났다.


What the...
너네 왜 그러니?

서버 크기를 늘리면 바로 해결되겠지만..
문제는 AWS EC2는 30GB까지만 무료로 사용할 수 있다는 점이다. 즉, 서버 용량을 늘리면 돈을 내야 하는 대참사가 발생할 수 있다. 물론, 현재 프로젝트 크기가 크면 늘려야 하는 게 당연하다. 그러나 최대한 서버 용량을 아껴보고자..여러 방법을 찾아봤다.


p4 storage 명령어로, 서버에 파일들이 뭐가 있고, 크기는 몇인지 찾아봤다.
확인 결과, 같은 이름의 파일들이 2개씩 존재하는 것을 확인할 수 있었다.
퍼포스가 버전 관리를 위해 각 Revision마다 파일을 유지하고 있는 것이다.
이를 더 명확하게 확인하기 위해서, 테스트용 서버로 현재 서버의 파일들을 모두 옮겼더니 실제 파일 크기만큼만 공간을 차지하는 것을 확인할 수 있었다.

우리는 퍼포스를 버전 관리보다는, 협업을 위한 프로젝트 공유의 목적으로 사용하고 있기 때문에 가장 최근의 Revision만 유지하도록 해서 디스크 용량을 줄이는 것이 더 효율적이라고 판단했다.
Perforce의 File Types에는 Modifiers를 지정할 수 있다.
이 중에 +S 옵션은 오직 head revision만이 저장되도록 한다.
그 외에도 +Sn이 있는데, 이것은 가장 최근 n개의 revision만 유지하도록 한다.
우리는 가장 최근의 revision만 유지하면 되기 때문에 +S 옵션을 사용했다.

가장 최근의 Revision만 유지하도록 하는 여러 방법을 찾아봤는데 typemap을 사용한 방법이 가장 편리했다.
typemap을 사용하면 퍼포스에 파일이 추가될 때, 저장되는 타입의 기본값을 지정해줄 수 있다.
따라서 typemap을 수정해서 .uasset이나 .umap타입의 바이너리 파일이 추가될 때 +S 옵션이 붙도록 했다.
아래와 같은 방법으로 typemap을 수정했다.
p4 typemap은 admin 명령어기 때문에, admin 계정으로 로그인해야 한다.


변경 후에 테스트 용도로 만들어놓은 서버로 테스트했다.
용량이 큰 파일들을 체크아웃 한 다음 서브밋했다.



서브밋 한 바로 다음에는 디스크 사용 공간이 증가했지만, 시간이 좀 지나자 디스크 용량이 기존 프로젝트 파일 만큼의 용량으로 돌아오는 것을 확인할 수 있었다.

이전 Revision의 파일들은 삭제 된다.
참고 자료
P4 Storage : https://www.perforce.com/manuals/cmdref/Content/CmdRef/p4_storage.html
P4 File Types : https://www.perforce.com/manuals/v16.1/cmdref/file.types.html
P4 Typemap : https://www.perforce.com/perforce/doc.091/manuals/cmdref/typemap.html
'Information' 카테고리의 다른 글
[Unreal & Perforce] 아마존 AWS EC2를 사용한 언리얼 퍼포스 연동(Windows) (0) | 2022.07.04 |
---|
주의 사항 ) 이 글을 쓴 사람은 퍼포스 초보입니다. 틀린 정보일 수 있으니 주의...!
현재 VR 게임을 제작하는 팀 프로젝트를 진행 중이다.
팀 프로젝트를 위한 협업 & 버전 관리 도구로 퍼포스를 사용하여 작업하고 있다.
그런데... 이상한 현상이 나타났다.
현재 우리 팀은 퍼포스 서버로 AWS EC2를 사용한다.
총 30GB의 용량을 사용할 수 있는데, 이 중에 23.9GB를 사용하고 있는 것을 확인했다.
하지만 워크스페이스를 통해 확인한 프로젝트의 크기는 11.3GB다.
워크스페이스에 프로젝트 파일의 크기와, 퍼포스 서버에서의 디스크 사용량이 2배가량 차이 나는 문제점이 나타났다.


What the...
너네 왜 그러니?

서버 크기를 늘리면 바로 해결되겠지만..
문제는 AWS EC2는 30GB까지만 무료로 사용할 수 있다는 점이다. 즉, 서버 용량을 늘리면 돈을 내야 하는 대참사가 발생할 수 있다. 물론, 현재 프로젝트 크기가 크면 늘려야 하는 게 당연하다. 그러나 최대한 서버 용량을 아껴보고자..여러 방법을 찾아봤다.


p4 storage 명령어로, 서버에 파일들이 뭐가 있고, 크기는 몇인지 찾아봤다.
확인 결과, 같은 이름의 파일들이 2개씩 존재하는 것을 확인할 수 있었다.
퍼포스가 버전 관리를 위해 각 Revision마다 파일을 유지하고 있는 것이다.
이를 더 명확하게 확인하기 위해서, 테스트용 서버로 현재 서버의 파일들을 모두 옮겼더니 실제 파일 크기만큼만 공간을 차지하는 것을 확인할 수 있었다.

우리는 퍼포스를 버전 관리보다는, 협업을 위한 프로젝트 공유의 목적으로 사용하고 있기 때문에 가장 최근의 Revision만 유지하도록 해서 디스크 용량을 줄이는 것이 더 효율적이라고 판단했다.
Perforce의 File Types에는 Modifiers를 지정할 수 있다.
이 중에 +S 옵션은 오직 head revision만이 저장되도록 한다.
그 외에도 +Sn이 있는데, 이것은 가장 최근 n개의 revision만 유지하도록 한다.
우리는 가장 최근의 revision만 유지하면 되기 때문에 +S 옵션을 사용했다.

가장 최근의 Revision만 유지하도록 하는 여러 방법을 찾아봤는데 typemap을 사용한 방법이 가장 편리했다.
typemap을 사용하면 퍼포스에 파일이 추가될 때, 저장되는 타입의 기본값을 지정해줄 수 있다.
따라서 typemap을 수정해서 .uasset이나 .umap타입의 바이너리 파일이 추가될 때 +S 옵션이 붙도록 했다.
아래와 같은 방법으로 typemap을 수정했다.
p4 typemap은 admin 명령어기 때문에, admin 계정으로 로그인해야 한다.


변경 후에 테스트 용도로 만들어놓은 서버로 테스트했다.
용량이 큰 파일들을 체크아웃 한 다음 서브밋했다.



서브밋 한 바로 다음에는 디스크 사용 공간이 증가했지만, 시간이 좀 지나자 디스크 용량이 기존 프로젝트 파일 만큼의 용량으로 돌아오는 것을 확인할 수 있었다.

이전 Revision의 파일들은 삭제 된다.
참고 자료
P4 Storage : https://www.perforce.com/manuals/cmdref/Content/CmdRef/p4_storage.html
P4 File Types : https://www.perforce.com/manuals/v16.1/cmdref/file.types.html
P4 Typemap : https://www.perforce.com/perforce/doc.091/manuals/cmdref/typemap.html
'Information' 카테고리의 다른 글
[Unreal & Perforce] 아마존 AWS EC2를 사용한 언리얼 퍼포스 연동(Windows) (0) | 2022.07.04 |
---|