Bucket(free list) 是如何來劃分記憶體chunk大小範圍的?
Oracle 10.2.0.4
在Shared pool中,可用的chunk (free型別) 會被串起來稱為可用連結串列 (free list) . 空閒記憶體都是由空閒列表(free list)統一管理、分配的。
每個空閒的chunk都會屬於也只屬於一個空閒列表。空閒列表上的chunk的大小範圍是由bucket來劃分的。我們也可以把bucket視為一種索引,
使Oracle在查詢空閒塊時,先定位所需的空閒塊在哪個bucket的範圍內,然後在相應的空閒列表中查詢。
當某程式需要shared pool中的一個bucket時,則該程式首先到符合請求的空間大小的bucket上掃描,找到尺寸最合適的chunk , 掃描持續到
這個bucket 的最末端 .......
問題: 如下, bucket 0 size = 44 表示bucket 0 中44 Bytes 的free chunk size , 下面包含的3個chunk sz分別
是56 (free), 60 (free) , 28 (free) 分別代表什麼, 是各個chunk的總大小 , 後面free代表啥意思 ? 44 Bytes
是指下面這三個chunk 總共剩下的free 空間 ? Oracle是如何根據 bucket size 和 各chunk size 大小進行串聯chunk的 ?
使用一下語句dump sga 資訊:
alter session set events 'immediate trace name heapdump level 2' ;
bucket 0 size=44
chunk 7bb0dbc sz= 56 free " "
chunk 7be52d4 sz= 60 free " "
chunk 7be30b8 sz= 28 free " "
bucket 1 size=76
bucket 2 size=96
chunk 7b695a4 sz= 116 free " "
bucket 3 size=140
bucket 4 size=236
bucket 5 size=268
bucket 6 size=524
bucket 7 size=1036
bucket 8 size=2060
bucket 9 size=4108
bucket 10 size=8204
bucket 11 size=16396
bucket 12 size=32780
bucket 13 size=65548
bucket 14 size=131084
bucket 15 size=262156
bucket 16 size=524300
bucket 17 size=2097164
total free space = 260
在Shared pool中,可用的chunk (free型別) 會被串起來稱為可用連結串列 (free list) . 空閒記憶體都是由空閒列表(free list)統一管理、分配的。
每個空閒的chunk都會屬於也只屬於一個空閒列表。空閒列表上的chunk的大小範圍是由bucket來劃分的。我們也可以把bucket視為一種索引,
使Oracle在查詢空閒塊時,先定位所需的空閒塊在哪個bucket的範圍內,然後在相應的空閒列表中查詢。
當某程式需要shared pool中的一個bucket時,則該程式首先到符合請求的空間大小的bucket上掃描,找到尺寸最合適的chunk , 掃描持續到
這個bucket 的最末端 .......
問題: 如下, bucket 0 size = 44 表示bucket 0 中44 Bytes 的free chunk size , 下面包含的3個chunk sz分別
是56 (free), 60 (free) , 28 (free) 分別代表什麼, 是各個chunk的總大小 , 後面free代表啥意思 ? 44 Bytes
是指下面這三個chunk 總共剩下的free 空間 ? Oracle是如何根據 bucket size 和 各chunk size 大小進行串聯chunk的 ?
使用一下語句dump sga 資訊:
alter session set events 'immediate trace name heapdump level 2' ;
bucket 0 size=44
chunk 7bb0dbc sz= 56 free " "
chunk 7be52d4 sz= 60 free " "
chunk 7be30b8 sz= 28 free " "
bucket 1 size=76
bucket 2 size=96
chunk 7b695a4 sz= 116 free " "
bucket 3 size=140
bucket 4 size=236
bucket 5 size=268
bucket 6 size=524
bucket 7 size=1036
bucket 8 size=2060
bucket 9 size=4108
bucket 10 size=8204
bucket 11 size=16396
bucket 12 size=32780
bucket 13 size=65548
bucket 14 size=131084
bucket 15 size=262156
bucket 16 size=524300
bucket 17 size=2097164
total free space = 260
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-676672/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java 記憶體劃分Java記憶體
- JVM記憶體劃分JVM記憶體
- flink中的記憶體劃分記憶體
- Java的記憶體區域劃分Java記憶體
- JVM的記憶體區域劃分JVM記憶體
- JVM記憶體區域劃分JVM記憶體
- jvm 記憶體區域劃分JVM記憶體
- JVM記憶體結構劃分JVM記憶體
- JVM記憶體元件劃分梳理JVM記憶體元件
- Java的記憶體管理機制之記憶體區域劃分Java記憶體
- Java 執行時的記憶體劃分Java記憶體
- Java中的記憶體區域劃分Java記憶體
- Java基本資料型別記憶體佔用位元組大小,取值範圍和預設值Java資料型別記憶體
- JVM及其記憶體結構劃分JVM記憶體
- free命令可用記憶體分析記憶體
- Java基礎專題 Jvm記憶體劃分JavaJVM記憶體
- 記憶體管理中關於記憶體每次增長的大小記憶體
- 修改OracleLinux共享記憶體的大小OracleLinux記憶體
- Java虛擬機器記憶體區域劃分Java虛擬機記憶體
- 關於Linux的記憶體(free -m)Linux記憶體
- aix 共享記憶體段大小限制AI記憶體
- 手機記憶體卡大小的計算記憶體
- 【freertos】008-記憶體管理記憶體
- FreeBSD VM核心記憶體管理(轉)記憶體
- Go/Golang語言各種資料型別記憶體位元組佔用大小和取值範圍(最小值最大值)Golang資料型別記憶體
- jQuery Validate限定輸入數字大小的範圍jQuery
- Java虛擬機器的記憶體是如何分佈的Java虛擬機記憶體
- 強如 Disruptor 也發生記憶體溢位?記憶體溢位
- IP地址分類及範圍
- 什麼是Java記憶體模型(JMM)中的主記憶體和本地記憶體?Java記憶體模型
- 獲取Linux 記憶體頁大小的命令Linux記憶體
- 在linux檢視記憶體的大小(轉)Linux記憶體
- free命令顯示的記憶體與實際不符記憶體
- STM32記憶體結構介紹和FreeRTOS記憶體分配技巧記憶體
- C C++變數型別大小和範圍C++變數型別
- JVM記憶體分為3個記憶體空間JVM記憶體
- [20240604]簡單探究RESERVED FREE LISTS chunk size的分佈.txt
- java虛擬機器記憶體區域的劃分以及作用詳解Java虛擬機記憶體