- Este tópico contém 4 respostas, 4 vozes e foi atualizado pela última vez 17 anos, 8 meses atrás por
Rodrigo Almeida.
-
AutorPosts
-
25 de junho de 2008 às 11:57 pm #82086
mpvargas
ParticipanteCaros Amigos,
Tem um servidor AIX com 6 processadores.
Como faço para saber se o Oracle está utilizando todos os processadores ou como saber se ele está usando todos os recursos da máquina?Uma outra dúvida:
Lendo um artigo sobre Tuning, existe um exemplo alterando o parâmetro DB_FILE_MULTIBLOCK_READ_COUNT.
O valor do meu banco está atualmente em 16.
Alguém já alterou esse parâmetro? Ele realmente traz algum ganho de performance? Esse parâmetro funciona em conjunto com algum outro?
Minha SGA_TARGET = 0, a alteração desse parâmetro vai influenciar no gerenciamento da SGA?Obrigado pela ajuda.
30 de junho de 2008 às 11:20 pm #82126Marcio68Almeida
ParticipantePelo que andei lendo, esse parâmetro pode se tornar pernicioso, pois aumenta a possibilidade de full table scan. Muito cuidado ao alterar esse tipo de parâmetro.
Documento de referêcia :
http://www.ixora.com.au/tips/max_multiblock_read.htmParâmetros relacionados :
db_block_size, db_cache_size, db_file_multiblock_read_count, large_pool_size, sga_max_size, shared_pool_retained_size, shared_poolPara saber como andam os processos, no Linux você tem o comando top, não lembro no AIX, pois faz MUITO tempo que não uso…
2 de julho de 2008 às 12:09 am #82130Rodrigo Almeida
ParticipanteMPVargas,
Tudo bem! Seguinte, Dentro da ferramenta TOP do AIX, existe uma opção que você pode analisar o consumo de cada CPU na máquina, como faz algum tempo que não mexo com AIX, eu não sei de cabeça. Mas existe. Porém, a utilização dos processadores quem irá dizer como utilizar é o próprio AIX, pelo seu algoritmo de cargas ou balanceamento.
Porém, alguns SELECTs dentro do banco de dados podem lhe trazer informações de consumo de CPU por sessão, como abaixo:
SELECT
s.sid sid
, s.serial# serial_id
, lpad(s.status,9) session_status
, lpad(s.username,12) oracle_username
, lpad(s.osuser,9) os_username
, lpad(p.spid,7) os_pid
, s.program session_program
, lpad(s.machine,14) session_machine
, sstat.value cpu_value
FROM
v$process p
, v$session s
, v$sesstat sstat
, v$statname statname
WHERE
p.addr = s.paddr
AND s.sid = sstat.sid
AND statname.statistic# = sstat.statistic#
AND statname.name = ‘CPU used by this session’
ORDER BY cpu_value DESC;Porém, é sempre bem dificil identificar quem está “queimando” o CPU, mas, se analisar os stastpack, (no HARD PARSE), consegue ver quais os SELECT que utilizam mais parse dentro do banco e identificar possíveis problemas de performance.
Sobre a utilização do DB_MULTBLOCK_READ_COUNT é um parâmetro que ajuda na performance, porém, muitos utilizam como 8, 16 ou 32. Onde na verdade, tu deve analisar o seu harware se será possível realizar uma leitura de 16 blocos, existe um valor correto que sempre deve ser calculado, caso contrário, ele pode trabalhar como seu inimigo, se colocar um valor muito alto, acima que seus recursos de harware utilizam, é capaz que lhe trazer problemas de performance, em vez de melhorar a performance.
Abraços,
Rodrigo Almeida 😛
3 de julho de 2008 às 3:08 am #82152CleitonHanzen
ParticipanteOpá…
Se você utiliza versão de Oracle > 10g Release 2, este parâmetro se tornou “alto ajustado” 😈 , não sendo mais necessário setar o parâmetro manualmente, conforme está descrito na documentação oficial da Oracle:
http://download.oracle.com/docs/cd/B193 … URENO05506
Vlw.
3 de julho de 2008 às 4:48 am #82153Rodrigo Almeida
ParticipanteCorreto… 😆
Abraços,
Rodrigo Almeida
-
AutorPosts
- Você deve fazer login para responder a este tópico.