Páginas filhas
  • Escalabilidade horizontal com TSS

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: alteração de chave em ini de exemplo

Utilizando o processamento do TSS para transmissão de nota fiscal de serviço em escalabilidade horizontal e vertical.

O intuito deste documento é apresentar os requisitos para a elaboração do sizing recomendado para o processamento da nota fiscal de serviço. No teste executado, foram obtidos resultados de 18 mil notas/horas em seu processamento. Aumentado os recursos computacionais conforme a necessidade, o resultado pode chegar a 36, 54, 72, 90, (...) mil notas/horas; ou seja, aumenta-se o volume de processamento conforme a demanda necessária e tempo que é necessárionecessários.

A arquitetura de processamento vertical e horizontal para o TSS foi baseada nas informações contidas neste documento.

Informações
titlePontos importantes
: o
  • O TSS não utiliza licenciamento. Este transmissor de nota fiscal é usado para o ecossistema da Totvs e, para usufruir deste processamento, é importante respeitar as configurações e sizing recomendado.
  • Este modelo atende a cenários com sistema operacional Windows e Linux, bem como os SGBDs PostgreSQL, Oracle e SQL Server.

  • Para se obter um processamento eficiente, é importante usar o dbaccess em modo distribuído.

  • Sempre utilize a versão do TSS mais atual
, neste caso usamos a release do TSS
  • . Para este teste, foram utilizadas as releases do TSS: 12.1.27, 12.1.33 e 12.1.2210.
33

Arquitetura das máquinas

Cada máquina secundária processou, no teste executado, 18 mil notas. Por exemplo, ao se utilizar 4 máquinas foi possível

Doc processamento vertical e horizontal.

Exemplo da Arquitetura Maquina:

Cada máquina processando 18 mil notas dando como exemplo usando 4 máquinas chegando a processar 72 mil notas/horas, caso precise aumentar mais . Caso necessário, é possível processar mais notas ao aumentar a quantidade de notas usando como base o exemplo aumentar a máquinas horizontal incluindo mais uma dando um total 5 máquina chegando a processar 90 mil notas horas vai aumento conforme a necessidade de diminuir quando não se precisa maismáquinas secundárias, tomando como exemplo o cenário descrito. Também é possível diminuir a quantidade de máquinas secundárias, de acordo com a demanda de processamento.

Image Modified


Exemplo da

Arquitetura Instalação TSS

Desenho de instalação dos Serviços e a forma distribuída de cada servidor.referente à distribuição de serviços em cada servidor:

Image Modified

Sizing Recomendado

Image Removed

PostgreSQL

Oracle

SQL Server

Tipo Servidor RamSO Maximo
Tabela de referência da arquitetura computacional

Servidor

Primário

Secundário

Banco de dados

Tipo de servidor

Servidor

Image Removed

  Image Removed

Primário

Secundário

SGBD

Escalabilidade

Vertical

Horizontal

Vertical

Processador

8 Core

8 Core

8 Core

Memória

RAM

32 GB

32 GB

32 GB

Rede

10Gbit

10Gbit

10Gbit

IOPS/

Sistema Operacional

500

800

500

IOPS/Aplicação

500

500

---

IOPS/SGBD/Dados Index

------

7500

Throughput

Máximo Disco (MBps)

300

250

400

Tabela de recomendações para performance de IOPS

Disco 7.200 RPM SATA 

~75-100 IOPS (não recomendado)

Disco 15.000 RPM SAS

~175-210 IOPS (não recomendado)

Disco SSD simples (primeira geração) SATA 3 Gb/s

~8.600 IOPS (Recomendado)

Disco SSD Nova Geração 6Gb/s

~85.000 IOPS (Preferencial)

