GBase 8a
运维管理
文章

内存参数分配

发表于2024-12-31 16:48:4253次浏览0个评论
  • 内存分配与使用‌:
    • GBase 8a的内存使用由预分配的cell/large/temp和部分直接从系统中申请四部分组成‌1。
    • 预分配的cell/large/temp默认比值为6:3:1,占总物理内存的0.625。默认内存上限为0.8,即从0.625-0.8之间为可使用的系统内存‌。
  • 关键内存参数‌:
    • _gbase_insert_malloc_size_limit:控制insert select场景下一次申请内存的大小。默认值为10240,为较优配置。如果insert select中涉及较长的varchar字段,可能会导致内存频繁申请,进而影响性能。推荐取值为最大字符串定义的5倍‌。
    • gbase_memory_pct_target:最大允许的内存占用比例,默认值为0.8(即80%)。内存总量包括物理内存和SWAP内存。如果超过此比例,SQL可能会返回malloc分配内存失败的错误‌。
    • gbase_heap_data:热数据缓冲,用于缓冲查询用到的数据,以减少磁盘读写并提高性能。
    • gbase_heap_large:针对算子(如group, join, sort等)操作的专用内存。每个连接允许使用的最大值。
    • gbase_heap_temp:这是一个临时堆,用于加载等需要临时申请空间的操作,也包括智能索引等。
  • 内存与性能的关系‌:
    • 合理的内存配置对于GBase 8a的性能至关重要。例如,通过调整_gbase_insert_malloc_size_limit参数,可以减少内存频繁申请带来的系统CPU占用,从而提高性能‌。
    • 热数据缓冲(gbase_heap_data)可以减少磁盘IO,提高查询性能。但如果内存不足以容纳所有的热数据,或者频繁访问大表导致现有热数据被换出,则性能可能会下降‌。

评论

登录后才可以发表评论