Eu tenho uma pergunta que está me incomodando, mas eu simplesmente não sei como validá-la. Executamos o DB2 LUW no AIX em nossa loja. Nosso AIX está atualmente em 7.1. Nosso DB2 está em 9,7 FP 4 para a maioria das instalações e 10,5 FP 2 para nossos bancos de dados mais recentes. Temos até instalações mistas (ou seja, 9.7 e 10.5) nas mesmas "caixas".
Nossas caixas são LPARs, é claro, fornecidas a nós por nossos administradores do AIX. Os administradores do AIX também são nossos administradores de armazenamento e, portanto, todos os discos são SAN. Não há muito físico sobre nossos servidores de banco de dados.
O que está me incomodando é qual é o equilíbrio correto de instâncias do DB2 por LPAR? Comecei a ver um comportamento estranho em relação à autoconfiguração do DB2. Em um DEV LPAR temos as seguintes configurações:
Observe que o seguinte é verdadeiro para todas as instâncias: HEALTH_MON
é definido como OFF
, e AUTO_MAINT
é definido como OFF
para cada banco de dados. Permitimos que o Self-Tuning Memory Manager (STMM) esteja ativado por padrão com todos os parâmetros necessários definidos para isso (ou seja, zeros ou AUTOMÁTICO nos parâmetros corretos, o padrão que o DB2 fornece...). Se construirmos um banco de dados OLTP, definimos instance parm MAX_QUERYDEGREE
como 1
e deixamos INTRA_PARALLEL
como NO
e db parm DFT_DEGREE
como 1
. Se construirmos um banco de dados OLAP (instância separada), definimos instance parm MAX_QUERYDEGREE
to ANY
and INTRA_PARALLEL
to YES
e db parm DFT_DEGREE
toANY
. Também não tentamos misturar bancos de dados OLAP e OLTP na mesma instância, embora parte da questão seja se devemos misturar as instâncias no mesmo LPAR.....
Aqui está o que temos em um DEV LPAR:
- A primeira instância é 9.7. Contém alguns bancos de dados OLAP, embora sejam muito pequenos, pois são usados para testar alterações DDL.
- A segunda instância é 9.7. Contém um banco de dados OLAP "playground" para desenvolvedores. (Este deve ser aposentado na primeira chance que tivermos.)
- A terceira instância é 10.5. Contém a versão DEV oficial desse banco de dados de playground da instância 2.
- A quarta instância é 10,5. Banco de dados OLTP com um dicionário de metadados desenvolvido em casa.
- A quinta instância é 10.5. Banco de dados OLTP usado para dados de pesquisa.
- A sexta instância é 10,5. Banco de dados ODS (não tenho certeza se é OLTP ou OLAP....) para desenvolvedores vincularem dados de dois sistemas transacionais.
Agora, o disco não é o maior problema, pois é tratado pela SAN. E até a memória e a CPU são virtualizadas por natureza, sendo uma LPAR. Mas eu vi algumas coisas estranhas com a memória.
O único banco de dados OLAP (tanto o playground quanto o DEV oficial) é bastante grande. Os desenvolvedores estão testando o ETL em grandes volumes de dados e estimando o tamanho de sua solicitação oficial para construções QAT e PROD. Desde que um deles começou a crescer, notei que novas construções de instância e novas construções de banco de dados agora têm o STMM desativado por padrão. Posso ligá-lo manualmente, mas o ponto é que acho isso perturbador. Se o STMM está ou não ativado por padrão é decidido pelo DB2 no momento da criação com base nos recursos do sistema. Então, para mim, isso está dizendo que o DB2 não sente que tem recursos adequados para gerenciamento automático, então está tentando limitar a memória na esperança de ganhar pelo menos tanto. (Meu palpite sobre isso.)
Quando discuto isso com os administradores do AIX, eles não parecem pensar que a memória e a CPU são um problema. Eles dizem que não estamos realmente utilizando o que poderíamos ser, então, em sua mente (e estou dizendo isso de forma muito vaga), poderíamos colocar todas as nossas instâncias de desenvolvimento no mesmo LPAR. Ou similar para outros ambientes. Novamente, isso é vago, porque eles entendem o ponto de separação para cenários HA e DR.
De qualquer forma, isso me deixa pensando: há alguma indicação ou orientação entre saber quando você pode adicionar instâncias a um LPAR ou quando deve dividir para outros LPARs? Tenho certeza de que a resposta é "depende", mas estou procurando alguma aproximação ou orientação? Especialmente se eles diferem nas linhas de OLTP e OLAP.
Você não obterá nenhuma resposta específica para esta pergunta, porque, como você observou, depende .
A resposta depende da tolerância de sua empresa para que uma instância do DB2 afete adversamente o desempenho de outra. Você pode controlar ou limitar esse impacto se os administradores do AIX estiverem dispostos a aprender e configurar políticas WLM no nível do sistema operacional (não DB2 WLM).
Esta é realmente uma questão de gerenciamento de capacidade. Entender as cargas de trabalho em seu ambiente é fundamental aqui, e ser capaz de identificar (ou prever) quando você atingirá os limites influenciará suas decisões sobre quantas instâncias colocar em um único servidor.