Primeiramente gostaria de agradecer a todos pelas respostas.

 

Em segundo lugar, gostaria de comentar sua mensagem, Chiappa.

 

Concordo com vc que podemos fazer muito pouco sem termos um DBA para
levantar todas as análises que vc sugeriu, mas já estou no olho do furacão,
fui escalado pra tentar resolver esse problema e uso da minha posição pra
fazer o possível, mas a minha grande dificuldade tem sido ter uma idéia do
que seria melhor para o Oracle em teremos de Storage, se usar Raid 5, 10,
0+1, ou se deveria usar ASM. Ambos aplicam a metodologia SAME, certo?

 

Enfim, fui convencido pelo BAARF que RAID 5 não seria o ideal para esse caso
já que nosso problema tem sido desempenho, e como ele traz um overhead de
escrita, descartamos essa hipótese. 

 

Trabalho agora com a hipótese de utilizar os 4 discos em Raid 10 (ou 0+1)
com todos os arquivos do SO, mais os datafiles sendo distribuídos pelos
discos, ainda com ganho de segurança pelo mirroring. Outra hipótese seria
utilizar um disco para SO + aplicação e os outros 3 deixar para o Oracle
gerenciar com ASM.

 

Não tenho experiência com ASM e isso me dificulta a decidir qual seria mais
viável. Chiappa ou alguém da lista, poderia me dar uma sugestão do que fazer
nesse caso? O gargalo principal é desempenho, mas a vantagem de redundância
do RAID 10 também conta como um ponto importante. O ASM me permite alguma
forma de redundância? Há algum acréscimo considerável de performance?

 

Chiappa, quanto aos outros pontos que vc levantou:

 

1) Tenho certeza que eles não fizeram “todo o tunning SQL possível”, com uma
análise bem rasa tenho achado indicadores importantes, como gravações
excessivas em arquivos de índices, etc, mas isso é o que a equipe de
desenvolvimento me passou. Como disse, não sou DBA e não tenho a obrigação
de encontrar todos esses erros, tenho apenas que fazer o possível para
melhor o desempenho do Oracle em termos de I/O, o que encontrar de errado
quanto às queries já é lucro pra eles...

 

2) Quando disse que gostaria de utilizar LVM para evitar problemas com
partição lotada por escrita indiscriminada da aplicação, eu estava me
referindo a aplicação que solicita o I/O, não o Oracle. A aplicação nesse
caso coleta informações de elementos externos e faz uso intensivo de escrita
em períodos pré-determinados, somando-se a isso o cliente gera relatórios
que fazem muita leitura em alguns períodos do dia, muitas vezes essas
tarefas são realizadas ao mesmo tempo, por isso tenho um tempo de resposta
muito lento. Fiz a pergunta quanto ao LVM pois já vi gente falando que isso
pode gerar uma complexidade desnecessária dependendo do layout de storage
adotado. Se eu tiver os 4 discos em Raid, tenho que tipo de implicações
usando LVM? Nesse caso seria melhor eu esquecer do LVM e fazer uma grande
partição com todos os datafiles (que seriam distribuídos por todos os discos
em stripping)?

 

3) Passei esses dias analisando o desempenho da máquina e notei que o backup
está sendo feito pelo cliente durante o dia, na verdade eles começam de
noite, mas há troca de fita e é finalizado perto da hora do almoço. Um dos
indicadores negativos que o ADDM me aponta é escrita excessiva em arquivo de
log, essa pode ser uma das causas? Quanto de perda de performance pode ser
devida a essa estratégia de backup? Devo argumentar isso com o cliente?

 

Pessoal, realmente muito obrigado pela ajuda.

 

Abraços

 

Heber Blain Gonçalves

  _____  

De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de jlchiappa
Enviada em: terça-feira, 22 de maio de 2007 13:10
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Re: Opinião para melhorar desempenho

 

Colega, alguns comentários : 

