Re: How to find large_pool map in SGA?

  • From: fairlie rego <fairlie_r@xxxxxxxxx>
  • To: gorbyx@xxxxxxxxx
  • Date: Sun, 11 Feb 2007 17:12:55 -0800 (PST)

 Alex,
 
 Apologies.. I had not seen your earlier email where u had found the answer.
 You already have a heap dump and I think you are looking for a subheap dump.
 AFAIK Subheap dumps can only be taken for chunks with a heap descriptor value
 such as
 Chunk  773517c sz=     4144    freeable  "qmtmInit       "  ds=077313F4
 
 This is also what Julian shows on Page 42 of his excellent presentation.
  I too get an ora-81 if I use the chunk address.
 
 Regards,
 Fairlie

Alex Gorbachev <gorbyx@xxxxxxxxx> wrote:
  Thanks Fairlie.
x$ksmls for large pool is the same as x$ksmss for shared pool and it doesn't 
have addresses - only areas and sizes.
I thought that there should be something like x$ksmsp but for large pool and I 
would expect it to be named x$ksmlp but there is no such X$ table. I checked 
all kernel service memory x$ksm% tables and couldn't find anything useful for 
large pool . 

As I mentioned already, heapdump level 32 gave me what I was looking for.

I tried the to dump the heap using "heapdump_addr level 1, addr=<...>" but got 
"ORA-00081: address range [0x31F6DFF4, 0x31F6E038) is not readable" 

I think this is not permission issue (everything must be accessible, right) but 
format of this heap is different than from shared pool heaps. I even tried to 
go via oradebug to the process that should have something to do with this area 
and got the same ORA-81. 

Here is what I'm looking into:
  Chunk 31d72ff4 sz=  2072588    freeable  "krcc extent chu"
  Chunk 31f6dff4 sz=    20492    freeable  "CTWR dba buffer"
  Chunk 31f73ff4 sz=   364556    freeable  "CTWR dba buffer"



  On 2/11/07, fairlie rego <fairlie_r@xxxxxxxxx> wrote:    Alex, 
   
  I don't have access to a system right now but I think x$ksmls could have the 
info u're looking for.
   
  Thanks
  Fairlie

Alex Gorbachev < gorbyx@xxxxxxxxx> wrote:
    Listers,

I need to identify memory chunks (addresses + sizes) within large pool where 
certain areas are located.

I know how to do it with shared pool areas. The total area size is in X$KSMSS 
and chunks are in X$KSMSP: 

SQL> select * from x$ksmss where KSMSSNAM = 'sql area';

ADDR           INDX    INST_ID   KSMSSLEN KSMSSNAM                     KSMDSIDX
-------- ---------- ---------- ---------- -------------------------- ---------- 
B70F8C88          2          1          0 sql area                            0 
B70F8C88         19          1   12365696 sql area                            1

SQL> select * from x$ksmsp where KSMCHCOM = 'sql area' and rownum <= 10; 

ADDR           INDX    INST_ID   KSMCHIDX   KSMCHDUR KSMCHCOM         KSMCHPTR  
 KSMCHSIZ KSMCHCLS   KSMCHTYP KSMCHPAR 
-------- ---------- ---------- ---------- ---------- ---------------- -------- 
---------- -------- ---------- -------- 
B6DF9B0C          0          1          1          4 sql area         35FFF000  
     4096 recr           4095 363E9E3C 
B6DF9AD4          1          1          1          4 sql area         35FFE000  
     4096 freeabl           0 36291BE4 
B6DF9A64          3          1          1          4 sql area         35FFCBD0  
     4096 recr           4095 363FC11C 
B6DF9A2C          4          1          1          4 sql area         35FFBBD0  
     4096 recr           4095 363EDD0C 
B6DF99F4          5          1          1          4 sql area         35FFABD0  
     4096 recr           4095 3636B8BC 
B6DF98A4         11          1          1          4 sql area         35FF87A0  
     4096 recr           4095 363F34FC 
B6DF986C         12          1          1          4 sql area         35FF77A0  
     4096 freeabl           0 363E95DC 
B6DF971C         18          1          1          4 sql area         35FF5308  
     4096 recr           4095 3638906C 
B6DF96E4         19          1          1          4 sql area         35FF4308  
     4096 freeabl           0 3638906C 
B6DF9674         21          1          1          4 sql area         35FF2ED8  
     4096 freeabl           0 3636B8BC 

10 rows selected.

Unfortunately, I cannot find any X$ table for large pool that is similar to 
x$ksmsp. Large pool is managed differently than shared pool and has no LRU list 
for example. However, I would still expect to find large pool map somewhere. I 
tried to find something in X$KSMMEM but I couldn't identify there what I'm 
looking for. 

Any suggestions are greatly appreciated.

TIA,
Alex







-- 
Best regards,
Alex Gorbachev

The Pythian Group
Sr. Oracle DBA

http://www.pythian.com/blogs/author/alex/
http://blog.oracloid.com




            Fairlie Rego
Senior Oracle Consultant
  http://www.linkedin.com/in/fairlierego
  
  http://el-caro.blogspot.com/
  M: +61 402 792 405
   





  
  
---------------------------------
  Get your own web address.
Have a HUGE year through Yahoo! Small Business.  




-- 
Best regards,
Alex Gorbachev

The Pythian Group
Sr. Oracle DBA

http://www.pythian.com/blogs/author/alex/
http://blog.oracloid.com 


          Fairlie Rego
Senior Oracle Consultant
  http://www.linkedin.com/in/fairlierego
  
  http://el-caro.blogspot.com/
  M: +61 402 792 405
   






 
---------------------------------
Expecting? Get great news right away with email Auto-Check.
Try the Yahoo! Mail Beta.

Other related posts: