GreenPlum系列-4-配置参数

一、系统参数

基于Centos7.9 64位, greenplum 6.18,对共享内存、网络、用户限制等参数配置

  1. sysctl 配置

#定义系统界别可用的所有共享内存页的数量,$(expr $(getconf _PHYS_PAGES) / 2)

kernel.shmall = 11322042

#定义单个进程在它本身的虚拟地址空间可以访问的单个共享内存段的最大值,$(expr $(getconf _PHYS_PAGES) / 2 \* $(getconf PAGE_SIZE))

kernel.shmmax = 46375084032

#定义在系统层面最大的共享内存段的数量

kernel.shmmni = 4096

#内存分配策略,0: 内核检测是否有足够的内存供应用使用,如果有允许申请,否则申请失败并把错误返回给应用;1:内核允许分配所有的物理内存,不论当前的内存状态如何;2:内核允许分配超过所有物理内存和交换空间总和的内存。

vm.overcommit_memory = 2

#系统分配给应用程序的内存百分比

vm.overcommit_ratio = 95

#随机分配端口的范围

net.ipv4.ip_local_port_range = 10000 65535

#打开内建的内核调试工具

kernel.sysrq = 1

#分别对应 semmsl 信号集容纳最大信号量、semmns 所有信号的最大量、semopm 调用单个信号集最大信号量、semmni 信号集的最大值

kernel.sem = 50100 128256000 50100 2560

#允许调试多线程应用程序

kernel.core_uses_pid = 1

#所有在消息队列中中的消息总和的最大值

kernel.msgmnb = 65536

#内核中消息队列中消息的最大值

kernel.msgmax = 65536

#系统范围最大消息队列数

kernel.msgmni = 2048

#允许cookies处理溢出的syn等待队列

net.ipv4.tcp_syncookies = 1

#允许接收含有源路由信息的IP包

net.ipv4.conf.default.accept_source_route = 0

#sync队列长度,可以容纳的等待连接的数量

net.ipv4.tcp_max_syn_backlog = 4096

#允许使用某一块网卡回应ARP询问

net.ipv4.conf.all.arp_filter = 1

#网络设备接收数据包的速率比内核处理的快时,允许送到队列的数据包的最大数目

net.core.netdev_max_backlog = 10000

#接收套接字缓冲区的最大字节数

net.core.rmem_max = 2097152

#发送套接字缓冲区的最大字节数

net.core.wmem_max = 2097152

#控制内存使用百分比(100-10)后开始使用交换分区

vm.swappiness = 10

#禁用内存域回收,当一个内存区域耗尽时不做内部回收从其他zone分配内存

vm.zone_reclaim_mode = 0

#与background_ratio一起作用,表示满足间隔时间内数据刷盘

vm.dirty_expire_centisecs = 500

#满足间隔时间内让数据刷盘完成

vm.dirty_writeback_centisecs = 100

#表示满足数据超过这个阈值数据刷盘

vm.dirty_background_ratio = 3

#满足cache数据超出设定的值后阻塞写请求,进行刷盘操作

vm.dirty_ratio = 10

#强制内核的内存管理器保留的空闲内存,一般为物理内存的3%

#awk 'BEGIN {OFMT = "%.0f";} /MemTotal/ {print "vm.min_free_kbytes =", $2 * .03;}' /proc/meminfo

#vm.min_free_kbytes = 471956

vm.min_free_kbytes = 1295134

  1. limit 配置

#格式: 用户、@组 type(soft 当前系统生效的设置值,hard 系统能设定的最大值)

#每个用户可以打开的最大文件描述符数量

* soft nofile 524288

* hard nofile 524288

#每个用户可以打开的最大进程数

* soft nproc 131072

* hard nproc 131072

二、数据库参数

listen_addresses='*'

port=5432

#最大连接数,默认master 250, segemnt 750

max_connections = 250

#磁盘读写的内存缓冲区

shared_buffers = 125MB

#处于准备好状态的事务数,建议和master最大连接数一致。

