OceanBase學習之路50|預設生產引數的建議配置是什麼?

老樹樁12發表於2023-01-18

本節主要從硬體配置、TP 使用場景、AP 使用場景等提供預設生產引數的建議配置。

典型硬體配置

根據各自的生產標準,不同使用者的伺服器配置可能不同,本文主要以下表中的硬體配置作為典型配置,介紹不同場景的生產系統上預設使用的引數。

伺服器配置項 描述
伺服器數量 3 臺
晶片 Intel
CPU 52 Core
記憶體 512 GB
磁碟
  • 資料盤:3.84 TB NVME x 6
  • 系統盤:240 G M.2
網路卡 萬兆網路卡
作業系統 CentOS 7.6

基於 TP 使用場景

叢集級引數

  • system_memory:用於設定系統預留給租戶 ID 為  500 的租戶的記憶體容量。

    • 建議值:0M

    • 取值範圍:[0M, +∞)

    • 示例:

      obclient> ALTER SYSTEM SET system_memory='30G';
  • rootservice_memory_limit:用於設定 RootService 的最大記憶體容量限制。

    • 建議值:2G

    • 取值範圍:[2G, +∞)

    • 示例:

      obclient> ALTER SYSTEM SET rootservice_memory_limit='2G';
  • major_compact_trigger:用於設定多少次小合併觸發一次全域性合併。

    • 建議值:50

    • 取值範圍:[0, 65535]

    • 示例:

      obclient> ALTER SYSTEM SET major_compact_trigger=50;
  • memstore_limit_percentage:用於設定租戶使用 MEMStore 的記憶體佔其總可用記憶體的百分比。

    • 建議值:80

    • 取值範圍:(0, 100)

    • 示例:

      obclient> ALTER SYSTEM SET memstore_limit_percentage=80;
  • trace_log_slow_query_watermark:用於設定查詢的執行時間閾值,如果查詢的執行時間超過該閾值,則被認為是慢查詢,慢查詢的追蹤日誌會被列印到系統日誌中。

    • 建議值:100ms

    • 取值範圍:[1ms, +∞)

    • 示例:

      obclient> ALTER SYSTEM SET trace_log_slow_query_watermark='100ms';
  • enable_syslog_recycle:用於設定是否開啟回收系統日誌的功能。

    • 建議值:True

    • 取值範圍:True,False

    • 示例:

      obclient> ALTER SYSTEM SET enable_syslog_recycle=True;
  • max_syslog_file_count:用於設定在回收日誌檔案之前可以容納的日誌檔案數量。

    • 建議值:500

    • 取值範圍:[0, +∞)

    • 示例:

      obclient> ALTER SYSTEM SET max_syslog_file_count=500;
  • enable_rebalance:用於設定是否開啟自動負載均衡的功能。

    • 建議值:True

    • 取值範圍:True,False

    • 示例:

      obclient> ALTER SYSTEM SET enable_rebalance=True;

租戶級引數

  • freeze_trigger_percentage:用於設定觸發全域性凍結的租戶使用記憶體閾值。

    • 建議值:20

    • 取值範圍:(0, 100)

    • 示例:

      obclient> ALTER SYSTEM SET freeze_trigger_percentage=20;
  • writing_throttling_trigger_percentage:用於設定寫入速度的閾值。當值為  100 時,表示關閉寫入限速機制。

    • 建議值:80

    • 取值範圍:[0, 100]

    • 示例:

      obclient> ALTER SYSTEM SET writing_throttling_trigger_percentage=80;
  • undo_retention:表示系統應保留的多版本資料範圍,單位為秒,在轉儲時控制多版本資料的回收。

    • 建議值:1800

    • 取值範圍:[0, 4294967295]

    • 示例:

      obclient> ALTER SYSTEM SET undo_retention=1800;
  • cpu_quota_concurrency:用於設定租戶的每個 CPU 配額所允許的最大併發數。

    • 建議值:4

    • 取值範圍:[1, 10]

    • 示例:

      obclient> ALTER SYSTEM SET cpu_quota_concurrency=4;

系統變數

  • recyclebin:用於設定是否開啟回收站功能。

    • 建議值:OFF

    • 取值範圍:ON,OFF

    • 示例:

      obclient> SET GLOBAL recyclebin=OFF;
  • ob_query_timeout:用於設定查詢超時時間,單位是微秒。

    • 建議值:10000000

    • 取值範圍:N/A

    • 示例:

      obclient> SET GLOBAL ob_query_timeout=10000000;
  • ob_trx_idle_timeout:用於設定事務空閒超時時間,即事務中兩條語句之間的執行間隔超過該值時超時,單位為微秒。

    • 建議值:86400000000

    • 取值範圍:[100000000,+∞)

    • 示例:

      obclient> SET GLOBAL ob_trx_idle_timeout=120000000;
  • ob_trx_timeout:用於設定事務超時時間,單位為微秒。

    • 建議值:86400000000

    • 取值範圍:N/A

    • 示例:

      obclient> SET GLOBAL ob_trx_timeout=100000000;
  • ob_sql_work_area_percentage:用於 SQL 執行的租戶記憶體百分比限制。

    • 建議值:5

    • 取值範圍:[0, 100]

    • 示例:

      obclient> SET GLOBAL ob_sql_work_area_percentage=5;
  • parallel_servers_target:用於設定每個 Server 上的大查詢排隊條件。當並行執行(Parallel eXecution,PX)消耗的執行緒數超過大查詢排隊條件後,後繼並行執行需要排隊等待。

    • 建議值:租戶 CPU 核數 * 10

    • 取值範圍:[0, 9223372036854775807]

    • 示例:

      obclient> SET GLOBAL parallel_servers_target=30;
  • max_allowed_packet:用於設定最大網路包大小,單位是 Byte。

    • 建議值:4194304

    • 取值範圍:[1024,1073741824]

    • 示例:

      obclient> SET GLOBAL max_allowed_packet=4194304;
  • nls_date_format:用於控制 Date 型別轉 Str 的格式,以及 Str 隱式轉 Date 的格式。

    說明

    該引數僅適用於 Oracle 模式。

    • 建議值:DD-MON-RR

    • 取值範圍:N/A

    • 示例:

      obclient> SET GLOBAL nls_date_format='DD-MON-RR';