Nota
titleAtenção
  • Não recomendamos o uso de discos SATA 7.200 RPM, pois o mesmo tem um baixo desempenho no throughput de I/O.
  • Não recomendamos o uso de conexão iSCSI de 1GBit, mas sim, no mínimo, canais de 10GBit para o uso iSCSI.
  • Em caso de uso de storage com suporte ao TIER, utilize, de preferência, Tier 0, Tier 1 e Tier 2. Porém, é necessário validar a tecnologia de cada Storage, em alguns casos o cache da Storage pode suprir a necessidade do ambiente.
  • Na camada do Sistema Operacional é importante verificar se a média de escrita ou leitura se mantém inferior a 25ms
  • Não recomendamos o uso do Protheus no modelo Tier 3 pela sua baixa performance, tanto para o banco de dados quanto para a aplicação, pois o mesmo é se aplica para cenários de backup, que não terão muito acesso em disco.
  • Algumas Storages indicam o Tier 2 somente para backup. Verifique a documentação de cada fabricante para conferir qual Tier é indicado para o ambiente de produção.
  • Em Storages com tecnologia mais antiga, os Raids indicados são 5, 10 e 50. Porém, as storages mais recentes apresentam novas tecnologias de cache que aceleram o acesso aos dados. Analise a documentação de cada storage para verificar o melhor raid ou tier para seu cenário.
Nota
titleImportante

Para os SGBDs é importante que o volume de dados e de índices estejam separados. No caso de 7500 IOPS, segue exemplo de divisão:

  • Tablespace de dados 5000 IOPS;
  • Tablespace de índices 2500 IOPS.

Configuração dos serviços

Informações
titleNota: Appserver.ini do Serviço Broker
  • Os arquivos de configuração abaixo são os exemplos utilizados nos testes. Certifique-se de que as configurações de seu ambiente estão corretas antes de implementar alterações em cenários de produção.
  • No wizard do ERP, use a URL do broker,
Informações
titleImportante

Para os SGBDs é importante que o volume de dados e de índices seja separado para do 7500 IOPS sejam separado da seguinte forma.

Tablespace de dados 5000 IOPS

Tablespace de index 2500 IOPS

Configuração dos serviços

Appserver.ini do Serviço Broker

No wizard dos ERP usar o ip e porta do broker
  • pois o mesmo será responsável pela distribuição.
Totvs custom tabs box
tabsBroker,Appserver Secundário,DBAccess primário, DBAccess secundário
ids01,02,03,04
Totvs custom tabs box items
defaultyes
referencia01
Bloco de código
;BROKER

[GENERAL]

; configuracao recomendada para gravação de log

ConsoleLog=1

ConsoleLogDate=0

ConsoleFile=E:\totvs\TSS\bin\logs\consolebrokertss.log

 

 


 
;[BALANCE_HTTP]

[balance_web_services]

; porta onde este broker server atende pedidos de conexão dos broker clients

LOCAL_SERVER_PORT = 8088


;Secondary

REMOTE_SERVER_01 = 10.17.23.10 8088

REMOTE_SERVER_02 = 10.17.23.10 8089

REMOTE_SERVER_03 = 10.17.23.11 8088

REMOTE_SERVER_04 = 10.17.23.11 8089

REMOTE_SERVER_05 = 10.17.23.12 8088

REMOTE_SERVER_06 = 10.17.23.12 8089

REMOTE_SERVER_07 = 10.17.23.13 8088

REMOTE_SERVER_08 = 10.17.23.13 8089


; Balanceamento por consumo de CPU ou por memoria reportado pelo TOTVS | Application Server

SORT_METHOD = SERVER_CPU

;SORT_METHOD=SERVER_MEMORY

SERVICE_NAME = TSSBROKER

SERVICE_DISPLAY_NAME = "TOTVS | TSS (Broker)"
Totvs custom tabs box items
defaultno
referencia02
Secundário 01
Bloco de código
;===================================================

;================  Nome do servico  ==
 Nome do meu servico  
==============

;===================================================

[Service]

Name=.TSSCloud-AppTSS-sec01

DisplayName=.TSS Cloud | AppTSS-sec01


;===================================================

;=================
 Meu ambiente  
  Meu ambiente  ==================

;===================================================


[SPED]

SourcePath=E:\totvs\TSS\apo\

RootPath=\\10.17.23.5\totvs\TSS

StartPath=\system\

RpoDb=top

RpoLanguage=Portuguese

RpoVersion=120

RpoInterface=Windows

LocalFiles=ctree

Trace=0

TopMemoMega=1

ChangeEncodingBehavior=1

SPED_HVERAO=0

TSSOndemand=1

TSSLOGINFO=0

TSSLOGERRO=0

MAXQUERYSIZE=31960

SPED_SAVEWSDL=1

SPED_DELMAIL=1

;LogProfiler=1

