고성능 퍼 포스 동기화


0

p4 동기화 폴더를 시도하고 있습니다 ...

빠르지는 않으며 CPU의 2 % 만 사용하고 있습니다. 나는 공연에 만족하지 않습니다.

매개 변수 n이 주어지면 bash에서 함수를 작성하려고합니다. 모든 파일 및 폴더의 대기열을 n 레벨 깊이로 만들고 p4 sync -f $ thatDirectory / ... 또는 p4 sync -f $ thatFile 프로세스의 포크를 형성합니다 .

이것에 대해 어떻게 시작합니까? 이미이 작업을 수행하는 유틸리티가 있습니까?

미리 감사드립니다.

답변:


2

Perforce에 대한 경험이 없지만이 동기화는 I / O 바인딩 작업 처럼 들립니다 . 병목 현상이 디스크 나 네트워크이기 때문에 여러 프로세스에서 병렬 처리하는 것은 도움이되지 않습니다.

디스크에 병목 현상이 발생하면 병렬 처리로 인해 실제로 다른 파일에 액세스하는 프로세스가 많기 때문에 디스크 헤드가 스래쉬되기 때문에 실제로 느려질 수 있습니다.

스크립팅에 뛰어 들기 전에 약간의 분석을 통해 느리게 만드는 원인을 파악하십시오. 같은 도구를 사용 strace하고 Wireshark를 예를 들어 / 쓰기 전화 및 네트워크 트래픽을 읽고, 공부.


0

때때로 p4d (서버) 프로세스는 단일 스레드 프로세스로 실행되는 '-f'플래그로 시작되었습니다.

주의점 몇

대신 -p 옵션을 사용하여 동기화를 시도하십시오. 이는 더 적은 DB 쓰기를 의미하며 좋은 것입니다!

당신은 'n 레벨 깊이 가서 아래로 동기화'를 시도 할 수 있습니다.

$ p4 dirs // <경로> / * | 읽는 동안 경로; 해야 할 것

                p4 dirs $ path / * |

                서브 패스를 읽는 동안;

                해야 할 것

                                p4 dirs $ subpath / * |

                                서브 서브 패스를 읽는 동안;

                                해야 할 것

                                                p4 <cmd> $ subsubpath / ...;

                                끝난;

                                p4 <cmd> $ path / ... #이 수준에서 파일을 잡으려면

                끝난;

                p4 <cmd> // <path> / ... #이 최상위 레벨에서 파일을 포착합니다.

 

귀하의 경우 <cmd>는 "sync"+ 다른 인수와 같습니다.

 


0

파일 당 동기화를 피할 것입니다 ... 특히 포함 된 도구 또는 이와 유사한 도구로 여러 사용자 가이 작업을 수행하려는 경우 특히 그렇습니다. 우리는 이와 같은 스턴트로 여러 번 서버를 완전히 죽였습니다.

그러나 퍼 포스는 동기화를 병렬화하는 옵션을 제공합니다. 병렬, 일부 서버 측 조정이 필요하지만 시도해보십시오.

p4.exe를 여러 번 호출하면 샤드가 발생할 수 있지만 최소한 사용 가능한 코어 수를 초과하지 않도록 작게 유지하려고합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.