ORACLE Granule 解釋

gaopengtttt發表於2009-11-24

原創 轉載請註明出處

(學習筆記) Granule 是ORACLE SGA裡面分配記憶體的最小單位,在NOMOUNT的階段Granule 就會分配給SGA,Granule 分為3個狀態:FREE OR invalid,initialized,allocated 如果我們的SGA小於128MB,Granule為4MB如果我們的SGA大於128MGranule為16MB。同時每個Granule包含BUFFER和BUFFER HEADER,BUFFER HEADER用來懸掛到 cache buffer chain list ,具體的大家可以看看 cache buffer chain 的結構,也就是經常出現的等待事件cache buffer chain 。同時我們可以檢視到已經分配的Granule,使用如下語句:

 select GRANNUM, GRANTYPE, GRANSTATE, BASEADDR, GRANSIZE, GRANNEXT from x$ksmge;

我配置引數如下

sga_max_size big integer 2400M

sga_target big integer 2272M

SQL> select GRANNUM, GRANTYPE, GRANSTATE, BASEADDR, GRANSIZE, GRANNEXT from x$ksmge;
 
   GRANNUM   GRANTYPE GRANSTATE        BASEADDR   GRANSIZE   GRANNEXT
---------- ---------- ---------------- -------- ---------- ----------
         1          0 INVALID          21000000   16777216          0
         2          0 INVALID          22000000   16777216          1
         3          0 INVALID          23000000   16777216          2
         4          0 INVALID          24000000   16777216          3
         5          0 INVALID          25000000   16777216          4
         6          0 INVALID          26000000   16777216          5
         7          0 INVALID          27000000   16777216          6
         8          0 INVALID          28000000   16777216          7
         9          6 ALLOC            29000000   16777216          0
        10          6 ALLOC            2A000000   16777216          9
        11          6 ALLOC            2B000000   16777216         12
        12          6 ALLOC            2C000000   16777216         13
        13          6 ALLOC            2D000000   16777216         14
        14          6 ALLOC            2E000000   16777216         15
        15          6 ALLOC            2F000000   16777216         16
        16          6 ALLOC            30000000   16777216         17
        17          6 ALLOC            31000000   16777216         18
        18          6 ALLOC            32000000   16777216         19
        19          6 ALLOC            33000000   16777216         20
        20          6 ALLOC            34000000   16777216         10
 
   GRANNUM   GRANTYPE GRANSTATE        BASEADDR   GRANSIZE   GRANNEXT
---------- ---------- ---------------- -------- ---------- ----------
        21          6 ALLOC            35000000   16777216         22
        22          6 ALLOC            36000000   16777216         23
        23          6 ALLOC            37000000   16777216         24
        24          6 ALLOC            38000000   16777216         25
        25          6 ALLOC            39000000   16777216         26
        26          6 ALLOC            3A000000   16777216         27
        27          6 ALLOC            3B000000   16777216         28
        28          6 ALLOC            3C000000   16777216         29
        29          6 ALLOC            3D000000   16777216         30
        30          6 ALLOC            3E000000   16777216         11
        31          6 ALLOC            3F000000   16777216         32
        32          6 ALLOC            40000000   16777216         33
        33          6 ALLOC            41000000   16777216         34
        34          6 ALLOC            42000000   16777216         35
        35          6 ALLOC            43000000   16777216         36
        36          6 ALLOC            44000000   16777216         37
        37          6 ALLOC            45000000   16777216         38
        38          6 ALLOC            46000000   16777216         39
        39          6 ALLOC            47000000   16777216         40
        40          6 ALLOC            48000000   16777216         21
        41          6 ALLOC            49000000   16777216         42
 
   GRANNUM   GRANTYPE GRANSTATE        BASEADDR   GRANSIZE   GRANNEXT
---------- ---------- ---------------- -------- ---------- ----------
        42          6 ALLOC            4A000000   16777216         43
        43          6 ALLOC            4B000000   16777216         44
        44          6 ALLOC            4C000000   16777216         45
        45          6 ALLOC            4D000000   16777216         46
        46          6 ALLOC            4E000000   16777216         47
        47          6 ALLOC            4F000000   16777216         48
        48          6 ALLOC            50000000   16777216         49
        49          6 ALLOC            51000000   16777216         50
        50          6 ALLOC            52000000   16777216         31
        51          6 ALLOC            53000000   16777216         52
        52          6 ALLOC            54000000   16777216         53
        53          6 ALLOC            55000000   16777216         54
        54          6 ALLOC            56000000   16777216         55
        55          6 ALLOC            57000000   16777216         56
        56          6 ALLOC            58000000   16777216         57
        57          6 ALLOC            59000000   16777216         58
        58          6 ALLOC            5A000000   16777216         59
        59          6 ALLOC            5B000000   16777216         60
        60          6 ALLOC            5C000000   16777216         41
        61          6 ALLOC            5D000000   16777216         62
        62          6 ALLOC            5E000000   16777216         63
 
   GRANNUM   GRANTYPE GRANSTATE        BASEADDR   GRANSIZE   GRANNEXT
