Páginas filhas
  • Escalabilidade horizontal com TSS
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 e tempo necessários.

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

Pontos importantes

  • 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. Para este teste, foram utilizadas as releases do TSS: 12.1.27, 12.1.33 e 12.1.2210.
  • A página Protheus em Provedor de Nuvem conta com mais detalhes sobre o processamento horizontal e vertical.
  • A página Ambientes Virtualizados expressas os detalhes em utilizar em cenários de virtualização.

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 processar 72 mil notas/horas. Caso necessário, é possível processar mais notas ao aumentar a quantidade de má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.


Arquitetura Instalação TSS

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

Sizing Recomendado

Tabela de referência da arquitetura computacional

Servidor

Primário

Secundário

Banco de dados

Tipo de servidor

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)

Atençã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.

Importante

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

Nota: 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, pois o mesmo será responsável pela distribuição.
;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)"
;===================================================
;================  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=0

;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
[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
[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