퍼포스에서 sync나 submit 작업 시 멀티 스레드로 동시에 여러 파일을 전송하면 성능을 향상할 수 있다.
해당 기능을 적용하려면 퍼포스 관리자 권한이 있어야 한다.
관리자라면 퍼포스 서버에 직접 들어갈 필요 없이 본인 PC에서 원격으로 설정할 수 있다.
먼저, 콘솔창을 연다.
현재 서버에 설정된 값을 보는 방법은 다음과 같다.
p4 configure show |
서버의 병렬처리 기능을 켜고 싶다면 다음의 명령어를 쓰면 된다. (숫자는 스레드 개수인데 1보다 커야 한다)
p4 configure set net.parallel.max=4 |
참고로, 서버를 재시작할 필요 없이 바로 적용된다.
서버에 위의 옵션을 켜 놓으면 클라에서는 바로 멀티 스레드를 활용할 수 있다.
예를 들어 다음과 같이 사용하면 된다.
p4 sync --parallel=threads=4 ... p4 submit --parallel=threads=4 ... |
만약, 모든 클라에 기본으로 병렬 sync 옵션을 적용하고 싶으면, 다음의 변수를 추가로 설정하면 된다.
p4 configure set net.parallel.threads=4 |
submit에 대해서도 모든 클라에 기본으로 적용하고 싶으면, 다음의 변수를 설정하면 된다.
p4 configure set net.parallel.submit.threads=4 |
위의 모든 옵션을 적용했을 때 설정값은 다음과 같다. (p4 configure show 명령어 사용)
설정된 변수를 지우고 싶으면 unset 옵션을 써서 삭제하면 된다.
p4 configure unset net.parallel.max p4 configure unset net.parallel.threads p4 configure unset net.parallel.submit.threads |
참고로 퍼포스 클라이언트 UI(p4v)에서는 병렬 서밋 옵션은 기본적으론 꺼져 있다.
참고 링크:
https://www.perforce.com/manuals/cmdref/Content/CmdRef/p4_sync.html#Parallel
ps. 병렬처리 옵션을 켠다고 다 좋은 건 아니다. 싱글 스레드 방식의 p4v에서 sync 시에는 읽기 전용 속성이 풀린 파일을 찾아내 강제로 받을 것인가를 물어보는 팝업이 뜨지만, 병렬처리 시에는 이게 작동하지 않을 수 있다. 또, 많은 사람이 동시에 sync를 받으면 서버에 과부하가 걸리기도 한다.
서밋을 할 때도 여러 사람이 동시에 많은 파일을 서밋 하면 서버가 멈추는 경우가 생길 수 있다.
ps. 사실, 이런저런 문제점들 때문에 net.parallel.max 옵션만 설정하고, 빌드서버에서만 --parallel=threads 옵션을 넣어서 사용 중이다. 바이너리 파일을 서밋 할 때 zip으로 압축을 하는데, 멀티 스레드를 사용하지 않으면 많이 느리다.
'개발 > 일반' 카테고리의 다른 글
몬티홀 딜레마 코드로 검증하기 (0) | 2022.08.13 |
---|---|
[젠킨스] 잡을 복사했는데, build 버튼이 사라졌다 (0) | 2022.05.21 |
[젠킨스] 플러그인 다운로드 오류 (2) | 2022.04.24 |
배치 파일의 if 문 안에서 errorlevel (3) | 2021.12.28 |
비주얼 스튜디오 2019 깨끗하게 지우는 방법 (0) | 2021.08.16 |