Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Conforme estudo realizado em conjunto com o time de arquitetura da Oracle (responsável pela OCI - Oracle Cloud Infrastructure), estudamos cenários computacionais gerando melhores insights dentro de sua arquitetura computacional. 

As recomendações desta página são baseadas nos testes de Benchmark realizados pelo time de Engenharia de Dados nos shapes disponíveis da OCI.

Nos testes utilizamos Windows e Linux; constatamos que o Linux obteve melhor desempenho (em torno de 18% de melhora) quando comparado ao Windows.

Shapes

VM.Standard2:X Computação padrão baseada em X7. Processador: Intel Xeon Platinum 8167M. Frequência base 2.0 GHz, frequência máxima de turbo 2.4 GHz.

BM.Standard2:X computação padrão baseada em X7. Processador: Intel Xeon Platinum 8167M. Frequência base 2.0 GHz, frequência máxima de turbo 2.4 GHz.

VM.DenseIO2: computação de E/S densa baseada em X7. Processador: Intel Xeon Platinum 8167M. Frequência base 2.0 GHz, frequência máxima de turbo 2.4 GHz.


Fluxo da arquitetura

Usando VM.Standard2:X com distribuição de carga.

Recomendamos que os Blueprints estejam no mesmo Availability Domain (AD).

Máquina Master:  Possui a função de Gateway, direcionando as conexões para os Slaves.

Máquina Slave: De 1 a N, recebe as requisições da Master para processamento. Nestas, não é recomendado instalar outros serviços. Elas podem ser escalonadas horizontalmente conforme a necessidade.

Máquina Slave VIP: Para cenários que necessitam de alta disponibilidade, pode ser definido um shape dos pré-desenhados que não será desligado quando o consumo estiver abaixo de 10%. Neste cenário, é importante a configuração de um broker (balanceamento de carga) exclusivo após a escolha do blueprint.

Máquina WF/WB/SCH/JOB: Este servidor pode servir para Work Flow, WebService, Scheduler ou Jobs. 

Máquina Database: Recomendamos uma máquina específica dedicada ao banco de dados. 

Máquina TSS (SPED): Recomendamos que uma máquina específica seja dedicada ao TSS.

Volume para o uso do Protheus: Tanto para os discos do sistema operacional como para o volume do Protheus, recomendamos que o ambiente esteja configurado como High Performance em cenários de produção. Para utilização do C-Tree Server, caso seu volume seja superior a 500 conexões simultâneas ou o tráfego de I/O passe de 700 Mbits/s, em cenários com Windows recomendamos o uso do Storage Pool; em Linux, recomendamos o uso do LVM.

Informações

Aos clientes que utilizam dicionário no banco de dados, não há a necessidade de utilizar Storage Pool ou LVM, mas mantemos a recomendação ao uso do disco em High Performance. Quanto maior o volume apresentado, melhor é o Disk Throughput na OCI.


Distribuição de serviços e o uso do shapes

Totvs custom tabs box
tabsC-Tree Server, Dicionário no banco, IO/LVM/Storage Pool, Redes/Segurança, Compartimentalização, Conectividade do cenário real
ids01,02,03,04,05,06
Totvs custom tabs box items
defaultyes
referencia01

Para ambientes com C-Tree Server, recomendamos, além do Storage Pool (Windows) ou LVM (Linux), os seguintes shapes

Máquina Master: VM Standard 2.x, com C-Tree, App Broker, App Broker VIP, App Compilação, App Balance (monitor), License Server, DBAccess SPOFless, DBAccess Slave; Utilizando o BlockStorage, recomendamos o volume de 512GB no C:/ em cenários Windows e no / em cenários Linux. Em ambas as situações, utilize o disco em High Performance

Máquina(s) Slave(s): VM Standard 2.x, com Boundserver, AppServer Slaves, DBAccess Slave. Utilizando o BlockStorage, recomendamos o volume de 512GB no C:/ em cenários Windows e no / em cenários Linux. Em ambas as situações, utilize o disco em High Performance

