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

Image Removed

referente à distribuição de serviços em cada servidor:

Image Added

Sizing Recomendado

Tabela de referência da arquitetura computacional

Servidor

Primário

Secundário

Banco de dados

Tipo de servidor

Servidor

 

PostgreSQL

ORACLE

SQL Server

Tipo Servidor

Primário

Secundário

SGBD

Escalabilidade

Vertical

Horizontal

Vertical

Processador

8 Core

8 Core

8 Core

Memória

Ram

RAM

32 GB

32 GB

32 GB

Rede

10Gbit

10Gbit

10Gbit

IOPS/

SO

Sistema Operacional

500

800

500

IOPS/Aplicação

500

500

---

IOPS/SGBD/Dados Index

------

7500

Throughput

Maximo

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

SGBD's é importante 

SGBDs é importante que o volume de dados e

index seja separado para do 7500 IOPS sejam separado da seguinte forma.

de índices estejam separados. No caso de 7500 IOPS, segue exemplo de divisão:

  • Tablespace de dados 5000 IOPS;
  • Tablespace de
index
  • í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
dos ERP usar o ip e porta
  • do ERP, use a URL 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
Bloco de código
;===================================================
;================  Nome do servico  ================
;===================================================
[Service]
Name=.TSSCloud-AppTSS-sec01
DisplayName=.TSS Cloud | AppTSS-sec01

;===================================================
;=================  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 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  ==============
;===================================================
[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=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 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  ===================
;===================================================
[PROXY]
ENABLE=0
;[PROXY]
;Enable=1
;SERVER=my server proxy.com
;PORT=8080
;USER=domain\user
;PASSWORD= password

;===================================================
;===============  Chamada dos Jobs  ================
;===================================================
[ONSTART]
JOBS = JOB_HTTP,JOB_WS,IPC_ONDEMAND,IPC_CONT,TSSTASKPROC,IPC_SMTP
REFRESHRATE=10
;DebugMsg=1

;===================================================
;==========  Criptografia para mensagens  ==========
;===================================================
[SSLConfigure]
HSM     =0
Verbose = 1
SSL2    =0
SSL3    =1
TLS1_0  =1
TLS1_1  =1
TLS1_2  =1
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
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