基於 AP 使用場景

叢集級引數

  • trace_log_slow_query_watermark:用於設定查詢的執行時間閾值,如果查詢的執行時間超過該閾值,則被認為是慢查詢,慢查詢的追蹤日誌會被列印到系統日誌中。

    • 建議值:10s

    • 取值範圍:[1ms,+∞)

    • 示例:

      obclient> ALTER SYSTEM SET trace_log_slow_query_watermark='10s';
  • memstore_limit_percentage:用於設定租戶使用 MemStore 的記憶體佔其總可用記憶體的百分比。

    • 建議值:50

    • 取值範圍:(0, 100)

    • 示例:

      obclient> ALTER SYSTEM SET memstore_limit_percentage=50;
  • large_query_worker_percentage:用於設定預留給處理大查詢的工作執行緒百分比。

    • 建議值:10

    • 取值範圍:[0,100]

    • 示例:

      obclient> ALTER SYSTEM SET large_query_worker_percentage=10;
  • net_thread_count:用於設定網路 I/O 執行緒數。

    • 建議值:24

    • 取值範圍:[1,64]

    • 示例:

      obclient> ALTER SYSTEM SET net_thread_count=24;
  • rpc_timeout:用於設定叢集內部請求的超時時間,單位為微秒。

    • 建議值:1000000000

    • 取值範圍:[0,+∞)

    • 示例:

      obclient> ALTER SYSTEM SET rpc_timeout=1000000000;
  • micro_block_merge_verify_level:用於設定合併時宏塊的校驗級別。

    • 建議值:0

    • 取值範圍:

      • 0:表示不做校驗

      • 1:表示驗證編碼演演算法,將讀取編碼後的微塊以確保資料正確

      • 2:表示驗證編碼和壓縮演演算法,除編碼驗證外,還將對壓縮塊進行解壓縮以確保資料正確

      • 3:表示驗證編碼,壓縮演演算法和丟失防寫

    • 示例:

      obclient> ALTER SYSTEM SET micro_block_merge_verify_level=0;
  • enable_sql_audit:用於設定是否開啟 SQL 審計功能。

    • 建議值:False

    • 取值範圍:True,False

    • 示例:

      obclient> ALTER SYSTEM SET enable_sql_audit=False;
  • enable_perf_event:用於設定是否開啟效能事件的資訊收集功能。

    • 建議值:False

    • 取值範圍:True,False

    • 示例:

      obclient> ALTER SYSTEM SET enable_perf_event=False;
  • cache_wash_threshold:用於設定觸發快取清理的容量閾值。如果記憶體空間小於指定值時,記憶體空間將被清理。

    • 建議值:30GB

    • 取值範圍:[0, +∞)

    • 示例:

      obclient> ALTER SYSTEM SET cache_wash_threshold='30GB';

租戶級引數

  • undo_retention:表示系統應保留的多版本資料範圍,單位為秒,在轉儲時控制多版本資料的回收。

    • 建議值:900

    • 取值範圍:[0, 4294967295]

    • 示例:

      obclient> ALTER SYSTEM SET undo_retention=900;

系統變數

系統租戶可參考以下設定完成基礎變數的配置:

  • ob_query_timeout:用於設定查詢超時時間,單位是微秒。

    • 建議值:10000000000

    • 取值範圍:N/A

    • 示例:

      obclient> SET GLOBAL ob_query_timeout=10000000000;
  • ob_trx_timeout:用於設定事務超時時間,單位為微秒。

    • 建議值:86400000000

    • 取值範圍:N/A

    • 示例:

      obclient> SET GLOBAL ob_trx_timeout=100000000000;

普通租戶可參考以下設定完成常規變數的配置:

  • ob_sql_work_area_percentage:用於 SQL 執行的租戶記憶體百分比限制。

    • 建議值:70

    • 取值範圍:[0, 100]

    • 示例:

      obclient> SET GLOBAL ob_sql_work_area_percentage=70;
  • parallel_servers_target:用於設定每個 Server 上的大查詢排隊條件。當並行執行(Parallel eXecution,PX)消耗的執行緒數超過大查詢排隊條件後,後繼並行執行需要排隊等待。

    • 建議值:租戶 CPU 核數 * 30

    • 取值範圍:[0, 9223372036854775807]

    • 示例:

      obclient> SET GLOBAL parallel_servers_target=90;
  • max_allowed_packet:用於設定最大網路包大小,單位是 Byte。

    • 建議值:67108864

    • 取值範圍:[1024,1073741824]

    • 示例:

      obclient> SET GLOBAL max_allowed_packet=67108864;


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

相關文章