max_prepared_transactions = 250

dynamic_shared_memory_type = posix

#预写日志分配的空间,wal被划分每64M的段文件,意味着每个segment分配1088M空间

checkpoint_segments=8

optimizer_analyze_root_partition = on

log_timezone = 'Asia/Shanghai'

#如果表还没有统计信息,写入数据时自动收集,这之后数据变化需要手动收集

gp_autostats_mode=on_no_stats

#自动收集统计信息的数据量变化阈值

gp_autostats_on_change_threshold=2147483647

log_autostats=off

datestyle = 'iso, mdy'

timezone = 'Asia/Shanghai'

lc_messages = 'en_US.utf8'

lc_monetary = 'en_US.utf8'

lc_numeric = 'en_US.utf8'

lc_time = 'en_US.utf8'

default_text_search_config = 'pg_catalog.english'

gp_resqueue_memory_policy = 'eager_free'

#追加表最大个数

max_appendonly_tables = 10000

gp_interconnect_type=udpifc

#primary等待mirror响应的时间

gp_segment_connect_timeout = 600s

#每个segment 分配的内存(primary)

#它通过计算所有Greenplum数据库进程可用的内存并且除以失效时主Segment的最大数量得到。如果#gp_vmem_protect_limit被设置得过高,查询可能会失败。使用下面的公式为gp_vmem_protect_limit计算一个安全值。

#使用这个公式计算gp_vmem(所有Greenplum数据库进程可用的内存):

#gp_vmem = ((SWAP + RAM) – (7.5GB + 0.05 * RAM)) / 1.7

#其中 其中SWAP是主机上的交换空间(以GB为单位),而RAM是安装在主机上的RAM的GB数。

#使用这个公式计算gp_vmem_protect_limit:

#gp_vmem_protect_limit = gp_vmem / max_acting_primary_segments

gp_vmem_protect_limit = 8192

include = 'internal.auto.conf'

shared_preload_libraries = 'metrics_collector'

gp_enable_query_metrics = on

log_statement=all

gp_contentid=-1

#资源限制类型,包括资源组和资源队列

gp_resource_manager='group'

#开启压缩溢出文件

gp_workfile_compression=on

#pljava路径

pljava_classpath='daybits.jar:cryptions.jar:daybitsc.jar'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于Greenplum数据库的分布式部署,您需要遵循以下步骤: 1. 首先,确保您的系统符合Greenplum的硬件要求,并具备必要的操作系统和软件依赖。 2. 下载Greenplum数据库的安装包(greenplum-db-6.13.0-rhel7-x86_64.rpm),并将其复制到所有节点上。 3. 在每个节点上安装Greenplum数据库软件包。您可以使用以下命令进行安装: ``` rpm -ivh greenplum-db-6.13.0-rhel7-x86_64.rpm ``` 4. 创建一个主节点和多个节点的配置文件(gpinitsystem_config),该文件指定了Greenplum数据库的分布式配置。您可以使用以下命令创建配置文件: ``` gpinitsystem -c gpinitsystem_config ``` 5. 编辑配置文件(gpinitsystem_config),指定主节点和节点的主机名、IP地址、端口号等信息。确保所有节点都在配置文件中正确配置。 6. 在主节点上运行gpinitsystem命令以初始化Greenplum数据库集群。这将创建数据库实例并启动相关服务。您可以使用以下命令进行初始化: ``` gpinitsystem -c gpinitsystem_config ``` 7. 在每个节点上启动Greenplum数据库服务。您可以使用以下命令启动服务: ``` gpstart -a ``` 8. 检查Greenplum数据库集群的状态,确保所有节点都已成功启动。您可以使用以下命令进行检查: ``` gpstate -a ``` 以上是Greenplum数据库的基本分布式部署步骤。请注意,这只是一个概述,并且需要根据您的特定环境进行适当的调整和配置。建议您参考Greenplum官方文档以获取更详细的部署指南和最佳实践。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值