博客 / 詳情

返回

【YashanDB 知識庫】崖山有哪些內存參數,Share Pool 各個參數之間有什麼關係

問題現象

Oracle 一般只需要配置 SGA/PGA,SGA 內存會自動做分配,在崖山有比較多的內存配置參數,可以根據需要做詳細的配置控制。具有有哪些主要參數,功能是什麼呢,用户常有這種疑問。

在用户使用 YashanDB 的時候,開始的時候就會對內存的參數做一些配置調優,在另一篇文章《要有好的跑批性能,有哪些參數要注意》也介紹到如何合理配置各項參數,其中也涉及較多內存參數的配置。

但是用户實際使用的過程,陸續反饋了一些參數配置之後報錯,例如 SQL_POOL_SIZE+DICTIONARY_CACHE_SIZE 配置大於 100 報錯
問題的風險及影響

影響跑批性能
問題影響的版本

YashanDB 版本:23.2 及以上所有版本
解決方法及規避方式

崖山各項內存空間參數

可以參考下圖:
圖片.png
上圖中除了共享區域,其他各個配置均有對應的參數、觀察使用情況的方法,可以在官網中找到詳細的説明 配置參數 | YashanDB Doc,有了觀察實際使用情況的方法後,可以根據實際情況做調整。

而共享區域的配置則相對複雜一點,可以參考下一章節。

Share Pool 內部構成及相互關係

在 Oracle 中,SGA 是全局共享內存區域,其內部也有很詳細的各種池子,各個池子之間可以自動調節。

YashanDB 的實現也有些類似,在 Share Pool 內存在多個 POOL,如 SQL POOL,DC POOL,LOCK_POOL,CURSOR_POOL 等,
圖片.png
為了方面用户使用,設計 SHARE POOL 統一參數,用户一般只需配置 SHARE_POOL_SIZE 參數即可,SHARE POOL 內存可在 SQL POOL、DC POOL 之間動態調整:SQL_POOL、DC_POOL、SHARE_POOL 以 MemoryPool 管理,以 MemoryPool 管理的 POOL 出現內存不足時,可以從 SHARE MEMORY POOL 申請內存。

為了方便高階用户進一步調整,每個 POOL 存在對應的配置參數限制控制其大小,存在如下限制:

● SQL_POOL_SIZE、DICTIONARY_CACHE_SIZE 表示佔用 share pool 大小的百分比,兩者總和不能超過 100

● LOCK_POOL_SIZE 和 CURSOR_POOL_SIZE 表示佔用內存大小

● SQL_POOL_SIZE、DICTIONARY_CACHE_SIZE 參數範圍為[1, 99]的整數,默認值分別為 50,25.

● SHARE_POOL_SIZE 參數範圍為[160MB, 64TB],默認值為 256M, 生效方式為重啓生效

● CURSOR_POOL_SIZE 默認值為 32M

user avatar FlyAway2013 頭像 tugraph 頭像 u_13912333 頭像 apacheiotdb 頭像
4 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.