Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Elaboração do tópico sobre Memória
HTML
    <div style="width: 90%; margin: 20px auto; text-align: center;">
        <div style="width: 100%; max-height: 200px; overflow: hidden; margin: 0 auto;">
            <img src="https://i.postimg.cc/8zv25mb2/GIFuniverso-TOTVS.gif" alt="Universo TOTVS GIF" style="max-width: 100%; height: auto;">
        </div>
    </div>

    <div style="width: 90%; margin: 20px auto; text-align: center; margin-top: 50px;background-color: #f5f5f5;">
        <h2 style="margin-bottom: 20px; font-size: 24px; margin-top: 20px;">Palestrantes</h2>

<div style="display: inline-block;">
    <div style="display: inline-block; text-align: center; margin-right: 20px;">
        <img src="https://i.postimg.cc/28g5MT6M/juliano-Foto.png" alt="Palestrante 1 - Juliano" style="width: 100px; height: 100px; border-radius: 50%; margin-bottom: 5px; object-fit: cover;">
        <p>Juliano Gontarski</p>
    </div>
    <div style="display: inline-block; text-align: center;">
        <img src="https://i.postimg.cc/8kJcHqkM/silvano-Foto.png" alt="Palestrante 2 - Silvano" style="width: 100px; height: 100px; border-radius: 50%; margin-bottom: 5px; object-fit: cover;">
        <p>Silvano Rocha</p>
    </div>
</div>


    </div>  

<div style="margin-top: 50px;">     
 <h1 style="position: relative;">
        <span style="float: left; margin-right: 10px; width: 30px; height: 30px; border-radius: 50%; background-color: #6b48ff; color: white; text-align: center; line-height: 30px;">1</span>
        Saindo das <span style="color: #6b48ff;">configurações padrão</span>
    </h1> 
     <h3 style="width: 90%; margin: 20px auto; margin-top: 5px;">Pequenos ajustes para sair ‘da caixinha’</h3>
</div>


 Algumas Configurações básicas costumam ficar esquecidas:



  • Quantidade de Conexões do Fluig com o Banco de Dados (FluigDS, FluigDSRO e Customs)

    Não existe uma configuração padrão para o número de conexões com o banco pois cada forma de uso da Plataforma pode demandar mais ou menos conexões, mas para sair da caixinha - ou sair das configurações padrão do instalador - pode-se ajustar inicialmente o max-pool-size para 300 em cada um dos Datasources.

    Para casos onde a demanda de uso é grande, pode ser necessário um ajuste fino nestes parâmetros, ou ainda considerar um crescimento horizontal da Infraestrutura. Falaremos sobre Load Balance mais à frente.

    O TOTVS Fluig por padrão tem configurados no arquivo domain.xml 3 Datasources para atender às diversas necessidades operacionais. Sendo eles FluigDS FluigDSRO de uso exclusivo da Plataforma e AppDS que é voltado para uso em customizados. Abaixo um exemplo de configuração sugerida para estes Datasources:


Bloco de código
languagejsxml
themeRDark
titleFluigDS
   <datasource jta="true" jndi-name="java:/jdbc/FluigDS" pool-name="FluigDS" enabled="true" use-java-context="false">
        <connection-url>jdbc:mysql://localhost:3306/fluig_mysql?useSSL=false&nullDatabaseMeansCurrent=true</connection-url>
        <driver>mysqlDriver</driver>
        <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
        <pool>
            <min-pool-size>10</min-pool-size>
            <max-pool-size>300</max-pool-size>
 ...
    </datasource>
Bloco de código
languagejsxml
themeRDark
titleFluigDSRO
    <datasource jta="false" jndi-name="java:/jdbc/FluigDSRO" pool-name="FluigDSRO" enabled="true" use-java-context="false">
        <connection-url>jdbc:mysql://localhost:3306/fluig_mysql?useSSL=false&nullDatabaseMeansCurrent=true</connection-url>
        <driver>mysqlDriver</driver>
        <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
        <pool>
            <min-pool-size>5</min-pool-size>
            <max-pool-size>300</max-pool-size>
...
    </datasource>
Bloco de código
languagejsxml
themeRDark
titleAppDS
<datasource        <connection-url>jdbc:mysql://localhost:3306/fluig_mysql?useSSL=false&nullDatabaseMeansCurrent=true</connection-url>
enabled="true" jndi-name="java:/jdbc/AppDS" jta="false" pool-name="AppDS" statistics-enabled="true" use-java-context="false">
        <connection-url>jdbc:mysql://localhost:3306/fluig_mysql?useSSL=false&nullDatabaseMeansCurrent=true</connection-url>
        <driver>mysqlDriver</driver>
        <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
        <pool>
            <min-pool-size>5</min-pool-size>
            <max-pool-size>300</max-pool-size>