Máquina VM WebService/Job/Workflow: VM Standard 2.x, com Protheus WEBRest, Protheus WEBService, Protheus Workflow, Protheus JOB, Protheus Schedule, Protheus Mobile, e um DBAccess em modo Slave. Utilizando o BlockStorage, recomendamos o volume de 512GB no C:/ em cenários Windows e no / em cenários Linux. Em ambas as situações, utilize o disco em High Performance

Máquina VM TSS: VM Standard 2.x, com Broker (balance), Appserver Slaves e DBAccess (Single). Utilizando o BlockStorage, recomendamos o volume de 512GB no C:/ em cenários Windows e no / em cenários Linux. Em ambas as situações, utilize o disco em High Performance

Totvs custom tabs box items
defaultno
referencia02

Para ambientes com Dicionário no banco, recomendamos, além do Storage Pool (Windows) ou LVM (Linux), os seguintes shapes

Máquina Master: VM Standard 2.x, com C-Tree, App Broker, App Broker VIP, App Compilação, App Balance (monitor), License Server, DBAccess SPOFless, DBAccess Slave; Utilizando o BlockStorage, recomendamos o volume de 512GB no C:/ em cenários Windows e no / em cenários Linux. Em ambas as situações, utilize o disco em High Performance

Máquina(s) Slave(s): VM Standard 2.x, com AppServer Slaves e DBAccess Slave. Utilizando o BlockStorage, recomendamos o volume de 512GB no C:/ em cenários Windows e no / em cenários Linux. Em ambas as situações, utilize o disco em High Performance

Máquina VM WebService/Job/Workflow: VM Standard 2.x, com Protheus WEBRest, Protheus WEBService, Protheus Workflow, Protheus JOB, Protheus Schedule, Protheus Mobile, e um DBAccess em modo Slave. Utilizando o BlockStorage, recomendamos o volume de 512GB no C:/ em cenários Windows e no / em cenários Linux. Em ambas as situações, utilize o disco em High Performance

Máquina VM TSS: VM Standard 2.x, com Broker (balance), Appserver Slaves e DBAccess (Single). Utilizando o BlockStorage, recomendamos o volume de 512GB no C:/ em cenários Windows e no / em cenários Linux. Em ambas as situações, utilize o disco em  High Performance

Totvs custom tabs box items
defaultno
referencia03

Esquemático de uso do subsistema de IO Block Storage para cada VM Protheus deve seguir o recomendado visando aumento significativo da capacidade de IOPs + throughput o . O volume x:\ deve ser armado de forma ao acesso ser tripe em 4 volumes diferentes configurados com o modelo High performance 75 IOPs/GB do mesmo tamanho agregados em formato storage pool no Windows ou Volume Group no Linux.  

Resultados esperados: 

LVM 4x512GB : read: IOPS=85.4k, BW=667MiB/s (699MB/s) (19.5GiB/30008msec)

Como há um grande consumo do C:\ por parte do SO quando da execução do Protheus, recomendamos utilizar boot volumes de 512GB e configuração de IOPs High Performance.


Passo a passo de como criar o Storage Pool (Windows) (em breve)

Passo a passo de como criar o LVM (Linux) (em breve)

Totvs custom tabs box items
defaultno
referencia04

Redes:

Visando segurança e melhores práticas, recomendamos minimamente trabalhar com VCNs para cada tipo de uso (Produção, Homologação e Desenvolvimento) e cada com 2x subnets sendo 1a. privada contendo as Appls e a 2a. Privada contendo os databases. o acesso devem se dar através de VPN ou canal Fastconnect por BGP, para fins de administração acesso Externo o uso de uma VM Linux bastião é altamente recomendado (SSH para Linux e VNC para Windows).

Segurança:

Usar Networking Security Group  Group  para permitir somente as portas necessárias,  seguir o modelo de least privileges para grupos e usuários, habilitar mfa para usuários admins, usar criptografia em trânsito e em armazenamento já disponíveis nos serviços DbaaS OCI.

Totvs custom tabs box items
defaultno
referencia05

Utilizar esta alternativa para com três objetivos 1 melhor agrupar os recursos no OCI e 2 melhor controle de custos 3 melhor organização das permissões de segurança.

Sugestão de compartimentos:  

Produção

Aplicação

Database

Homologação

Aplicação

Database

Desenvolvimento

Aplicação

Database



Totvs custom tabs box items
defaultno
referencia06



Blueprints recomendadas de acordo com cada quantidade de usuários simultâneos:


Nota
titleAtenção

Não recomendamos shapes maiores do que os listados para os servidores Slave.

Totvs custom tabs box
tabsSlave VIP, 75 usuários simultâneos, 150 usuários simultâneos, 450 usuários simultâneos
idsusr01,usr02,usr03,usr04
Totvs custom tabs box items
defaultyes
referenciausr01

Para os cenários que necessitam de um Slave VIP é importante ter um serviço do Broker VIP exclusivo para este cenário após a escolha do Blueprint, conforme a sua demanda. Importante que este Broker VIP seja instalado no Master (Gateway).

Totvs custom tabs box items
defaultno
referenciausr02

Para ambientes com 75 usuários simultâneos, recomendamos máquina(s) Slave(s): VM Standard 2.2, com AppServer Slaves, Boundserver e DBAccess Slave. Utilizando o BlockStorage, recomendamos o volume de 512GB no C:\ e 256GB no X:\ em cenários Windows; ou 256GB no / e 256GB no /protheus em cenários Linux. Em ambas as situações, utilize o disco em High Performance. Cada máquina neste shape suporta até 25 usuários ou até 60% do consumo de CPU; acima disso, é possível realizar o escalonamento horizontal, adicionando mais máquinas para acompanhar o consumo.

Totvs custom tabs box items
defaultno
referenciausr03


Para ambientes com 150 usuários simultâneos, recomendamos máquina(s) Slave(s): VM Standard 2.4, com AppServer Slaves, Boundserver e DBAccess Slave. Utilizando o BlockStorage, recomendamos o volume de 512GB no C:\ e 512GB no X:\ em cenários Windows; ou 512GB no / e 512GB no /protheus em cenários Linux. Em ambas as situações, utilize o disco em High Performance. Cada máquina neste shape suporta até 50 usuários ou até 60% do consumo de CPU; acima disso, é possível realizar o escalonamento horizontal, adicionando mais máquinas para acompanhar o consumo.

Totvs custom tabs box items
defaultno
referenciausr04


Para ambientes com 450 usuários simultâneos, recomendamos máquina(s) Slave(s): VM Standard 2.8, com AppServer Slaves, Boundserver e DBAccess Slave. Utilizando o BlockStorage, recomendamos o volume de 512GB no C:\ e 1TB no X:\ em cenários Windows; ou 512GB no / e 1TB no /protheus em cenários Linux. Em ambas as situações, utilize o disco em High Performance. Cada máquina neste shape suporta até 150 usuários ou até 60% do consumo de CPU; acima disso, é possível realizar o escalonamento horizontal, adicionando mais máquinas para acompanhar o consumo.



Expandir
titleAjustes no sistema operacional
Totvs custom tabs box
tabsRede, Memória L2 e L3
idsaj01,aj02
Totvs custom tabs box items
defaultyes
referenciaaj01

Ajuste de rede

Para Windows é necessário ajustar a interface de rede. De acordo com testes realizados já em clientes e no teste de estresse junto com o time da OCI, sem estas configurações os servidores podem apresentar:

➢ baixa eficiência no tráfego de dados de micro pacotes.

➢ Erro: “Warning - TOPCONN - NO CONNECTION -2”, referente ao tráfego entre Application Server e DBaccess.

O problema pode ser causado pelo Windows TCP Stack, transferindo o uso da interface de rede para a CPU. Para resolver esse problema, há a necessidade de desativar recursos que não são suportados pelo driver broadcom.