a) sem um DBA experiente presente, vc vai poder fazer MUITO, mas 
MUITO POUCO mesmo, tunning e quetais simplesmente DEMANDAM que um 
profissional do tipo esteja trabalhando junto com os desenvolvedores, 
sem isso fica DISTANTE a sua chance de sucesso (não só pela 
dificulade de analisar e descobrir os melhores ajustes do banco, MAS 
também o DBA é o elemento que introduz as "novas" tecnologias de 
banco aos desenvolvedores : assim, um DBA experiente não deixaria de 
mostrar aos desenvolvedores tabelas GTTs, índices bitmap e de função, 
funções analíticas, sintaxes extendidas de SELECT (como WITH cluase 
por exemplo) e muitos mais, que aí sim seriam avaliadas pelos 
desenvolvedores e se cabíveis implementadas.... Aqui no cliente é um 
sistema DW, os programadores fizeram algumas queries caírem de 10 
horas para meia hora usando GTTs, por exemplo, mas óbvio, primeiro eu 
tive que explicar pra eles o que é, como usa, não se foge disso....

b) "o pessoal de desenvolvimento já fez todo o tuning sql possível" : 
cara, dica geral e genérica : confie DESCONFIANDO quando o pessoal 
diz que já fez todo o tunning possível, de modo geral isso NÂO é a 
exata representação da verdade.... Pra vc ter uma idéia do nível de 
tunning que foi feito, peça pro analista :

1. mostrar o TKPROF (ou ao menos os EXPLAIN PLANs e/ou 
AUTOTRACEs !!) das principais queries do aplicativo, rodando num 
hardware o mais parecido possível com a Produção, e com volumes o 
mais parecidos que for possível

e

2. mostrar no código-fonte deles AONDE os cursores são fechados, 
mostrar que REALMENTE eles estão usando BIND VARIABLES, fazendo array 
processing, etc

e

3. veja a quantidade de stored PL/SQL usada, e a quantidade de SQL 
dinâmico usada 

==> SE essas coisas não existirem, e ou se para 3. as respsotas não 
forem respectivamente MUITO e POUCO, ou se o analista fizer "hã ???", 
com uma cara abobada, quando vc perguntar delas, pode ter CERTEZA que 
NÂO, absolutamente NÂO FOI FEITO todo o tunning possível. Vc diz que 
os índices são "enormes", o pessoal CONHECE sobre compactação ? 
realmente FOI verificado que não há índices redundantes ??? Um índice 
seletivo, que indexe apenas PARTE dos dados via FBI, isso foi 
pensado/analisado ????


c) sobre I/O, primeiro temos que dizer que o bd Oracle absolutamente 
*** NÂO TEM *** um "parâmetro" que diga pra ele fazer mais ou menos 
I/O, se hoje vc está fazendo lotes e lotes de I/O e isso está 
interferindo na performance, COM CERTEZA o bd está fazendo esse I/O 
em ** resposta ** à um pedido da aplicação, novamente se toca no item 
b. aqui... Logicamente, até mesmo indiretamente a aplicação pode 
exigir I/O desnecessário (por exemplo, erradamente não fazendo 
operações NOLOGGING onde e quando indicado, aí NÃO TEM COMO o banco 
fazer algo diferente do que foi pedido, ok ? Só alterando a 
aplicação, MESMO...
Quanto ao RAID-5, sim, em http://www.baarf. <http://www.baarf.com/> com/ é
mais do que 
suficientemente mostrado que o RAID-5 acrescenta SIM um overhead de 
gravação, que SE é exigida performance absolutamente TOP vc 
necessariamente deveria fugir dele como o diabo da cruz, MAS isso 
sempre tem que ser avaliado no local - afinal, isso tem custo, muitas 
vezes não há verba nem justificativa para tal, aí vc vai ter que se 
virar com RAID-1 ou, se for exigido maior ênfase na segurança, é RAID-
5 nos datafiles (já que eles são gravados EM BACKGROUND, em muitos 
casos de menor porte o overhead aí é aceitável), MAS tomando o 
cuidado de tirar do RAID-5 os arquivos que são INTENSAMENTE gravados 
pelo Oracle, como log files por exemplo, aí alguns discos ficariam 
fora do RAID-5 e seriam espelhados à parte.

d) LVMs : neste ponto, primeira coisa acho MUITO difícil "aumentar 
a segurança caso tenha um LV corrompido ou se houver um erro na 
aplicação e essa começar a escrever indiscriminadamente no datafile", 
já que, pela ordem, aplicação NENHUMA pode EM CASO ALGUM escrever em 
datafile NENHUM, NUNCA, a regra crucial no bd Oracle é que ELE e 
APENAS ELE SOMENTE escreve em datafiles, E pra segurança, também não 
vejo muita utilidade, pois corrupção num hardware server-class é algo 
MUITO raro, que só se explica por bug em software /firmaware ou pau 
em hardware, e ambos se ocorrerem tem ENORMES chances de afetarem 
múltiplos volumes, realmente não vejo qual segurança a mais ou a 
menos vc ganhou...
Quanto à performance, SE todos os LVMs apontam pra discos do mesmo 
raid, mantidos pelas mesmas controladoras, REALMENTE também não vejo 
aonde vc ganharia ou perderia performance com isso, EXCETO SE o teu 
software de gerenciamento faça (por exemplo) uma LISTA de LVMs, ou 
que mantenha algum tipo de cache diferenciado por lvm, ou coisa no 
estilo, senão realmente não vejo....

