Stories

Detail Return Return

【趙渝強老師】OceanBase的內存管理 - Stories Detail

OceanBase數據庫是多租户設計的數據庫,同一個進程會運行着多個租户的請求,從租户資源劃分上可以分為三類,500租户內存、系統租户內存、業務租户內存。

  • 500是個特殊的虛擬租户,共享性的、非實體租户消耗的內存都被OceanBase數據庫劃歸500租户。
  • 系統租户是OceanBase數據庫自動創建的第一個實體租户,管理着集羣相關的內部表,這些內部表上的請求觸發的內存就劃歸到了sys租户。
  • 業務租户就是集羣安裝後由DBA創建的跑業務流量的實體租户,這些租户的請求觸發的內存就劃歸租户自己。

視頻講解如下:
https://www.bilibili.com/video/BV1kE4uzLEav/?aid=115360137221...

OceanBase數據庫支持通過參數來設置和管理內存的使用,這裏主要關注兩個方面的內存參數:OBServer節點總內存和業務租户內存。

OBServer節點總內存

表示OBServer節點所有內存的上限,即所有租户累加不可能超過的上限,由以下兩個參數控制:

  • memory_limit_percentage 物理機或者容器物理內存的百分比
  • memory_limit 內存的絕對數值
當memory_limit不為0M時,使用memory_limit作為上限,
否則使用memory_limit_percentage計算後的值作為上限。

下面展示了這兩個參數的相關信息:

ob> show parameters  like 'memory_limit%' \G;

# 輸出的信息如下:
*************************** 1. row ***************************
         zone: zone1
     svr_type: observer
       svr_ip: 192.168.79.10
     svr_port: 2882
         name: memory_limit_percentage
    data_type: INT
        value: 80
         info: the size of the memory reserved for internal use
(for testing purpose). Range: [10, 95]
      section: OBSERVER
        scope: CLUSTER
       source: DEFAULT
   edit_level: DYNAMIC_EFFECTIVE
default_value: 80
    isdefault: 1
*************************** 2. row ***************************
         zone: zone1
     svr_type: observer
       svr_ip: 192.168.79.10
     svr_port: 2882
         name: memory_limit
    data_type: CAPACITY
        value: 10G
         info: the size of the memory reserved for internal use
(for testing purpose), 
0 means follow memory_limit_percentage. Range: 0, [1G,).
      section: OBSERVER
        scope: CLUSTER
       source: DEFAULT
   edit_level: DYNAMIC_EFFECTIVE
default_value: 0M
    isdefault: 0
2 rows in set (0.014 sec)

通過使用命令obd cluster edit-config <集羣名稱> 可以修改OBServer節點的總內存大小。

業務租户內存

業務租户內存由租户創建ResourceManager Unit(資源單元)時指定。系統租户可以通過視圖查詢Resource Unit的規格,例如:

ob> select name,MAX_CPU,MIN_CPU,MEMORY_SIZE,LOG_DISK_SIZE 
from oceanbase.DBA_OB_UNIT_CONFIGS;

# 輸出的信息如下:
+-----------------+---------+---------+-------------+---------------+
| name            | MAX_CPU | MIN_CPU | MEMORY_SIZE | LOG_DISK_SIZE |
+-----------------+---------+---------+-------------+---------------+
| sys_unit_config |       1 |       1 |  2147483648 |    2147483648 |
| ru1             |       1 |       1 |  2147483648 |    2147483648 |
| ru2             |       1 |       1 |  2147483648 |    2147483648 |
| ru3             |       1 |       1 |  2147483648 |    2147483648 |
+-----------------+---------+---------+-------------+---------------+
4 rows in set (0.004 sec)

Add a new Comments

Some HTML is okay.