...
    </datasource>



           O arquivo domain.xml pode ser encontrado no seguinte caminho: <diretório de instalação do Fluig>\appserver\domain\configuration\domain.xml. A quantidade máxima de conexões pode ser ajustada no parâmetro <max-pool-size>.

          

  • Memória (XMX, MetaSpace)

         Por padrão. o tamanho de memória que o servidor consome vem ajustado em: max-size="4g" size="2g, porém, é possível alterar esses valores. Essa alteração é feita no arquivo host.xml, que pode ser consultado em: <diretório de instalação do Fluig>\appserver\domain\configuration\host.xml.

Sempre realize um Backup do arquivo domain.xml antes de realizar alterações.
As alterações serão aplicadas somente após a reinicialização da Plataforma.

  • Adequação das Filas Assíncronas

Tal como no Banco de Dados, não existe uma configuração padrão para as Filas Assíncronas da Plataforma. Entretanto, alguns ajustes simples podem trazer uma melhor entrega do serviço sem um aumento considerável no consumo de recursos do servidor;
Abaixo, listo uma sugestão de parametrização que costuma atender a maioria dos casos de forma satisfatória:

Bloco de código
languagexml
themeRDark
titleFilas Assíncronas
collapsetrue
            	 <pools>
                    <bean-instance-pools>
                        <strict-max-pool instance-acquisition-timeout="30" instance-acquisition-timeout-unit="MINUTES" max-pool-size="50" name="slsb-strict-max-pool"/>
                        <strict-max-pool instance-acquisition-timeout="30" instance-acquisition-timeout-unit="MINUTES" max-pool-size="50" name="permission-ejb-pool"/>
                        <strict-max-pool instance-acquisition-timeout="30" instance-acquisition-timeout-unit="MINUTES" max-pool-size="50" name="mdb-strict-max-pool"/>
                        <strict-max-pool instance-acquisition-timeout="3" instance-acquisition-timeout-unit="MINUTES" max-pool-size="1" name="mdb-strict-single-pool"/>
                        <strict-max-pool instance-acquisition-timeout="30" instance-acquisition-timeout-unit="MINUTES" max-pool-size="1" name="mdb-deploy-max-pool"/>
                        <strict-max-pool instance-acquisition-timeout="30" instance-acquisition-timeout-unit="MINUTES" max-pool-size="60" name="mdb-strict-multi-pool"/>
                        <strict-max-pool instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES" max-pool-size="5" name="mdb-page-max-pool"/>
                    </bean-instance-pools>
                </pools>

O arquivo domain.xml pode ser encontrado no seguinte caminho: <diretório de instalação do Fluig>\appserver\domain\configuration\domain.xml.
Sempre realize um Backup do arquivo domain.xml antes de realizar alterações.
As alterações serão aplicadas somente após a reinicialização da Plataforma.

  • Ajuste deMemória (XMX, MetaSpace)

Por padrão. as configurações de memória que o instalador fornece são:

size="2g" (memória inicial de consumo)

max-size="4g" (máximo a ser consumido)

Para um ambiente de desenvolvimento local, muitas vezes estes parâmetros são suficientes. Porém, para um ambiente de homologação ou produção, é necessário alterar esses valores.

Esta alteração é feita no arquivo host.xml, que pode ser localizado em: <diretório de instalação do Fluig>\appserver\domain\configuration\host.xml.

Não é recomendado alterar a quantidade inicial (mínima) de memória alocada (size="2g"), pois a plataforma alocará memória de acordo com a necessidade sem que ultrapasse o valor máximo declarado em max-size, podendo retornar até o valor mínimo sempre que a demanda de uso da plataforma diminuir.

Portanto, na tag <heap> o parâmetro a ser ajustado é o 'max-size'.
Nos testes de performance realizados pela equipe de produto, o melhor valor para este parâmetro é 12g, sendo que acima deste valor não há ganho real de performance. Falaremos mais sobre como ir além deste ponto no tópico seguinte 'Dimensionamento'.

Além disto, recomenda-se também ampliar o valor do parâmetro MaxMetaspaceSize, de 1024m (1g) para 2g, conforme exemplo abaixo:

Bloco de código
languagexml
Bloco de código
languagejs
themeRDark
titlehost.xml
 <server auto-start="true" group="fluig" name="fluig1">
            <jvm name="default">
                <heap max-size="4g12g" size="2g"/>
                <jvm-options>
                    <option value="-Dfile.encoding=utf8"/>
                    <option value="-XX:MaxMetaspaceSize=1024m2g"/>
                    <option value="-Djavamelody.disabled=true"/>...

Não é preciso alterar a quantidade inicial (mínima) de memória alocada (size="2g"), pois a plataforma alocará memória de acordo com a necessidade sem que ultrapasse o valor máximo declarado em max-size.

Saiba mais em: Modelo de dimensionamento

Adequação das Filas Assíncronas
/>
...</server>

Esta parametrização sugerida faz um bom uso dos recursos de memória, sem desperdiçar ou alocar recursos que não serão utilizadas de forma não otimizada.