[]s

Chiappa


--- Em [EMAIL PROTECTED] <mailto:oracle_br%40yahoogrupos.com.br>
os.com.br, Heber Blain Gonçalves 
<[EMAIL PROTECTED]> escreveu
>
> Olá, pesesoal,
> 
> Tenho nível de conhecimento apenas operacional (instalação,
> configuração básica, ...) de Oracle, mas agora estou participando de
> um projeto em que não existe um DBA e precisamos resolver um 
problema
> de performance de uma aplicação, a qual está sendo migrada para um
> novo servidor. Estou sendo responsável por montar a arquitetura da
> solução, mas estou bastante inseguro se o que estou propondo pode ou
> não ajudar a melhorar a performance do lado da Infra-estrutura. (o
> pessoal de desenvolvimento já fez todo o tuning sql possível, o
> problema tem sido realmente IO em excesso para a máquina que não
> suportava).
> 
> A nova solução compreende um hw comprado pelo cliente, um Servidor
> Dell com 4 HDs de 165 Gb e provavelmente uma controladora RAID, não
> tenho acesso de que máquina específica estamos tratando, então
> trabalho com essa suposição.
> 
> Abaixo descrevo como pretendo montar a arquitetura desse servidor, 
por
> favor, gostaria que comentassem se a idéia que tenho está correta e 
se
> algo mais pode ajudar. 
> 
> - RAID 5
> 
> Estou pensando em dispor os 4 HDs no esquema de RAID 5, pois 
acredito
> que esse tem um ótimo custo benefício, tendo redundância (segurança
> também é um requisito), e aumentando as taxas de leitura pelo
> paralelismo, já que os dados estarão distribuídos nos 4 discos. Mas 
e
> quanto as operações de escrita? Existe um overhead por causa da
> paridade ou isso tem pouco impacto?
> 
> - LVM
> 
> Já considerando que tenho um RAID 5, existe alguma vantagem em
> distribuir os datafiles em diferentes volumes lógicos num VG? Por
> exemplo: além das partições do SO, poderia ter particionado /LVdata1
> /LVdata2 e /LVdata3, cada um tendo uma parcela dos datafiles do 
banco.
> Eu sei que isso pode me aumentar a segurança caso tenha um LV
> corrompido ou se houver um erro na aplicação e essa começar a 
escrever
> indiscriminadamente no datafile que encheria a partição. Se tive
> apenas uma partição, nesse caso, com certeza todo o sistema estaria
> comprometido, certo? Mas e quanto a performance, há algum 
ganho/perda
> de desempenho em se utilizar LVM?
> 
> - ÍNDICES
> 
> Outro ponto diz respeito aos arquivos de índices, que no caso dessa
> aplicação são enormes. Existe alguma best practice quanto a eles?
> Deveria deixá-los num LV a parte?
> 
> - PARTITIONING
> 
> Essa foi uma sugestão dos DBAs do cliente, existe uma tabela que 
pode
> ser facilmente particionada pelo campo mês. A minha dúvida aí reside
> se nesse esquema de particionamento são criados vários arquivos, um
> pra cada partição, ou se tudo se resume a um datafile. Se forem 
vários
> arquivos, tenho vantagem em distribuí-los pelos diferentes LVs? (Se
> não fosse usar RAID 5, a pergunta seria: teria vantagem em
> distribuí-los nos vários discos?)
> 
> Qualquer idéia ou comentário será muito bem-vindo !!!
> 
> Obrigado,
>

 



**********************************************************************
Informação transmitida destina-se apenas à pessoa a quem foi endereçada e pode 
conter informação confidencial, legalmente protegida e para conhecimento 
exclusivo do destinatário. Se o leitor desta advertência não for o seu 
destinatário, fica ciente de que sua leitura, divulgação ou cópia é 
estritamente proibida. Caso a mensagem tenha sido recebida por engano, favor 
comunicar ao remetente e apagar o texto de qualquer computador.

The information transmitted is intended only for the person or entity to which 
it is addressed and may contain confidential and/or privileged material. Any 
review, retransmission, dissemination or other use of, or taking of any action 
in reliance upon this information, by person or entity other than the intended 
recipient is prohibited. If you received this in error, please contact the 
sender and delete the material from any computer.
***************************************************

[As partes desta mensagem que não continham texto foram removidas]

Responder a