Histórico da Página
Informações | ||
---|---|---|
| ||
Clientes Cloud, é necessário entrar em contato com o time de Cloud para que os procedimentos sejam realizados. |
Índice
Índice | ||||
---|---|---|---|---|
|
Objetivos
...
Problemas de lentidão no TOTVS Fluig Plataforma podem acontecer por diversos motivos, por isso, reunimos alguns métodos e ações que podem auxiliar o usuário administrador do ambiente a reduzir ou sanar a lentidão.
Pré-requisitos
...
- O ambiente do usuário deve estar de acordo com Servidores respeitando o Modelo de dimensionamento.
- O ambiente do usuário deve seguir Plataforma de acordo com os padrões descritos na da Matriz de portabilidadePortabilidade.
- O ambiente deve seguir Ambiente em consonância com os ciclos de Atualização da plataforma.
- Conferir outras Especificações Técnicas necessárias.
- Conhecimento prévio referente as documentações: Avaliação de lentidão na plataforma e Performance e análise do servidor.
...
01. Executar as consultas abaixo no banco de dados e enviar os resultados em prints ou formato .csv para a equipe de Suporte Fluig. Para isso, é necessária a abertura de um ticket no Portal do Cliente: na Central de Atendimento, através das opções: Nova Solicitação → Suporte Técnico.
Bloco de código | ||
---|---|---|
| ||
select COD_DATASET from serv_dataset where DSL_DATASET like '%FluigDS%'; select nr_documento, COD_EVENT from event_ficha where DSL_EVENT like '%FluigDS%'; select COD_EVENT from event_geral where DSL_EVENT like '%FluigDS%'; select event_proces.COD_DEF_PROCES, COD_EVENT from event_proces where DSL_EVENT like '%FluigDS%'; |
...
01. Os arquivos de instalação abaixo são os mais solicitados pela equipe Suporte Fluig. Caso seja necessário, realize a abertura de um ticket no Portal do Cliente, na Central de Atendimento, através das opções: Nova Solicitação → Suporte Técnico e anexe esses arquivos ao chamado, pois agilizará bastante . Essa ação agilizará todo o processo de atendimento:
...
03. Termos de buscas mais comuns no glogg:
- ERROR;
- ja esta sendo executado por;
- executou por;
- invokeFunction.servicetask64;
- invokeFunction.createDataset;
- Thread em execução (ex.: default task-39).
04. Principais achados no server.log:
a) Sincronização de datasets levando mais tempo que o tolerável para finalizar as sincronizações. No exemplo, os datasets estão sincronizando por mais de 2500 segundos:
Bloco de código | ||||
---|---|---|---|---|
| ||||
2023-05-29 10:42:00,740 WARN com.fluig.monitoring.jschronos.JSChronos DatasetMetaListServiceBean.datasetSync executou por 2520 segundos 2023-05-29 10:42:00,740 INFO com.fluig.bpm.service.DatasetMetaListServiceBean Fim da sincronização do Dataset : dsFuncionario 2023-05-29 11:08:39,167 WARN com.fluig.monitoring.jschronos.JSChronos DatasetMetaListServiceBean.datasetSync executou por 2318 segundos 2023-05-29 11:08:39,168 INFO com.fluig.bpm.service.DatasetMetaListServiceBean Fim da sincronização do Dataset : dsEmpresas |
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
2022-11-23 15:59:03,511 WARN [com.fluig.monitoring.jschronos.JSChronos] (JSChronos.CustomizationManagerImpl.invokeFunction.createDataset) CustomizationManagerImpl.invokeFunction.createDataset ja esta sendo executado por 2211 segundos params: [[[Ljava.lang.String;@268d1e17, null, null], Thread = default task-6727, datasetId = dsDatabase] 2.211 segundos 2022-11-24 08:51:22,088 WARN [com.fluig.monitoring.jschronos.JSChronos] (JSChronos.CustomizationManagerImpl.invokeFunction.createDataset) CustomizationManagerImpl.invokeFunction.createDataset ja esta sendo executado por 60 segundos params: [[[Ljava.lang.String;@7cec0760, [Lcom.totvs.technology.foundation.dataset.SearchConstraint;@64de871c, null], Thread = default task-35, datasetId = dsChecklistCRUD] 2023-02-14 09:17:47,722 WARN [com.fluig.monitoring.jschronos.JSChronos] (JSChronos.CustomizationManagerImpl.invokeFunction.createDataset) CustomizationManagerImpl.invokeFunction.createDataset ja esta sendo executado por 300 segundos params: [[null, [Lcom.totvs.technology.foundation.dataset.SearchConstraint;@67eb8082, null], Thread = default task-389, datasetId = ds_sql_update] 2023-02-14 09:17:56,587 WARN [com.fluig.monitoring.jschronos.JSChronos] (JSChronos.CustomizationManagerImpl.invokeFunction.servicetask64) CustomizationManagerImpl.invokeFunction.servicetask64 ja esta sendo executado por 120 segundos params: [[Process id = alteracao_de_preco, Process Version = 23, Process Current UserId = brunousuario.vieirauser], Thread = default task-413, datasetId = workflowColleagueRole] |
...
c) Os termos "invokeFunction.servicetask64"e "invokeFunction.createDataset",geralmente, possuem relação com datasets de Workflow (Processos):
Bloco de código | ||||
---|---|---|---|---|
| ||||
2023-02-14 08:39:38,114 WARN [com.fluig.monitoring.jschronos.JSChronos] (default task-323) CustomizationManagerImpl.invokeFunction.servicetask64 executou por 565 segundos 2023-02-14 08:39:38,114 WARN [com.fluig.monitoring.jschronos.JSChronos] (default task-323) params: [[Process id = alteracao_de_preco, Process Version = 23, Process Current UserId = brunousuario.vieirauser], Thread = default task-323, datasetId = workflowColleagueRole] |
domain.xml
01. O domain.xml pode ser consultado em: <diretório de instalação do Fluig>\appserver\domain\configuration\domain.xml.
02. Verificar o valor do <max-pool-size> nos datasources. O <max-pool-size> pode ser ajustado entre 50-200. É possível utilizar um <max-pool-size> menor, se houver mais de um banco de dados no mesmo servidor.
Bloco de código | ||
---|---|---|
| ||
<datasources>
<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>50</max-pool-size>
</pool>
<security>
<user-name>root</user-name>
<password>root</password>
</security>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
<validate-on-match>true</validate-on-match>
<background-validation>false</background-validation>
</validation>
<statement>
<share-prepared-statements>false</share-prepared-statements>
</statement>
</datasource>
<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>15</max-pool-size>
</pool>
<security>
<user-name>root</user-name>
<password>root</password>
</security>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
<validate-on-match>true</validate-on-match>
<background-validation>false</background-validation>
</validation>
<timeout>
<blocking-timeout-millis>30000</blocking-timeout-millis>
</timeout>
<statement>
<share-prepared-statements>false</share-prepared-statements>
</statement>
</datasource>
<datasource jta="false" jndi-name="java:/jdbc/AppDS" pool-name="AppDS" 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>15</max-pool-size>
</pool>
<security>
<user-name>root</user-name>
<password>root</password>
</security>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
<validate-on-match>true</validate-on-match>
<background-validation>false</background-validation>
</validation>
<timeout>
<blocking-timeout-millis>30000</blocking-timeout-millis>
</timeout>
<statement>
<share-prepared-statements>false</share-prepared-statements>
</statement>
</datasource>
<drivers>
<driver name="mysqlDriver" module="com.mysql">
<driver-class>com.mysql.jdbc.Driver</driver-class>
</driver>
</drivers>
</datasources> |
host.xml
d) Busca pela thread em execução (default task-39):
Bloco de código | ||||
---|---|---|---|---|
| ||||
2023-05-29 09:30:53,414 WARN [com.fluig.monitoring.jschronos.JSChronos] (default task-39) CustomizationManagerImpl.invokeFunction.createDataset executou por 32 segundos
2023-05-29 09:30:53,414 WARN [com.fluig.monitoring.jschronos.JSChronos] (default task-39) params: [[[Ljava.lang.String;@6c45e716, [Lcom.totvs.technology.foundation.dataset.SearchConstraint;@a1b6a73, null], Thread = default task-39, datasetId = ds_RMConsulta]
2023-05-29 09:30:53,437 WARN [com.fluig.monitoring.jschronos.JSChronos] (default task-39) DatasetFactory.getDataset.ds_RMConsulta executou por 32 segundos
2023-05-29 09:30:53,437 WARN [com.fluig.monitoring.jschronos.JSChronos] (default task-39) params: [[TBC012.05, 1, T], [FIELD_NAME=COLIGADA; INITIAL_VALUE=1; FINAL_VALUE=1; CONSTRAINT_TYPE=MUST; IS_LIKE_SEARCH=false; ], null]
2023-05-29 09:31:24,672 INFO [com.datasul.technology.webdesk.dataset.business.DatasetBO] (default task-39) Executando Dataset com ID ds_RMConsulta do tipo Avançado.
2023-05-29 09:31:24,672 INFO [com.datasul.technology.webdesk.dataset.business.DatasetBO] (default task-39) Builder rodando sem o mobile
2023-05-29 09:31:24,719 INFO [com.datasul.technology.webdesk.customization.ScriptingLog] (default task-39) uf-log | Chamada do DataSet ds_RMConsulta
2023-05-29 09:31:24,734 INFO [com.datasul.technology.webdesk.dataset.business.DatasetBO] (default task-39) Executando Dataset com ID ds_RMConecta do tipo Avançado.
2023-05-29 09:31:24,735 INFO [com.datasul.technology.webdesk.dataset.business.DatasetBO] (default task-39) Builder rodando sem o mobile
2023-05-29 09:31:24,786 INFO [org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean] (default task-39) Creating Service {http://www.totvs.com/}wsConsultaSQL from WSDL: http://peg54p-prd-ws.totvscloud.com.br:8083/wsConsultaSQL/MEX?wsdl
2023-05-29 09:31:24,800 WARNING [org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean] (default task-39) No method was found for the WSDL operation {http://www.totvs.com/}RealizarConsultaSQLContexto.
2023-05-29 09:31:24,805 INFO [org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean] (default task-39) Creating Service {http://www.totvs.com/}IwsConsultaSQLService from class com.totvs.IwsConsultaSQL
2023-05-29 09:31:24,812 INFO [com.datasul.technology.webdesk.customization.ScriptingLog] (default task-39) uf-log | Dados da chamada ao serviço wsConsultaSQL:
2023-05-29 09:31:24,812 INFO [com.datasul.technology.webdesk.customization.ScriptingLog] (default task-39) uf-log | CODSENTECA: TBC012.03
2023-05-29 09:31:24,812 INFO [com.datasul.technology.webdesk.customization.ScriptingLog] (default task-39) uf-log | CODCOLIGADA: 1
2023-05-29 09:31:24,812 INFO [com.datasul.technology.webdesk.customization.ScriptingLog] (default task-39) uf-log | APLICACAO: T
2023-05-29 09:31:24,812 INFO [com.datasul.technology.webdesk.customization.ScriptingLog] (default task-39) uf-log | PARAMETRO:
2023-05-29 09:31:24,922 INFO [com.datasul.technology.webdesk.customization.ScriptingLog] (default task-39) uf-log | Chamada realizada com sucesso.
2023-05-29 09:31:24,923 INFO [com.datasul.technology.webdesk.customization.ScriptingLog] (default task-39) uf-log | Quantidade de registros retornados: 57 |
domain.xml
...
01. O domain01. O host.xml pode ser consultado em: <diretório de instalação do Fluig>\appserver\domain\configuration\hostdomain.xml.
02. O tamanho de memória que o servidor consome pode ser alterado. Recomendamos utilizar os valores: max-size em 4g e size em 2g<max-pool-size> pode ser ajustado entre 50-200 nos datasources. É possível utilizar um <max-pool-size> menor, quando houver mais de um banco de dados no mesmo servidor.
Bloco de código | ||||
---|---|---|---|---|
| ||||
<datasources> <datasource jta<server auto-start="true" groupjndi-name="fluigjava:/jdbc/FluigDS" pool-name="fluig1"> <jvm name="defaultFluigDS" enabled="true" use-java-context="false"> <heap max-size="4g" size="2g"/> <jvm-options> <option value="-Dfile.encoding=utf8"/> <option value="-XX:MaxMetaspaceSize=1024m"/> <option value="-Djavamelody.disabled=true"/> <!-- Debug <option value="-Xdebug"/> <option value="-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"/> --> </jvm-options> </jvm> </server> |
03. O Fluig suporta até 16 GB de memória, sendo essa, uma limitação do JBoss. Caso o seu servidor de aplicação tenha mais de 16 GB de memória, recomendamos o uso de um cluster para distribuir os recursos.
04. 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.
<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>100</max-pool-size>
</pool>
<security>
<user-name>admin</user-name>
<password>admin</password>
</security>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
<validate-on-match>true</validate-on-match>
<background-validation>false</background-validation>
</validation>
<statement>
<share-prepared-statements>false</share-prepared-statements>
</statement>
</datasource>
<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>50</max-pool-size>
</pool>
<security>
<user-name>admin</user-name>
<password>admin</password>
</security>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
<validate-on-match>true</validate-on-match>
<background-validation>false</background-validation>
</validation>
<timeout>
<blocking-timeout-millis>30000</blocking-timeout-millis>
</timeout>
<statement>
<share-prepared-statements>false</share-prepared-statements>
</statement>
</datasource>
<datasource jta="false" jndi-name="java:/jdbc/AppDS" pool-name="AppDS" 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>150</max-pool-size>
</pool>
<security>
<user-name>admin</user-name>
<password>admin</password>
</security>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
<validate-on-match>true</validate-on-match>
<background-validation>false</background-validation>
</validation>
<timeout>
<blocking-timeout-millis>30000</blocking-timeout-millis>
</timeout>
<statement>
<share-prepared-statements>false</share-prepared-statements>
</statement>
</datasource>
<drivers>
<driver name="mysqlDriver" module="com.mysql">
<driver-class>com.mysql.jdbc.Driver</driver-class>
</driver>
</drivers>
</datasources> |
host.xml
...
01. O host.xml pode ser consultado em: <diretório de instalação do Fluig>\appserver\domain\configuration\host.xml.
02. Por padrão. o tamanho de memória que o servidor consome vem ajustado em: max-size="4g" e size="2g, porém, é possível alterar esses valores:
Bloco de código | ||||
---|---|---|---|---|
| ||||
<jvm name="default">
<heap max-size="8g" size="3g"/>
<jvm-options>
<option value="-Dfile.encoding=utf8"/>
<option value="-XX:MaxMetaspaceSize=1024m"/>
<option value="-Djavamelody.disabled=true"/>
<!-- Debug
<option value="-Xdebug"/>
<option value="-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"/>
-->
</jvm-options>
</jvm>
</server> |
03. O Fluig suporta até 16 GB de memória, sendo essa, uma limitação do JBoss. Caso o seu servidor de aplicação tenha mais de 16 GB de memória, recomendamos o uso de um cluster para distribuir os recursos.
Saiba mais em: Alta disponibilidade e Balanceamento de carga
04. 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.
Saiba mais em: Modelo de dimensionamento
Outros interferentes na performance da plataforma
...
01. Execução de backups da aplicação e/ou banco de dados em horários de maior utilização da plataforma.
02. Customizações onerosas no diretório: <diretório de instalação do Fluig>\appserver\apps.
03. Plataforma desatualizada.
04. Problemas na Configuração HTTPS da plataforma.
05. Problemas na Configuração de proxy reverso.
06. Excesso de consultas em datasets, pois podem gerar estresse desnecessário ao banco de dados. Saiba mais em: Modelo de dimensionamento