;SPED_SAVEWSDL=1 - Permite que seja gravado na Pasta SYSTEM, os Xmls de comunicação do TSS com os Web Services Externos. Esta chave deve ser

;habilitada apenas em casos que seja realmente necessário, pois, pode causar uma grande lentidão na comunicação.

; Mais detalhes de uso consulte : https://tdn.totvs.com/x/7GHXIQ


;===================================================

;======
 Minha
  Minha conexao com o banco de Dados
 
  =======

;===================================================


[TopConnect]

DataBase=MSSQL

Server=127.0.0.1

ALIAS=tsscloud

Port=7895

TopCONTYPE=TCPIP


[Drivers]

ACTIVE=TCP


[TCP]

TYPE=TCPIP

PORT=5967


[HTTP]

ENABLE=1

PORT=8088

PATH=E:\totvs\TSS12.1.27\HTML


;===================================================

;=============
 Configuracoes gerais  
  Configuracoes gerais  ==============

;===================================================

[General]

INSTALLPATH=E:\totvs\TSS

CONSOLELOG=1

ConsoleFile=E:\totvs\TSS\bin\logs\sectss01.log

BuildKillUsers=1

MaxStringSize=50000000

AsyncConsoleLog=0

ConsoleMaxSize=78643200


;===================================================

;=================== WebService ====================

;===================================================

; JOB Utilizado para o TSSOffline

[JOB_HTTP]

type=WEBEX

ENVIRONMENT=SPED

INSTANCES=1,4,1,1

ONSTART=STARTWEBEX

ONCONNECT=CONNECTWEBEX

EXPIRATIONTIME=120

EXPIRATIONDELTA=1


[localhost:8088/tssonline]

ENABLE=1

PATH=E:\totvs\TSS\html

ENVIRONMENT=SPED

RESPONSEJOB=JOB_HTTP

INSTANCENAME=WS

DEFAULTPAGE=wsindex.apw


[10.17.23.10:8088/tssonline]

ENABLE=1

PATH=E:\totvs\TSS12.1.27\html

ENVIRONMENT=SPED

RESPONSEJOB=JOB_HTTP

INSTANCENAME=WS

DEFAULTPAGE=wsindex.apw


[JOB_WS]

TYPE=WEBEX

ENVIRONMENT=SPED

;INSTANCES=1,4,1,1

INSTANCES=100,700,100,100

SIGAWEB=WS

INSTANCENAME=WS

ONSTART=__WSSTART

ONCONNECT=__WSCONNECT

XMLSAVEALL=0

ABENDLOCK=1

EXPIRATIONTIME=180

EXPIRATIONDELTA=1

SECURITY=
0
1

;XMLSAVEALL=1 - Permite que seja gravado na Pasta WSLOGXML, todos os XMLs de comunicação dos Métodos do TSS com a aplicação chamadora.

;Esta chave deve ser habilitada somente para ajudar na análise de inconsistências, pois gera um grande número de XMLs.

;Mais detalhes de uso consulte : https://tdn.totvs.com/x/rZUXDg


[localhost:8088]

ENABLE=1

ENVIRONMENT=SPED

RESPONSEJOB=JOB_WS

PATH=E:\totvs\TSS12.1.27\web\ws

INSTANCENAME=WS

DEFAULTPAGE=wsindex.apw


[10.17.23.10:8088]

ENABLE=1

ENVIRONMENT=SPED

RESPONSEJOB=JOB_WS

PATH=E:\totvs\TSS\web\ws

INSTANCENAME=WS

DEFAULTPAGE=wsindex.apw


;;;;;;Broker TSS server para a distribuição de carga é importante todo os serviços ;;;;;;secundarios esteja configurado
.

[10.17.23.5:8088]

ENABLE=1

ENVIRONMENT=SPED

RESPONSEJOB=JOB_WS

PATH=E:\totvs\TSS\web\ws

INSTANCENAME=WS

DEFAULTPAGE=wsindex.apw


;===================================================

;===================
 Serviços
  Serviços TSS =================

;===================================================

[IPC_ONDEMAND]

MAIN=prepareIPCWAIT

ENVIRONMENT=SPED

INSTANCES=500,500,100,200

EXPIRATIONTIME=300

EXPIRATIONDELTA=1


[IPC_CONT]

MAIN=prepareIPCWAIT

ENVIRONMENT=SPED

