Alta performance perforce sync

0

Estou tentando fazer a pasta de sincronização p4 /...

Não é muito rápido e está usando apenas 2% da CPU. Eu não estou feliz com o desempenho.

Eu estou tentando escrever uma função no bash, dado um parâmetro n, forma uma fila de todos os arquivos e pastas n níveis profundos e garfos de um processo de p4 sync -f $ thatDirectory / ... ou p4 sync - f $ thatFile.

Como começo isso? Existe algum utilitário que já faz isso?

Obrigado antecipadamente.

    
por snihalani 20.07.2012 / 01:42

3 respostas

2

Não tenho experiência com o Perforce, mas essa sincronização parece uma operação de E / S . Paralelizá-lo em vários processos provavelmente não ajudará, porque o gargalo é o disco ou a rede.

Se o disco é o gargalo, o paralelismo pode torná-lo mais lento , porque você terá muitos processos acessando arquivos diferentes simultaneamente, fazendo com que os cabeçotes de disco se movam.

Antes de entrar no script, faça algumas análises para descobrir o que está tornando isso mais lento. Use ferramentas como strace e Wireshark para estudar chamadas de leitura / gravação e tráfego de rede, por exemplo.

    
por 20.07.2012 / 03:51
0

algumas vezes o processo p4d (o servidor) foi iniciado com um sinalizador '-f' que o executará como um único processo encadeado.

Alguns pontos a serem anotados

tente usar a opção -p para sincronizar - isso significa menos db e isso deve ser uma coisa boa!

você pode tentar um tipo de coisa "vá n níveis fundo e sincronize de lá para baixo", algo como:

$ p4 dirs // < caminho > / * | enquanto lê o caminho; fazer

p4 dirs $ path / * | enquanto ler subpath; Faz p4 dirs $ subpath / * | enquanto ler sub-caminho; Faz p4 < cmd > $ subsubpath / ...; feito; p4 < cmd > $ path / ... # para pegar o arquivos neste nível feito; p4 < cmd > // < caminho > / ... # para capturar os arquivos neste nível (superior) concluído no seu caso, você teria < cmd > igual a "sync" + quaisquer outros argumentos.

    
por 11.03.2013 / 14:30
0

Eu ficaria longe da sincronização por arquivos ... especialmente se você tiver vários usuários tentando fazer isso de uma ferramenta incorporada ou algo similar. Nós matamos completamente nosso servidor aqui em várias ocasiões com acrobacias como essas.

No entanto, o Perforce oferece uma opção para paralelizar sua sincronização para você. Em paralelo, ele exige alguns ajustes no servidor, mas você deve tentar.

você pode fragmentar em várias invocações de p4.exe, mas eu tentaria mantê-las pequenas, pelo menos não além de sua contagem de núcleos disponível.

    
por 25.09.2014 / 22:20