【问题标题】:Greenplum gp_vmem_protect_limit configurationGreenplum gp_vmem_protect_limit 配置
【发布时间】:2016-07-15 22:24:57
【问题描述】:

我们正在通过在 AWS 环境中安装 Greenplum 来进行 PoC。我们已将每个分段服务器设置为 d2.8xlarge 实例类型,具有 240 GB 的 RAM,没有 SWAP。

我现在正在尝试使用 gpdb 文档中提到的公式设置 gp_vmem_protect_limit,该值即将达到 25600MB。

但在 Zendesk 的一篇注释中,它说当“在此段上执行的会话试图一起使用超过配置的限制时,将违反 gp_vmem_protect_limit。” strong> 在本文中是指 Segment Host 还是主要 Segment 的数量?

此外,在设置了 Eager Free 选项后,我发现在运行 5 个并发用户的 TPC-DS 基准测试时内存利用率非常低。我想提高环境的内存利用率,下面是其他内存配置

gpconfig -c gp_vmem_protect_limit -v 25600MB
gpconfig -c max_statement_mem -v 16384MB
gpconfig -c statement_mem -v 2400MB

有什么建议吗?

谢谢, 贾亚德普

【问题讨论】:

    标签: greenplum


    【解决方案1】:

    有一个计算器!
    http://greenplum.org/calc/

    您还应该添加一个交换文件或磁盘。在亚马逊也很容易做到。当您有 240GB 的 RAM 时,我会为每个主机添加至少一个 4GB 的交换文件。

    【讨论】:

    • 我使用该计算器计算出我原来帖子中提到的值。您是建议我们为每个主机或每个段设置 4 GB 交换?
    • 每个主机。这与你有多少内存有关。
    • 感谢@Jon 基于 15 个并发 SQL 的以下值,用于不同的内存参数 'code' gpconfig -c gp_vmem_protect_limit -v 25600 gpconfig -c max_statement_mem -v 16384MB gpconfig -c statement_mem -v 1600MB 但现在我遇到错误 psql:/pivotalguru/TPC-DS/07_multi_user/5/134.query.95.sql:31:错误:由于 VMEM 使用率高而取消查询。已用:15058MB,可用 2232MB,红色区域:23040MB (runaway_cleaner.c:135) (seg1 slice285 ip-10-228-2-96:40001 pid=76030) (cdbdisp.c:1326)
    • 我检查了 runaway_detector_activation_percent 值并将其设置为 90,这意味着 SQL 不能使用超过 25GB (vmem_limit) 的 90%,即分段主机服务器中的 22.5 GB。但是 max_statement_mem 和 statement_mem 参数不允许任何 SQL 使用这么多内存,这就是我感到困惑的地方。
    • statement_mem 和 max_statement_mem 仅在 gp_resqueue_memory_policy 设置为 auto 但 gp_resqueue_memory_policy 的默认值为 eager_free 时使用,因此您的设置将被忽略。 eager_free 在尽可能释放内存方面做得很好,所以我会坚持这个设置。另一种处理高并发的方法是使用资源队列。例如,您可以将默认资源队列中的 ACTIVE_STATEMENTS 从 20 更改为 10。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多