Você está na página 1de 15

Configuraes Avanadas para Potencializar o

Desempenho das Aplicaes da Linha RM


Ir para o final dos metadados

Created by Maisa Gomes de Oliveira on Jun 21, 2013

Ir para o incio dos metadados

Produto

Framework

Processo

Performance

Subproce
sso

Anlise de Performance

Data da
publica
o

21/06/2013

Verso: XX.XX

Introduo
O ERP da TOTVS preparado para trabalhar com diversos usurios e requisies
simultneas, ele capaz de executar vrios processos ao mesmo tempo.
Neste documento apresentaremos informaes avanadas sobre a configurao do
ambiente e do produto, antes recomendamos a leitura e aplicao das recomendaes
do Guia Configuraes bsicas para potencializar o desempenho das aplicaes
Linha RM.
Inicialmente iremos realizar uma introduo sobre alguns itens referente
arquitetura e Framework, Portal, Banco de Dados, ERP e na segunda parte do
documento apresentaremos instrues que visam melhorar a performance do sistema
e garantir que ele trabalhe sempre com os melhores resultados.
Arquivos de configurao do ERP (Host.exe)
Algumas alteraes nos arquivos com a extenso config devero ser realizadas com
objetivo de melhora de perfomance, estes arquivos sero encontrados na pasta
RMNET no diretrio de instalao da aplicao, veja nos links abaixo como
configurar:
Compresso de Dados
Protocolos de Comunicao
Garbage Collector MultiThread
Separao Job Server / App Server
Um Host responsvel por duas tarefas principais:

Processar Jobs;

Responder a requisies de telas.


Em alguns momentos, quando o Host est executando um nmero alto de Jobs, as
aberturas de telas podem levar um tempo excessivo para responder. Isto acontece
porque Jobs e telas dividem os mesmos recursos, sendo o nmero de threads dos
Jobs muito maior. A demora na abertura causa a impresso de que o sistema
apresenta lentido, quando na verdade ele est trabalhando corretamente, contudo
precisa executar as threads dos processos, que so em nmero maior que as threads
de telas.
Temos como principais vantagens:

Telas respondem mais rapidamente, uma vez que no tm que dividir


processamento.

As duas funcionalidades ficam completamente isoladas, podendo sofrer


manuteno e tratamentos separadamente, sem nus para a outra.
A separao do Job Server e do App Server somente se aplica a clientes que
utilizam o ambiente 3 camadas.
Soluo: separar Job Server e App Server em hosts diferentes, para orientao
acesse o item
Job Server / App Server.
Banco de Dados
O banco de dados muito importante no que se diz respeito performance no
produto, por isto muito importante que a empresa tenha um banco de dados com
excelente desempenho para que no seja prejudicada a comunicao entre o produto
e o banco de dados.
Abaixo algumas verificaes que devero ser realizadas com objetivo de melhorar a
perfomance do ERP :
Triggers
Atualizao das estatsticas do banco de dados
Auto create statistics" e "Auto update statistics"
Limpeza de objetos temporrios na base de dados
Monitoramento do log do banco de dados
Reindexao peridica das tabelas
Virtualizao
Paralelismo

Avaliao de ndices
Memria SQL Server
Processos bloqueados no banco de dados
Antivrus
BDE
TSS
Portal RM
Algumas aes podero ser realizadas para que o portal tenha um melhor
desempenho, abaixo citaremos duas destas aes:
Utilizar cache para objetos estticos
Compresso de Pginas
Instrues
1 Compresso de dados

A partir da verso 11.20, o ERP possui a opo de comprimir os dados trafegados


entre server e cliente com isto temos ganho na velocidade de comunicao, aumento
de segurana, uma vez que os dados no esto mais diretamente expostos via Sniffer.
A Compresso habilitada por padro, sempre garantir que, se presente, a tag abaixo
esteja setada como true, tanto no server e no client, no arquivo
RM.HOST.EXE.Config que fica localizado no diretrio de instalao dos aplicativos
RM, dentro da pasta RM.NET:
<add key="EnableCompression" value="true"/>
Retornar para Compresso de Dados.
2 Protocolos de Comunicao