---------- ---------- ---------------- -------- ---------- ----------
        63          6 ALLOC            5F000000   16777216         64
        64          6 ALLOC            60000000   16777216         65
        65          6 ALLOC            61000000   16777216         66
        66          6 ALLOC            62000000   16777216         67
        67          6 ALLOC            63000000   16777216         68
        68          6 ALLOC            64000000   16777216         69
        69          6 ALLOC            65000000   16777216         70
        70          6 ALLOC            66000000   16777216         51
        71          6 ALLOC            67000000   16777216         72
        72          6 ALLOC            68000000   16777216         73
        73          6 ALLOC            69000000   16777216         74
        74          6 ALLOC            6A000000   16777216         75
        75          6 ALLOC            6B000000   16777216         76
        76          6 ALLOC            6C000000   16777216         77
        77          6 ALLOC            6D000000   16777216         78
        78          6 ALLOC            6E000000   16777216         79
        79          6 ALLOC            6F000000   16777216         80
        80          6 ALLOC            70000000   16777216         61
        81          6 ALLOC            71000000   16777216         82
        82          6 ALLOC            72000000   16777216         83
        83          6 ALLOC            73000000   16777216         84
 
   GRANNUM   GRANTYPE GRANSTATE        BASEADDR   GRANSIZE   GRANNEXT
---------- ---------- ---------------- -------- ---------- ----------
        84          6 ALLOC            74000000   16777216         85
        85          6 ALLOC            75000000   16777216         86
        86          6 ALLOC            76000000   16777216         87
        87          6 ALLOC            77000000   16777216         88
        88          6 ALLOC            78000000   16777216         89
        89          6 ALLOC            79000000   16777216         90
        90          6 ALLOC            7A000000   16777216         71
        91          6 ALLOC            7B000000   16777216         92
        92          6 ALLOC            7C000000   16777216         93
        93          6 ALLOC            7D000000   16777216         94
        94          6 ALLOC            7E000000   16777216         95
        95          6 ALLOC            7F000000   16777216         96
        96          6 ALLOC            80000000   16777216         97
        97          6 ALLOC            81000000   16777216         98
        98          6 ALLOC            82000000   16777216         99
        99          6 ALLOC            83000000   16777216        100
       100          6 ALLOC            84000000   16777216         81
       101          6 ALLOC            85000000   16777216        102
       102          6 ALLOC            86000000   16777216        103
       103          6 ALLOC            87000000   16777216        104
       104          6 ALLOC            88000000   16777216        105
 
   GRANNUM   GRANTYPE GRANSTATE        BASEADDR   GRANSIZE   GRANNEXT
---------- ---------- ---------------- -------- ---------- ----------
       105          6 ALLOC            89000000   16777216        106
       106          6 ALLOC            8A000000   16777216        107
       107          6 ALLOC            8B000000   16777216        108
       108          6 ALLOC            8C000000   16777216        109
       109          6 ALLOC            8D000000   16777216        110
       110          6 ALLOC            8E000000   16777216         91
       111          6 ALLOC            8F000000   16777216        112
       112          6 ALLOC            90000000   16777216        113
       113          6 ALLOC            91000000   16777216        114
       114          6 ALLOC            92000000   16777216        115
       115          6 ALLOC            93000000   16777216        116
       116          6 ALLOC            94000000   16777216        101
       117          4 ALLOC            95000000   16777216          0
       118          4 ALLOC            96000000   16777216        117
       119          3 ALLOC            97000000   16777216          0
       120          2 ALLOC            98000000   16777216          0
       121          1 ALLOC            99000000   16777216          0
       122          1 ALLOC            9A000000   16777216        121
       123          1 ALLOC            9B000000   16777216        122
       124          1 ALLOC            9C000000   16777216        123
       125          1 ALLOC            9D000000   16777216        124
 
   GRANNUM   GRANTYPE GRANSTATE        BASEADDR   GRANSIZE   GRANNEXT
---------- ---------- ---------------- -------- ---------- ----------
       126          1 ALLOC            9E000000   16777216        125
       127          1 ALLOC            9F000000   16777216        126
       128          1 ALLOC            A0000000   16777216        127
       129          1 ALLOC            A1000000   16777216        128
       130          1 ALLOC            A2000000   16777216        129
       131          1 ALLOC            A3000000   16777216        130
       132          1 ALLOC            A4000000   16777216        131
       133          1 ALLOC            A5000000   16777216        132
       134          1 ALLOC            A6000000   16777216        133
       135          1 ALLOC            A7000000   16777216        134
       136          1 ALLOC            A8000000   16777216        135
       137          1 ALLOC            A9000000   16777216        136
       138          1 ALLOC            AA000000   16777216        137
       139          1 ALLOC            AB000000   16777216        138
       140          1 ALLOC            AC000000   16777216        139
       141          1 ALLOC            AD000000   16777216        140
       142          1 ALLOC            AE000000   16777216        141
       143          1 ALLOC            AF000000   16777216        142
       144          1 ALLOC            B0000000   16777216        143
       145          1 ALLOC            B1000000   16777216        144
       146          1 ALLOC            B2000000   16777216        145
 
   GRANNUM   GRANTYPE GRANSTATE        BASEADDR   GRANSIZE   GRANNEXT
---------- ---------- ---------------- -------- ---------- ----------
       147          1 ALLOC            B3000000   16777216        146
       148          1 ALLOC            B4000000   16777216        147
       149          1 ALLOC            B5000000   16777216        148
 
149 rows selected

如果我們計算一下總的Granule大小為: 16*149= 2384MB 我這裡有點懷疑LOG_BUFFER是否使用了Granule

LOG_BUFFER 15312896

剛好2384MB+15MB差不多就等於SGA_MAX_SIZE 而如果我們統計

GRANSTATE =‘ALLOC ’ 那就是 16*141=2256MB 基本也和 sga_target差不多。所以透過

select GRANNUM, GRANTYPE, GRANSTATE, BASEADDR, GRANSIZE, GRANNEXT from x$ksmge;

我們可以知道Granule的具體分配情況

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-620371/,如需轉載,請註明出處,否則將追究法律責任。

相關文章