Otimização das etapas do BuildPDFFromDocuments

A etapa BuildPDFFromDocuments é uma etapa que consome muitos recursos e monta um trabalho em PDF a partir de documentos que foram identificados pelo site RICOH ProcessDirector. Se houver um grande número de documentos ou se você usar regras complexas em seu arquivo, a duração do processamento dessa etapa será medida em horas, não em minutos. Opções avançadas de configuração estão disponíveis para reduzir o tempo de processamento nessa etapa para trabalhos muito grandes ou muito complexos.
    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:

  1. 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.

  2. 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 /aiw para 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.

  3. Crie um servidor secundário local usando este procedimento: Definição de servidores secundários no computador principal.
    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.
      Obs.:
    • Pare depois de criar o servidor secundário. Não ajuste ainda o modelo da etapa BuildPDFFromDocuments.
  4. Atualize as configurações da JVM para esse servidor secundário.
    1. Abra $AIWDATA/config/jvmsettings.cfg em um editor de texto.
      Por padrão, $AIWDATA é /aiw/aiw1.
    2. 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.

    3. Atualize a linha que você copiou para alterar primary para o valor da propriedade Nome do servidor do servidor secundário.
    4. Atualize o valor após nome_servidor_secundário=-Xmx para a quantidade de memória que você tem disponível para esse processo. O valor deve ser de pelo menos 16g.
    5. Se a linha do seu servidor secundário não incluir esta configuração: -XX:+UseG1GC, atualize a linha para adicioná-la.
    6. Salve e feche o arquivo.
  5. Reinicie o site RICOH ProcessDirector usando o startaiw para aplicar as novas configurações.
  6. Habilite o servidor secundário na interface RICOH ProcessDirector.
  7. Ajuste o modelo da etapa BuildPDFFromDocuments.
    Recomendamos fazer uma cópia do modelo de etapa para usar na configuração multithread.
    1. Abra o Fluxo de Trabalho Modelos de Etapas.
    2. Localize o modelo da etapa BuildPDFFromDocuments, clique com o botão direito do mouse e selecione Copiar.
    3. Na guia Geral, insira um valor para a propriedade Nome.

      Escolha um nome que mostre claramente que essa é a versão multithread da etapa.

    4. Na guia Ajuste:
      • Defina o Ajuste avançado como Multithread nesta etapa.
      • Defina Servidores a serem usados como Executar em servidores específicos e selecione apenas o servidor secundário que você criou.
    5. Na guia PDF, observe todas as propriedades Criar arquivo de controle PDF.
      • Se a sua etapa usar um ou mais arquivos de controle, verifique se a Construir biblioteca está definida como Usar arquivo padrão ou de controle.
      • Se a etapa não usar nenhum arquivo de controle, defina a Construir biblioteca como PDF Java Toolkit.
        Obs.:
      • Os valores na guia PDF podem ser diferentes para cada fluxo de trabalho. Atualize esses valores conforme necessário depois de adicionar esse modelo de etapa a um fluxo de trabalho.
    6. Atualize quaisquer outras configurações conforme necessário para sua instalação.
    7. Clique em OK.
  8. Ativar o modelo de etapa.
  9. 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.
    1. Abra $AIWDATA/config/product.cfg em um editor de texto.
    2. Adicione esta linha ao final do arquivo, substituindo o número de threads que você deseja usar por número_de_threads:
      useBuildPdfMT_MaxThreads=number_of_threads
        Obs.:
      • Recomendamos começar com 4 fios.
    3. Salve e feche o arquivo.
  10. Reinicie o site RICOH ProcessDirector usando o startaiw para aplicar a nova configuração.
  11. 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.cfg para adicionar esses parâmetros:

      • -verbose:gc
      • -XX:+PrintGCDetails
      • -XX:+PrintGCTimeStamps
      • -XX:+PrintGCDateStamps
      • -Xloggc:/aiw/aiw1/trace/gc_secondary.log
      • -XX:+UseGCLogFileRotation
      • -XX:NumberOfGCLogFiles=10

        Ajuste essa configuração para atender às suas necessidades.

      • -XX:GCLogFileSize=8m

        Ajuste essa configuração para atender às suas necessidades.

      Você deve reiniciar o site RICOH ProcessDirector sempre que atualizar o jvmsettings.cfg.

      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.
    • Uso de E/S

  12. 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.