- Este tópico contém 9 respostas, 4 vozes e foi atualizado pela última vez 11 anos, 4 meses atrás por ericclauber.
-
AutorPosts
-
28 de junho de 2013 às 3:22 pm #105619ericclauberParticipante
Bom dia a todos!
Agradeço desde já a ajuda!
Tenho um servidor rodando Oracle Standard Edition One 11g com RedHat Linux 5 Enterprise.
Anteriormente eram 8GB de memória, sendo que estava consumindo total, inclusive SWAP. Entao fiz um upgrade para 16Gb de memória. E desta forma quando iniciei o banco ficou LIVRE cerca de 9GB.
Posteriormente mandei rodar o RMAN(backup database); E assim consumiu todo os 16gb de RAM e INCLUSIVE está utilizando SWAP, mas como se o SGA / TARGET_MEMORY É 6GB.
Porque está consumindo todo os 16gb de RAM e SWAP, se o SGA / TARGET_MEMORY É 6GB? Como corrigir isso?
Agradeço,
Eric Clauber
28 de junho de 2013 às 3:55 pm #105620lobomaudiegoParticipanteBom Dia Eric!,
Você pode retornar as seguintes informações:
show parameter sga
show parameter memory
show parameter hash_area_sizetop -c -u oracle(oracle_user)
vmstatAtt,
Diego Monteiro
28 de junho de 2013 às 4:09 pm #105621ericclauberParticipanteBOm dia Diego, segue informações solicitadas, mas no comando TOP, não vi processo VMSTAT
SQL> show parameter sga;
NAME TYPE VALUE
———————————— ———– ——————————
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 6016M
sga_target big integer 0
SQL> show parameter memoryNAME TYPE VALUE
———————————— ———– ——————————
hi_shared_memory_address integer 0
memory_max_target big integer 6016M
memory_target big integer 6016M
shared_memory_address integer 0
SQL> show parameter hash_area_size;NAME TYPE VALUE
———————————— ———– ——————————
hash_area_size integer 13107228 de junho de 2013 às 4:38 pm #105624lobomaudiegoParticipanteEric Bom dia!,
1º comando é o:
top -c -u oracle2º
vmstatNão vi problema com o seus parametros, somente se certifique que os processos que logam no banco não usem o “alter session set hash_area_size=xxxxxxxx” pois esse parametro cria uma alocação de memória por sessão.
Verifique o seu alert.log e post as ultimas linhas (poste retorno)tail -100f alert_ORACLE_SID.log
Execute também este comando (poste retorno):
SELECT *
FROM v$memory_target_advice
ORDER BY memory_size;
E a verificação se está causando algum wait event por sessão:
Rode 3 vezes (poste retorno)
set linesize 9999
col event for a30
col sid for 9999
col serial for 99999
col spid for a5
col program for a31
col username for a10
col machine for a30
col sw for 99999
col osuser for a15
col kill for a4
col p1text for a12
COLUMN sql_exec_start FORMAT a19 HEADING 'Inic. Exec. Sql'SET TERMOUT OFF;
COLUMN current_instance NEW_VALUE current_instance NOPRINT;
SELECT rpad(instance_name, 17) current_instance FROM v$instance;
ALTER SESSION SET NLS_DATE_FORMAT='DD/MM/YYYY HH24:MI:SS';
SET TERMOUT ON;SELECT '@k ' as kill,
W.SID,
S.SERIAL# as serial,
P.SPID,
S.USERNAME,
S.OSUSER,
W.EVENT,
W.SECONDS_IN_WAIT as sw,
s.sql_id,
w.p1,
w.p1text,
s.sql_exec_start sql_exec_start,
S.PROGRAM,
REPLACE(REPLACE(S.MACHINE, 'BR-LIHI', ''), 'BR-LIHI-', '') AS MACHINE
FROM V$SESSION_WAIT W, V$SESSION S, V$PROCESS P
WHERE W.SID = S.SID
AND S.PADDR = P.ADDR
AND W.WAIT_CLASS != 'Idle'
ORDER BY W.SECONDS_IN_WAIT, W.SID
/
Att,
Diego Monteiro
29 de junho de 2013 às 12:22 am #105632jlprebParticipanteOlá.
Altere o parametro filesystemio_options e reinicie a instance.
alter system set filesystemio_options=’setall’ scope=spfile;
att.2 de julho de 2013 às 10:16 pm #105635ericclauberParticipanteOlá Diego, desculpe a demora. Segue retorno abaixo.
1- v$memory_target_advice ****************************
MEMORY_SIZE MEMORY_SIZE_FACTOR ESTD_DB_TIME ESTD_DB_TIME_FACTOR VERSION
———– —————— ———— ——————- ———-
3008 ,5 16721 1,0001 0
4512 ,75 16719 1 0
5264 ,875 16719 1 0
6016 1 16719 1 0
6768 1,125 16717 ,9999 0
7520 1,25 16717 ,9999 0
8272 1,375 16717 ,9999 0
9024 1,5 16717 ,9999 0
9776 1,625 16717 ,9999 0
10528 1,75 16717 ,9999 0
11280 1,875 16717 ,9999 0MEMORY_SIZE MEMORY_SIZE_FACTOR ESTD_DB_TIME ESTD_DB_TIME_FACTOR VERSION
———– —————— ———— ——————- ———-
12032 2 16717 ,9999 0******************************************************************
2- set line size………..KILL SID SERIAL SPID USERNAME OSUSER EVENT SW SQL_ID P1 P1TEXT Inic. Exec. Sql PROGRAM MACHINE
—- —– —— —– ———- ————— —————————— —— ————- ———- ———— ——————- ——————————- ——————————
@k 361 1689 15948 SYS oracle SQL*Net message to client 0 d8nabc2h100v1 1650815232 driver id 02/07/2013 15:17:31 sqlplus@orcl-omega (TNS V1-V3) orcl-omega*******************************************************************
3- Ultimas 20 linhas do alert.log
alert
Thread 1 advanced to log sequence 9753 (LGWR switch)
Current log# 3 seq# 9753 mem# 0: /u01/app/oracle/oradata/WINT/redo03.log
Tue Jul 02 14:55:43 2013
Archived Log entry 9596 added for thread 1 sequence 9752 ID 0x573dd493 dest 1:
Tue Jul 02 15:04:28 2013
Thread 1 advanced to log sequence 9754 (LGWR switch)
Current log# 1 seq# 9754 mem# 0: /u01/app/oracle/oradata/WINT/redo01.log
Tue Jul 02 15:04:29 2013
Archived Log entry 9597 added for thread 1 sequence 9753 ID 0x573dd493 dest 1:
Tue Jul 02 15:13:35 2013
Thread 1 cannot allocate new log, sequence 9755
Checkpoint not complete
Current log# 1 seq# 9754 mem# 0: /u01/app/oracle/oradata/WINT/redo01.log
Thread 1 cannot allocate new log, sequence 9755
Private strand flush not complete
Current log# 1 seq# 9754 mem# 0: /u01/app/oracle/oradata/WINT/redo01.log
Thread 1 advanced to log sequence 9755 (LGWR switch)
Current log# 2 seq# 9755 mem# 0: /u01/app/oracle/oradata/WINT/redo02.log
Tue Jul 02 15:13:44 2013
Archived Log entry 9598 added for thread 1 sequence 9754 ID 0x573dd493 dest 1:3 de julho de 2013 às 12:35 am #105636CleitonHanzenParticipanteOpá…
Eric, qual ferramenta você está usando para diagnosticar que o swap está em uso? Bom, se você estiver usando o top, talvez não seja a ferramenta mais adequada.
Por padrão, o Linux faz cache tanto de memória RAM quanto de Swap e isso é amplamente discutido/explicado na internet.Se quiser realmente ver se o servidor está fazendo swap, rode o comando “sar -W”.
3 de julho de 2013 às 12:55 am #105638ericclauberParticipanteOlá Cleiton, eu utilizo o free (free -m).
total used free shared buffers cached
Mem: 16041 15868 173 0 341 13954
-/+ buffers/cache: 1572 14469
Swap: 2000 609 1390o comando ‘sar -W’, nao entendi muito. Mas a coluna ‘pswpin/s’ esta muito utlizada.
3 de julho de 2013 às 5:50 am #105640CleitonHanzenParticipanteOpá…
Antes de mais “nada”, vou te dizer que você SÓ tem 14469MB de memória livre.
Dúvida??? Acessa esse link aqui que fica facinho de entender: http://www.linuxatemyram.com/Outra coisa: Somente “swap in” não é problema, o problema é se tiver bastante swap in e swap out (geralmente quer dizer que o S.O. está precisando tirar página do disco para a memória e vice-versa, pq a quantidade de memória é insuficiente para atender aos aplicativos). (Se for pesquisar a fundo e entender, nem isso quer dizer muita coisa, pois pode estar sendo feita essa troca em processos que estão inativos no S.O)
Outra coisa, você tem 16GB de RAM e somente 2GB de Swap?? Recomendo você dar uma lida nesse doc. aqui: http://docs.oracle.com/cd/E11882_01/ins … m#CHDCEBFF
Sei que a Oracle as vezes parece que escreve “besteira”, mas com estas áreas de Swap, eu nunca brinco não…. rsrsrsrsrs…..
4 de julho de 2013 às 10:46 pm #105648ericclauberParticipantePois é Cleiton. dei uma olha no DOC.
Neste mesmo servidor ainda com 8gb de RAM, rodava Oracle 10g Enterprise. com os mesmos 2GB de swap(coloquei mesmo sabendo que deveria ser no mínimo o dobro, serve de aprendizado).
E nunca tiver problema com a Swap. Entao após instalar o 11g SEO, esta utilizando a RAM e a SWAP até o talo, e estava tendo problemas.
Foi ai que decidi dobrar a RAM de 8gb para 16gb. Teoricamente não deveria esta tendo problemas com tanto consumo de RAM e inclusive a SWAP.
-
AutorPosts
- Você deve fazer login para responder a este tópico.