A partir da verso 11.20, o ERP possui as seguintes opes de protocolo de


comunicao de dados:

TCP;

HTTP;

NamedPipe;
Para comunicaes na mesma mquina, o protocolo mais rpido o NamedPipe,
para comunicaes entre Host e Client em mquinas diferentes, a melhor opo o
TCP, por padro, estas so as configuraes default. Contudo, sempre checar se a
configurao no est errada a partir da chave de config, que aceita os valores
citados acima, o arquivo a ser alterado o RM.HOST.EXE.Config, este arquivo fica
localizado no diretrio de instalao dos aplicativos RM, dentro da pasta RM.NET,

abaixo linha a ser verificada no arquivo citado acima:


<add key=WcfProtocol" value=XXXXXX"/>
Retornar para Protocolos de Comunicao.
3 - Garbage Collector MultiThread

Quando operando em ServerMode, o Garbage Collector proporciona desempenho


otimizado para hosts que contm mltiplos ncleos, pois a infraestrutura do .net
framework cria uma thread de coleta para cada ncleo, temos como principais
vantagens a melhor utilizao de recursos da mquina, diminuio do tempo em que
a aplicao fica sobrecarregada pela execuo da coleta
Para utilizao deste recurso devemos acrescentar a tag abaixo no config do Host, o
arquivo a ser alterado o RM.HOST.EXE.Config fica localizado no diretrio de
instalao dos aplicativos RM, dentro da pasta RM.NET:
<configuration>
<appSettings>
...
</appSettings>
<Configuration>
<runtime>
<gcServer enabled=true />
</runtime>
</Configuration>
</configuration>
Retornar para Garbage Collector MultiThread.
4 - Job Server / App Server

Configurao:
1. Configure um ou mais Hosts trabalhando em conjunto.
Sete a propriedade Habilitar Processamento de Job para false no Host que
trabalhar como AppServer;
2. Sete a propriedade Habilitar Processamento de Job para true no Host que
trabalhar como JobServer;
3. Configure todas as mquinas clientes para apontarem seus configs para a mquina
que trabalhar como AppServer, para selecionar a opo "Habilitar Processamento de
Job" dever acessar a pasta RM.NET no diretrio de instalao dos aplicativos RM e
localizar o aplicativo RM.AliasManager e na aba Servios dever marcar a opo
Habilitar Processamento de Job:

Para incluso da tag referente ao AppServer dever acessar os arquivos


RM.Host.exe.config, RM.exe.config,
RM.Host.Service.exe.config,RM.AliasManager.exe.config que ficam localizados na
pasta RM.NET, dentro da pasta de cada um dos aplicativos a tag tambm dever ser
incluida, por exemplo, para o RMLabore dever acessar o arquivo
RMLabore.exe.config.

Retornar para Job Server / App Server.


5 - Caching

O browser tem a capacidade de manter objetos em cache para diminuir o tempo


gasto com a transferncia destes objetos at o cliente. Isto permite um melhor
desempenho no tempo de resposta das pginas.
Configurando o cache de sada do IIS
Aplica-se a: Windows 7, Windows Server 2008, Windows Server 2008 R2, Windows
Vista.
No IIS 7, voc pode configurar o cache de sada para aprimorar o desempenho no
servidor Web e no web site. Quando um usurio solicitar uma pgina da Web, o IIS
processar a solicitao e retornar uma pgina ao navegador cliente. Se voc
habilitar o cache de sada, uma cpia dessa pgina da Web processada ser
armazenada na memria no servidor Web e retornada aos navegadores cliente nas
solicitaes subsequentes para esse mesmo recurso. Isso elimina a necessidade de
reprocessar a pgina sempre que ela for solicitada. Isso til quando o seu contedo
depender de um programa externo para processamento, como com um programa
CGI, ou incluir dados de uma fonte externa, como de um compartilhamento ou banco
de dados remoto.
Para criar uma regra de cache de sada.
possvel realizar este procedimento usando a UI (interface de usurio) ou uma
linha de comando.
Para usar a UI.
1 - Abra o Gerenciador do IIS e navegue at o nvel que deseja gerenciar.
Para obter mais informaes sobre como abrir o Gerenciador do IIS, consulte IIS
7.0: Abrir o gerenciador do IIS.
Para obter informaes sobre como navegar at locais na interface do usurio,
consulte IIS 7.0: Navegao no gerenciador do IIS.
2 - Em Exibio de Recursos, clique duas vezes em Cache de Sada.
3 - No painel Aes, clique em Adicionar.
4 - Na caixa de dilogo Adicionar Regra de Cache, na caixa Extenso de nome de
arquivo, insira a extenso de nome de arquivo, como .aspx, para a qual deseja criar
uma regra de cache.
5 - Marque a caixa de seleo Cache de modo de usurio para habilitar o cache de
sada e selecione uma das seguintes opes:

Usando notificaes de alterao de arquivo: se quiser que um item seja removido do


cache quando for atualizado.
Em intervalos (hh:mm:ss): se quiser que um item seja removido do cache depois que
determinado tempo decorrer. Em seguida, digite uma hora no formato
de hh:mm:ss (onde h so horas, m so minutos e s so segundos) na caixa
correspondente.
Retornar para Caching.
6 - Compresso de pginas

A compresso de pginas HTTP aumenta a velocidade de transmisso entre browsers


com a compresso ativada no IIS. possvel comprimir apenas pastas estticas ou
arquivos estticos e aplicaes.
Fazendo uma analogia, compactar objetos da pgina via server semelhante a zipar
um arquivo grande para enviar por e-mail: voc (servidor web) zipa um grande da
famlia (o componente da pgina)retrato e envia por e-mail para seu amigo (o
browser) que, por sua vez, descompacta o arquivo zip para ver a imagem.
Os mtodos de compresso mais comuns so Deflate e gzip.
Para ativar o IIS a comprimir pginas .aspx, siga estes passos:
1. Abra uma linha de comandos (CMD).
2. Execute o comando: net stop iisadmin (pressioneENTER)
3. Acesse o diretrio C:\InetPub\adminscripts
Comando: cd C:\InetPub\adminscripts
4. Execute o seguinte comando, pressionando ENTER ao final:
Dll "exe cscript.exe ADSUTIL.VBS SET
W3SVC/Filters/compresso/GZIP/HcScriptFileExtensions"asp"" "aspx"
5. Execute o seguinte comando, pressionando ENTER ao final:
aspx"cscript.exe ADSUTIL.VBS SET
W3SVC/Filters/compresso/DEFLATE/HcScriptFileExtensions"asp""dll""exe
""
6. Execute o comando: net start w3svc e na linha de comando para iniciar o IIS.
Retornar para Compresso de pginas.
7 Triggers

A existncia de triggers na base de dados podem evidenciar overheads nos


processamentos de tarefas do banco de dados que interferem na performance das
aplicaes. Abaixo disponibilizamos comandos para desabilitar e habilitar triggers no
banco de dados para realizao e testes de performance.

Sentena para verificao da existncia de triggers na base de dados:


SQL Server:
SELECT NAME FROM SYSOBJECTS WHERE XTYPE = 'TR' AND NAME NOT
LIKE 'Log%';
Oracle:
SELECT TRIGGER_NAME FROM USER_TRIGGERS WHERE
TRIGGER_NAME NOT LIKE 'Log%';
GO

Desabilitando as triggers para avaliao do desempenho das rotinas:


SQL Server:
exec sp_MSforeachtable 'ALTER TABLE ? DISABLE TRIGGER ALL'
Oracle:
DECLARE
V_TRIGGER VARCHAR2 (200);
CID INTEGER ;
CURSOR OBJ IS
SELECT TRIGGER_NAME FROM USER_TRIGGERS ORDER BY
TRIGGER_NAME;
BEGIN
OPEN OBJ;
FETCH OBJ INTO V_TRIGGER;
LOOP EXIT WHEN OBJ%NOTFOUND;
CID := DBMS_SQL.OPEN_CURSOR;
Dbms_Output.Enable (30000);
Dbms_Output.Put_Line ('Eliminando trigger ' || V_TRIGGER || '...');
DBMS_SQL.PARSE(cid, 'ALTER TABLE ' || TABLE_NAME || ' DISABLE
TRIGGER ALL' , dbms_sql.v7);
FETCH OBJ INTO V_TRIGGER;
DBMS_SQL.CLOSE_CURSOR(CID);
END LOOP;
CLOSE OBJ;

END;

Para habilitar novamente as triggers:


SQL Server:
exec sp_MSforeachtable 'ALTER TABLE ? ENABLE TRIGGER ALL'
Oracle:
DECLARE
V_TRIGGER VARCHAR2 (200);
CID INTEGER ;
CURSOR OBJ IS
SELECT TRIGGER_NAME FROM USER_TRIGGERS ORDER BY
TRIGGER_NAME;
BEGIN
OPEN OBJ;
FETCH OBJ INTO V_TRIGGER;
LOOP EXIT WHEN OBJ%NOTFOUND;
CID := DBMS_SQL.OPEN_CURSOR;
Dbms_Output.Enable (30000);
Dbms_Output.Put_Line ('Eliminando trigger ' || V_TRIGGER || '...');
DBMS_SQL.PARSE(cid, 'ALTER TABLE ' || TABLE_NAME || ' ENABLE
TRIGGER ALL' , dbms_sql.v7);
FETCH OBJ INTO V_TRIGGER;
DBMS_SQL.CLOSE_CURSOR(CID);
END LOOP;
CLOSE OBJ;
END;
Retornar para Triggers.
8 - Atualizao das estatsticas do banco de dados

As estatsticas coletadas pelo banco de dados propiciam um melhor desempenho para


realizar pesquisas nas tabelas, atravs de um plano de execuo mais eficiente,
estatsticas desatualizadas podem degradar a performance do banco de dados.
Retornar para Atualizao das estatsticas do banco de dados.

9 - "Auto create statistics" e "Auto update statistics"

As opes do database "Auto create statistics" e Auto update statistics podem levar a
gerao automtica de um nmero grande de objetos de estatsticas, e o tempo
necessrio para sua atualizao pelo banco de dados provavelmente implicar em
perda de performance.
Retornar para "Auto create statistics" e "Auto update statistics".
10 - Limpeza de objetos temporrios na base de dados

A limpeza peridica de registro de log e arquivo morto pode beneficiar bastante a


execuo de consultas e manipulao de dados nestas tabelas.
Retornar para Limpeza de objetos temporrios na base de dados.
11 - Monitoramento do log do banco de dados

Problemas com a performance podem ter origem em eventos que so registrados no


log do banco de dados, como por exemplo falhas na leitura de pginas do banco,
deadlocks, etc, por isto recomendamos o monitoramento do log do banco de dados.
Retornar para Monitoramento do log do banco de dados.
12 - Reindexao peridica das tabelas

A reindexao peridica das tabelas sumariamente necessria para o bom


desempenho das aplicaes, uma vez que este procedimento desfragmenta os ndices
das tabelas, proporcionando uma maior eficcia no processo de pesquisa no ndice.
Retornar para Reindexao peridica das tabelas.
13 - Virtualizao

A virtualizao tem como objetivo ampliar a escabilidade do ambiente, mas pode


gerar overhead no processamento dos dados, h duas maneiras de separar as
aplicaes SQL Server em unidades lgicas de isolamento. Um deles para executar
o SQL Server em vrias instncias dentro de um ambiente fsico.
Outra maneira executar o SQL Server dentro de um ambiente virtual, executando
vrias instncias do SQL Server em um ambiente fsico isolando cada instncia no
nvel do aplicativo, em outras palavras, cabe a cada instncia do SQL Server isolar os
recursos do sistema, dados e segurana dos outros.
importante notar que um dos benefcios de um ambiente virtual que ele pode
executar qualquer sistema operacional suportado pela aplicao da tecnologia virtual.
Por exemplo, um ambiente virtual pode estar executando o Windows Server 2003,
outro pode executar o Windows NT 4.0, e ainda um outro pode executar o
Windows Server 2000. Um ambiente virtual consiste em uma ou mais mquinas
virtuais.
O responsvel pelo banco de dados da empresa dever ficar atento ao virtualizar o
servidor de banco de dados para no comprometer a performance do hardware, ou
seja, sobrecarregar este servidor com vrios ambientes virtualizados.

Retornar para Virtualizao.


14 - Paralelismo

Atualmente, vivemos em uma era em que os microprocessadores so dominados por


mltiplos ncleos, recomendvel sempre procurar explorar o paralelismo em banco
de dados, a explorao de paralelismo deve ser considerada quando for necessrio
otimizar instrues SQL.
O SQL Server detecta automaticamente o melhor grau de paralelismo para cada
instncia de uma execuo de consulta paralela operao DDL (linguagem de
definio de dados) do ndice. Isso feito baseado nos seguintes critrios:
1 - Se o SQL Server estiver sendo executado em um computador que tenha mais de
um microprocessador ou mais de uma CPU, como um computador SMP
(multiprocessamento simtrico). Apenas computadores que tm mais de uma CPU
podem usar consultas paralelas.
2 -Se houver threads suficientes disponveis.
Cada operao de consulta ou ndice exige um determinado nmero de threads para
execuo. A execuo de um plano paralelo exige mais threads que um plano
consecutivo, e o nmero de threads exigidos aumentam com o grau de paralelismo.
Quando o requisito de thread do plano paralelo de um grau especfico de paralelismo
no puder ser atendido, o Mecanismo de Banco de Dados diminuir
automaticamente o grau de paralelismo ou abandonar completamente o plano
paralelo no contexto de carga de trabalho especificado. Depois, ele executar o plano
consecutivo (um thread).
3 - O tipo de operao de consulta ou de ndice executada.
As operaes de ndice que criam ou reconstroem um ndice, ou descartam um ndice
cluster e as consultas que usam ciclos de CPU frequentemente so as melhores
opes para um plano paralelo. Por exemplo, junes de tabelas grandes, agregaes
grandes e classificao de conjuntos de resultados grandes so boas alternativas. As
consultas simples, frequentemente encontradas em aplicativos de processamento de
transaes, localizam a coordenao adicional exigida para executar consulta em
paralelo que supera o aumento de desempenho potencial. Para distinguir as consultas
que se beneficiam de paralelismo das que no se beneficia, o Mecanismo de Banco
de Dados compara o custo estimado da execuo da operao de consulta ou ndice
com o valor cost threshold for parallelism. Embora no recomendado, os usurios
podem alterar o valor padro 5 usando sp_configure.
4 - Se houver um nmero suficiente de linhas para processar.
Se o otimizador de consulta determinar que o nmero de linhas muito baixo, no
apresentar os operadores de troca para distribuir as linhas. Por conseguinte, os
operadores sero executados em srie. A execuo dos operadores em um plano
consecutivo evita cenrios quando os custos de inicializao, distribuio e
coordenao excedem os ganhos alcanados pela execuo de operador paralela.
5 - Se as estatsticas de distribuio atuais estiverem disponveis.
Se o grau mais alto de paralelismo no for possvel, os graus inferiores sero

considerados antes de o plano paralelo ser abandonado. Por exemplo, quando voc
criar um ndice cluster em uma exibio, no podero ser avaliadas estatsticas de
distribuio, porque o ndice cluster ainda no existir. Nesse caso, o Mecanismo de
Banco de Dados no poder fornecer o grau mais alto de paralelismo para a operao
de ndice. Porm, alguns operadores, como de classificao e verificao, ainda
podero se beneficiar da execuo paralela.
Retornar para Paralelismo.
15 - Avaliao de ndices

Auditar e usar ndices no uma tarefa fcil, mas fundamental para elevar a
performance no banco de dados.
Tipos de avaliao:
Indexes (Clustered)
Indexes (Composio)
Indexes (Covering)
Indexes (Non-clustered)
Indexes (Rebuild)
Index Tuning Wizard
Retornar para Avaliao de ndices.
16 - Memria SQL

Deixar disponvel o mximo de memria que poder ser utilizada pelo SQL Server
sem que isto atrapalhe outros processos que estiverem rodando no servidor, esta
anlise dever ser feita pelo DBA da empresa.
1 - Acessar o Microsoft SQL Server conectando ao servidor, em seguida clicar com o
boto direito sobre a instncia e clicar em Properties:

2 - Clicar na opo Memory e nos campos referente a Server memory options


dever preencher os campos Minimum server memory(in MB),este campo com o
mnimo de memria que o Server ir utilizar e preencha tambm o campo Maximum
server memory (in MB) com o mximo de memria que o Server poder utilizar do
servidor.

Retornar para Memria SQL.


17 - Processos bloqueados no banco de dados

O procedimento sp_who serve para ter uma viso geral sobre as conexes existentes
e verificar se existe alguma conexo bloqueada (Block), est uma tarefa que dever

ser executada pelo responsvel pelo banco de dados na empresa.


Retornar para Processos bloqueados no banco de dados.
18 - Antivrus

Algumas rotinas nas aplicaes utilizam-se de recursos temporrios gravados em


disco que so frequentemente recriados, gerando um nmero muito grande de
acessos ao disco, e o monitoramento por um antivrus durante esta tarefa gera atrasos
no processamento da aplicao.
Retornar para Antivrus.
19 - BDE

O BDE pode ser otimizado para beneficiar algumas rotinas da aplicao, mas uma
vez que isto seja feito sem algum critrio poder incorrer na perda de performance
para alocao e gerenciamento dos recursos de memria e CPU.
A utilizao de valores muito altos para BLOB SIZE, BLOBS TO CACHE e
MAXFILEHANDLES pode leva uma menor performance de algumas rotinas.
A necessidade de incrementar estes parmetros se dar pelo volume de informaes
processadas em cache nestas rotinas.
No ambiente do DataCenter foi ajustado o parmetro BLOB SIZE de 3000 para 512.
Este parmetro pode ser configurado com valores > 32 e < 1000, portanto o valor
antigo era invlido.
Sugerimos as seguintes configuraes:
Database:
BLOB SIZE = 512
BLOBS TO CHACHE = 1024
Configuration Native MSSQL:
TIMEOUT = 7200
Configuration System Init:
MAXFILEHANDLES = 2048
MEMSIZE = 205
Retornar para BDE.
20 TSS

TSS o aplicativo que faz a intermediao do TOTVSSped com os vrios tipos de


banco de dados com os quais ele pode trabalhar.
So eles: DB2, MSSQL, Oracle, Informix, PostGres, MySQL.
O TopConnect deve ser instalado somente em uma estao. Por poder trabalhar com
vrios tipos de banco de dados no necessrio que o mesmo seja para a base do
Corpore RM e apontado tambm no necessrio que o mesmo seja instalado em

seu servidor de banco de dados. aconselhada a criao de uma base de dados


exclusiva para o SPED devido ao fato do processo gerar muitos registros e do
servio de consulta de autorizao das notas ser executado com muita frequncia nas
suas tabelas.
Caso deseje ele pode apontar o TopConnect para sua base do Corpore RM. A escolha
da base de dados e do banco para o SPED fica a cargo do cliente.
Uma vez definido o banco e a base a ser utilizada isto no poder ser refeito sem a
perda de dados da base do SPED.
Atravs do endereo www.suporte.totvs.com na rea de download, para localizar o
arquivo para download ser necessrio parametrizar o filtro da seguinte forma:
Linha : RM
Ambiente: RM-99.x
No campo Filtrar dever digitar TSS.
Para orientao na configurao do TSS acesse nosso blog:
http://www.totvsconnect.blogspot.com/2010/12/dica-configuracao-tss.html
Retornar para TSS.

Você também pode gostar