Otimização das etapas do BuildPDFFromDocuments
- Importante:
- Essa configuração é altamente avançada. Não é recomendado para todas as implementações do site RICOH ProcessDirector.
Seu sistema é um bom candidato para essa configuração se todos os itens acima forem verdadeiros:
- O processamento mais rápido de um único trabalho em PDF é mais importante do que a taxa de transferência total.
- Seus trabalhos em PDF contêm muitos documentos ou usam regras complexas que fazem com que o processamento demore muito tempo.
- Você tem (ou pode adquirir) recursos de hardware adequados para o sistema que a etapa usa. O sistema deve ter muitos núcleos de CPU, pois cada thread usado para processamento requer três ou quatro threads em segundo plano para gerenciar o uso da memória e outras atividades. O sistema também deve ter pelo menos 16 GB de RAM disponíveis para esse processamento em seu computador principal ou em servidores adicionais para configurar como servidores secundários.
- Os membros da sua equipe têm as habilidades e as ferramentas necessárias para monitorar
o desempenho do sistema. Para ajustar o sistema corretamente, você deve ser capaz
de monitorar:
- Memória usada pelos processos Java
- Coleta de lixo em Java
- Uso da memória do sistema
- Utilização da CPU
- Troca de recursos
- E/S do sistema
Nessa configuração, você configura o sistema para executar a etapa BuildPDFFromDocuments usando vários threads. A configuração exige que a etapa seja executada em uma máquina virtual Java (JVM) separada. Para executar a etapa em seu próprio JVM, crie um servidor secundário e ajuste a etapa BuildPDFFromDocuments para ser executada nesse servidor. Nenhuma outra etapa deve ser configurada para ser executada nesse servidor.
Você pode criar o servidor secundário no computador principal (chamado de secundário local) ou em um sistema diferente (chamado de secundário remoto).
- Obs.:
- Para usar um secundário remoto, você deve adquirir o recurso Servidor secundário e instalá-lo nesse sistema.
Para otimizar as etapas do BuildPDFFromDocuments:
- Decida qual é a melhor configuração para seu ambiente: criar um secundário local ou
usar um servidor secundário remoto.
Para determinar se o uso de um secundário local é viável, consulte o tópico Ajustar a alocação de memória Java. Recomendamos que você aloque pelo menos 16 GB de RAM para o servidor secundário local. Se seus cálculos a partir desse tópico indicarem que você tem 16 GB de RAM disponível ou que pode instalar memória adicional no sistema, você pode usar um servidor secundário local. Continue com a etapa .
Se precisar usar um secundário remoto, certifique-se de ter 16 GB de RAM disponíveis no sistema que planeja usar e, em seguida, prossiga para a próxima etapa.
- Para configurar um servidor secundário remoto, conclua os procedimentos na seção
Instalação de servidores secundários remotos.
- Obs.:
- Você deve exportar o sistema de arquivos
/aiwpara poder acessá-lo a partir do servidor secundário remoto. Esses procedimentos fornecem instruções para configurar o NFS e usá-lo para fazer a exportação. Se você preferir usar um método diferente, siga seus procedimentos internos para configurar a exportação.
Quando você definir o servidor secundário em RICOH ProcessDirector, defina a propriedade Conjunto de servidores em geral como Não e deixe a Contagem máxima de etapas ricas em recursos definida como 1.
- Você deve exportar o sistema de arquivos
- Crie um servidor secundário local usando este procedimento: Definição de servidores secundários no computador principal.
- Atualize as configurações da JVM para esse servidor secundário.
- Abra
$AIWDATA/config/jvmsettings.cfgem um editor de texto.Por padrão,$AIWDATAé/aiw/aiw1. - Copie a linha do servidor primário que se parece com isso:
primary=-Xmx2048m -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true
Cole-o em uma nova linha do arquivo.
O valor após
primary=-Xmxé a quantidade máxima de memória heap que o ambiente de tempo de execução do Java RICOH ProcessDirector pode usar para o processo principal do RICOH ProcessDirector. Neste exemplo, o servidor primário pode usar 2048 MB (2 GB) de RAM para seu heap. - Atualize a linha que você copiou para alterar
primarypara o valor da propriedade Nome do servidor do servidor secundário. - Atualize o valor após
nome_servidor_secundário=-Xmxpara a quantidade de memória que você tem disponível para esse processo. O valor deve ser de pelo menos 16g. - Se a linha do seu servidor secundário não incluir esta configuração:
-XX:+UseG1GC, atualize a linha para adicioná-la. - Salve e feche o arquivo.
- Abra
- Reinicie o site RICOH ProcessDirector usando o
startaiwpara aplicar as novas configurações. - Habilite o servidor secundário na interface RICOH ProcessDirector.
- Ajuste o modelo da etapa BuildPDFFromDocuments.Recomendamos fazer uma cópia do modelo de etapa para usar na configuração multithread.
- Abra o .
- Localize o modelo da etapa BuildPDFFromDocuments, clique com o botão direito do mouse e selecione Copiar.
- Na guia Geral, insira um valor para a propriedade Nome.
Escolha um nome que mostre claramente que essa é a versão multithread da etapa.
- Na guia Ajuste:
- Na guia PDF, observe todas as propriedades Criar arquivo de controle PDF.
- Atualize quaisquer outras configurações conforme necessário para sua instalação.
- Clique em OK.
- Ativar o modelo de etapa.
- Defina o número máximo de threads que o modelo de etapa pode usar.
- Comece com um número de threads que seja aproximadamente 25% dos núcleos da máquina. Cada thread usada por esta etapa requer outras threads para suportá-la, portanto, você não pode usar todas as threads para a etapa. Por exemplo, se você tiver um servidor de 16 núcleos, aloque 4 threads para essa etapa.
- Você pode ter que fazer alguns testes para determinar o número ideal de threads para a sua instalação.
- Abra
$AIWDATA/config/product.cfgem um editor de texto. - Adicione esta linha ao final do arquivo, substituindo o número de threads que você deseja usar por número_de_threads:
- Salve e feche o arquivo.
- Reinicie o site RICOH ProcessDirector usando o
startaiwpara aplicar a nova configuração. - Teste um fluxo de trabalho com a nova etapa.Recomendamos copiar o fluxo de trabalho cujo desempenho você está tentando melhorar e, em seguida, substituir a etapa BuildPDFFromDocuments atual pela versão multithread. Executar um trabalho representativo no fluxo de trabalho.
Durante o teste, monitore o seguinte:
- Uso da memória do processo Java
Se o processo tiver atingido o máximo configurado para a memória java e o desempenho ainda for inaceitável, considere aumentar a alocação de memória. Mantenha-se dentro das diretrizes descritas em Ajustar a alocação de memória Java. Reinicie o servidor secundário sempre que você atualizar o arquivo
jvmsettings.cfg. - Uso da memória do sistema
- Uso da CPU
- Troca de recursos
- Coleta de lixo em Java
Se você vir muitos threads de coleta de lixo, ative o registro para a coleta de lixo. Atualize o
jvmsettings.cfgpara adicionar esses parâmetros:-verbose:gc-XX:+PrintGCDetails-XX:+PrintGCTimeStamps-XX:+PrintGCDateStamps-Xloggc:/aiw/aiw1/trace/gc_secondary.log-XX:+UseGCLogFileRotation-XX:NumberOfGCLogFiles=10Ajuste essa configuração para atender às suas necessidades.
-XX:GCLogFileSize=8mAjuste essa configuração para atender às suas necessidades.
Você deve reiniciar o site RICOH ProcessDirector sempre que atualizar o
Analise os logs para determinar a frequência e a duração da coleta total de lixo. Se o processo levar mais de cinco a dez segundos para ser concluído, isso poderá afetar o desempenho.jvmsettings.cfg. - Uso de E/S
- Uso da memória do processo Java
- Após cada teste, ajuste as configurações para otimizar o processamento. Quando terminar de ajustar a etapa, atualize seus fluxos de trabalho de produção para usá-la em vez da etapa BuildPDFFromDocuments atual.