INSTANCES=400,400,100,200

EXPIRATIONTIME=300

EXPIRATIONDELTA=1


[TSSTASKPROC]

MAIN=TSSTASKPROC

ENVIRONMENT=SPED

EXPIRATIONTIME=300

EXPIRATIONDELTA=1


[IPC_SMTP]

MAIN=prepareIPCWAIT

INSTANCES=4,8,1,1

ENVIRONMENT=SPED

EXPIRATIONTIME=120

EXPIRATIONDELTA=1


;===================================================

;===================
 Use PROXY  
  Use PROXY  ===================

;===================================================

[PROXY]

ENABLE=0

;[PROXY]

;Enable=1

;SERVER=my server proxy.com

;PORT=8080

;USER=domain\user

;PASSWORD= password


;===================================================

;===============
 Chamada
  Chamada dos Jobs
 
  ================

;===================================================

[ONSTART]

JOBS = JOB_HTTP,JOB_WS,IPC_ONDEMAND,IPC_CONT,TSSTASKPROC,IPC_SMTP

REFRESHRATE=10

;DebugMsg=1


;===================================================

;==========
 Criptografia
  Criptografia para mensagens
 
  ==========

;===================================================

[SSLConfigure]
HSM    

HSM     =0

Verbose = 1
SSL2    

SSL2    =0
SSL3    

SSL3    =1

TLS1_0
 
  =1

TLS1_1
 
  =1

TLS1_2
 
  =1
Bugs    

Bugs    =1

State
 
   = 1

CertificateClient=E:\totvs\TSS\certs\NFSE000001_all.pem

KeyClient=E:\totvs\TSS\certs\NFSE000001_key.pem


[WebApp/webapp]

MPP=


[ENABLE_WS]

SPEDADM=1

SPEDCFGNFE=1

NFESBRA=1

RECOPI=1

MANIFESTACAODESTINATARIO=1

TSSGNRE=1

NFSE001=1

TSSDMST=1

DIESERVICE=1

NFECFGLOC=1

WSFEV1=1

TSSWSSIGNATURE=1

TSSWSSOCIAL=1

TSSWSREINF=1

WSINDEX=1

NFESLOC=1

TSSWSSUNAT=1

WSLPEG=1

WEBSERVAGRO=1

FECRED=1

TSSMANAGEREDI=1

TSSAUTHENTICATION=1

monitorsefaz=1

TSMCCNFE=1

TSMINITIAL=1

TSMNFE=1
Totvs custom tabs box items
defaultno
referencia03
Bloco de código
[SERVICE]

Name=dbaccess_7700

DisplayName=.02-01 - TOTVS | DBAccess 4.2 Server - 7700 (Primary-TSS)


[General]

GlbPRofiler=0

ThreadMin=4000

ThreadMax=9000

ThreadInc=300

maxStringSize=500

ConsoleMaxSize=100000000

TableCacheInMaster=0

MasterSingleLockConn=0

ShowAllErrors=1

MsgWarnings=1

Port=7700

Mode=master
Totvs custom tabs box items
defaultno
referencia04
Bloco de código
[SERVICE]

Name=dbaccess_7895

DisplayName=.01-1 - TOTVS | DBAccess 4.2 Server - 7895 (Sec-TSS)


[General]

GlbPRofiler=0

ThreadMin=600

ThreadMax=5000

ThreadInc=20

maxStringSize=500

ConsoleMaxSize=100000000

ShowAllErrors=1

MsgWarnings=1

Port=7895

Mode=slave

MasterServer=10.171.231.5

MasterPort=7700

LicenseServer=

LicensePort=0

AuditLog=0

AuditServer=

AuditPort=7891

AuditLevel=1

AuditAll=0

AuditSqlExec=1

AuditProcExec=1

AuditThreadComment=1

AuditERPUserName=1

AuditSingleThread=0

ThreadInfo=0

LogFull=0

Disable=0

[MSSQL]

environments=tsscloud


Port=7895
Mode=slave
MasterServer=10.171.231.5
MasterPort=7700
LicenseServer=
LicensePort=0
ThreadInfo=0
LogFull=0
Disable=0

[MSSQL]
environments=tsscloud

[MSSQL/tsscloud]

user=tsscloud

password=œ“å´³¬

TableSpace=

IndexSpace=SECONDARY

Disable=0