Para essa configuração, realize os ajustes através do MSDOS em modo Administrador.

Desative o TCP chimney, AutoTuning, Congestion Provider, Task Offloading e ECN Capability:

netsh int tcp set global chimney=disabled

netsh int tcp set global autotuninglevel=normal

netsh int tcp set supplemental custom congestionprovider=none

netsh int tcp set global ecncapability=disabled

netsh int ip set global taskoffload=disabled

netsh int tcp set global timestamps=disabled

Ative a feature RSS no driver:

netsh int tcp set global RSS=enable

Existem algumas configurações adicionais que também causam problemas de desempenho. Aqui está o que são e como fazer as mudanças necessárias:

Receive Segment Coalescing (RSC)

O RSC é uma tecnologia de descarregamento sem estado que ajuda a reduzir a utilização da CPU para processamento de rede no lado do recebimento, descarregando tarefas da CPU para um adaptador de rede compatível com RSC. A saturação da CPU devido ao processamento relacionado à rede pode limitar a escalabilidade do servidor. Esse problema, por sua vez, reduz a taxa de transação, a taxa de transferência bruta e a eficiência. É semelhante ao problema de descarregamento de TCP, e é recomendável definir como Disabled.

Para desabilitar em todos os adaptadores de rede:

Disable-NetAdapterRsc *

Desativar RSC globalmente:

netsh int tcp set global rsc=disabled


Ajuste através do PowerShell em modo Administrador.

Set-NetAdapterAdvancedProperty Ethernet -DisplayName "Large Send Offload V2 (IPv4)" -DisplayValue "Disabled" -NoRestart
Set-NetAdapterAdvancedProperty Ethernet -DisplayName "Large Send Offload V2 (IPv6)" -DisplayValue "Disabled" -NoRestart
Set-NetAdapterAdvancedProperty Ethernet -DisplayName “Large Send Offload V2 (IPv4)” -DisplayValue “Disabled” -NoRestart
Set-NetAdapterAdvancedProperty Ethernet -DisplayName “Large Send Offload V2 (IPv6)” -DisplayValue “Disabled” –NoRestart



Totvs custom tabs box items
defaultno
referenciaaj02

Ajuste de Memória L2 e L3 cache em Windows.

Este ajuste é importante para deixar o processamento mais fluido, evitando a sobrecarga de consumo de recursos. Testes realizados em rotinas que realizam o processamento na camada de aplicação obtiveram ganhos de 10% em desempenho na camada de CPU, pois o sistema operacional está mais fluido. 

Para fazer a leitura das especificações do computador, primeiro é necessário instalar o programa CPU-Z. 

Aplicando os ajustes

Para habilitar o cache L2: Tendo em mãos as especificações de seu computador, entre no regedit (na barra de pesquisa do Windows, digite “regedit”). Clique na seta à esquerda das respectivas pastas: HKEY_LOCAL_MACHINE; SYSTEM; CurrentControlSet; Control; Session Manager. Clique em Memory Management, e dê dois cliques em SecondLevelDataCache. Altere a base para Decimal, e substitua o valor 0 pelo tamanho (size) do L2 Cache (que pode ser verificado no programa CPU-Z, na janela Caches, sendo o terceiro bloco de informação).

Abaixo, uma imagem do programa e a localização das informações: 

Para habilitar o cache L3: No mesmo local de configuração para o L2, no regedit, clique com o botão direito do mouse em um espaço vazio, selecione Novo > Valor DWORD(32 bits). Nomeie este novo valor como “ThirdLevelDataCache”, sem as aspas. Dê um duplo clique sobre este novo valor para editá-lo e selecione a base Decimal.

Se, como no print, seu L3 Cache estiver com um valor em MBytes, multiplique-o por 1024 antes de alterar o valor. Adicione este valor em Dados do valor no regedit, e reinicie o computador. Note que no primeiro restart o computador pode estar um pouco mais lento, já que o Windows precisa incorporar estes novos dados, mas no segundo restart o computador deve estar mais rápido que o habitual.