A arquitetura de processamento vertical e horizontal para o TSS foi baseada nas informações contidas neste documento.
Pontos importantes
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.
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.
Desenho referente à distribuição de serviços em cada servidor:
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
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:
Nota: Appserver.ini do Serviço Broker
;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