É importante garantir que o servidor tenha memória suficiente para suportar esta configuração.
Tenha em mente que o Sistema operacional também consome memória, então para o ajuste sugerido, deve haver pelo menos 18g de memória instalada no servidor (12g + 2g + 4g para o S.O.).
Na documentação Modelo de dimensionamento pode ser encontrado mais detalhes e recomendações sobre o assunto.

Sempre realize um Backup do arquivo host.xml antes de realizar alterações.
As alterações serão aplicadas somente após a reinicialização da Plataforma.


  • Too Many Open Files e parametrizações que dependem do Sistema Operacional




HTML
<div style="margin-top: 50px;">
     <h1 style="position: relative;">
        <span style="float: left; margin-right: 10px; width: 30px; height: 30px; border-radius: 50%; background-color: #6b48ff; color: white; text-align: center; line-height: 30px;">2</span>
        Dimensionamento
    </h1> 
    <h3 style="width: 90%; margin: 20px auto; margin-top: 5px;">Observar as demandas e responsabilidades atribuídas à Plataforma, e trabalhar com uma entrega coerente de disponibilidade de serviço</h3>
</div>



  • Crescimento Horizontal x Vertical



  • Quantidade de Nós x Demanda Uso 



  • Avaliar as Demandas de Integração para adequar a entrega de disponibilidade



HTML
<div style="margin-top: 50px;">
     <h1 style="position: relative;">
        <span style="float: left; margin-right: 10px; width: 30px; height: 30px; border-radius: 50%; background-color: #6b48ff; color: white; text-align: center; line-height: 30px;">3</span>
Otimização de Dados da Plataforma
</h1> 
    <h3 style="width: 90%; margin: 20px auto; margin-top: 5px;">Ferramentas nativas do Fluig para uso rotineiro</h3>
</div>



HTML
<div style="margin-top: 50px;">
     <h1 style="position: relative;">
        <span style="float: left; margin-right: 10px; width: 30px; height: 30px; border-radius: 50%; background-color: #6b48ff; color: white; text-align: center; line-height: 30px;">4</span>
Chamadas de Serviço Padronizadas
</h1> 
    <h3 style="width: 90%; margin: 20px auto; margin-top: 5px;">A interface de integração da Plataforma é completa e segura</h3>
</div>





HTML
<div style="margin-top: 50px;">
     <h1 style="position: relative;">
        <span style="float: left; margin-right: 10px; width: 30px; height: 30px; border-radius: 50%; background-color: #6b48ff; color: white; text-align: center; line-height: 30px;">5</span>
Controles de logs
</h1> 
    <h3 style="width: 90%; margin: 20px auto; margin-top: 5px;">Um dos Maiores Aliados do desenvolvedor</h3>
</div>



HTML
<div style="margin-top: 50px;">
     <h1 style="position: relative;">
        <span style="float: left; margin-right: 10px; width: 30px; height: 30px; border-radius: 50%; background-color: #6b48ff; color: white; text-align: center; line-height: 30px;">6</span>
Cuidados durante a construção de Processos
</h1> 
    <h3 style="width: 90%; margin: 20px auto; margin-top: 5px;">Quando pequenos detalhes mudam tudo</h3>
</div>




HTML
<div style="margin-top: 50px;">
     <h1 style="position: relative;">
        <span style="float: left; margin-right: 10px; width: 30px; height: 30px; border-radius: 50%; background-color: #6b48ff; color: white; text-align: center; line-height: 30px;">7</span>
Página Home
</h1> 
    <h3 style="width: 90%; margin: 20px auto; margin-top: 5px;">Uma boa experiência na Plataforma inicia com um bom primeiro passo;
A página inicial deve ser leve, rápida e objetiva</h3>
</div>



HTML
<div style="margin-top: 50px;">
     <h1 style="position: relative;">
        <span style="float: left; margin-right: 10px; width: 30px; height: 30px; border-radius: 50%; background-color: #6b48ff; color: white; text-align: center; line-height: 30px;">8</span>
Integração Assíncrona
</h1> 
    <h3 style="width: 90%; margin: 20px auto; margin-top: 5px;">A Maioria das Integrações pode ocorrer enquanto o usuário se ocupa com outras tarefas</h3>
</div>



HTML
<div style="margin-top: 50px;">
     <h1 style="position: relative;">
        <span style="float: left; margin-right: 10px; width: 30px; height: 30px; border-radius: 50%; background-color: #6b48ff; color: white; text-align: center; line-height: 30px;">9</span>
Datasets
</h1> 
    <h3 style="width: 90%; margin: 20px auto; margin-top: 5px;">Boas práticas garantem que este grande aliado não se torne uma dor de cabeça</h3>
</div>



HTML
<div style="margin-top: 50px;">
     <h1 style="position: relative;">
        <span style="float: left; margin-right: 10px; width: 30px; height: 30px; border-radius: 50%; background-color: #6b48ff; color: white; text-align: center; line-height: 30px;">10</span>
Gestão do Banco de Dados
</h1> 
    <h3 style="width: 90%; margin: 20px auto; margin-top: 5px;">Preocupações em tempo de Projeto, Ações de Rotina e manutenções básicas</h3>
</div>