操作系统
支持如下操作系统:
RHEL/CentOS(x64) 6.x/7.x 、
Ubuntu 18.04 LTS 、
Oracle Linux x64 7 (using the Red Hat compatible Kernel)
Note
Important: Significant Greenplum Database performance degradation has been observed when enabling resource group-based workload management on RedHat 6.x and CentOS 6.x systems. This issue is caused by a Linux cgroup kernel bug. This kernel bug has been fixed in CentOS 7.x and Red Hat 7.x systems.
If you use RedHat 6 and the performance with resource groups is acceptable for your use case, upgrade your kernel to version 2.6.32-696 or higher to benefit from other fixes to the cgroups implementation.
Note: For Greenplum Database that is installed on Red Hat Enterprise Linux 7.x or CentOS 7.x prior to 7.3, an operating system issue might cause Greenplum Database that is running large workloads to hang in the workload. The Greenplum Database issue is caused by Linux kernel bugs.
RHEL 7.3 and CentOS 7.3 resolves the issue.
建议使用CentOS 7.3
禁用SELinux和firewall
建议的OS参数设置
hosts
要包括所有GP系统的机器名
sysctl.conf
# kernel.shmall = _PHYS_PAGES / 2 # total amount of shared memory
# `getconf _PHYS_PAGES`
kernel.shmall = 197951838
# kernel.shmmax = kernel.shmall * PAGE_SIZE # maximum size of a single shared memory segment in bytes
# `getconf PAGE_SIZE`
kernel.shmmax = 810810728448
kernel.shmmni = 4096
vm.overcommit_memory = 2 # See Segment Host Memory
# 分配给进程的内存,对于GP来说,设置为2(always be set to 2)
vm.overcommit_ratio = 95 # See Segment Host Memory
# 用于应用进程的内存的百分比,RHEL默认是50net.ipv4.ip_local_port_range = 10000 65535 # See Port Settings
kernel.sem = 500 2048000 200 4096
kernel.sysrq = 1
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.msgmni = 2048
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.conf.all.arp_filter = 1
net.core.netdev_max_backlog = 10000
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
vm.swappiness = 10
vm.zone_reclaim_mode = 0
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100# See System Memory
# 对于>64GB内存的机器来说,建议如下设置
vm.dirty_background_ratio = 0
vm.dirty_ratio = 0
vm.dirty_background_bytes = 1610612736 #1.5G
vm.dirty_bytes = 4294967296 #4G
# 对于≤64GB内存的机器来说,移除vm.dirty_backupground_bytes和vm.dirty_bytes,并建议如下设置
vm.dirty_background_ratio = 3
vm.dirty_ratio = 10
vm.min_free_kbytes = 240273
# 建议设置为系统可用内存的3% awk 'BEGIN {OFMT = "%.0f";} /MemTotal/ {print "vm.min_free_kbytes =", $2 * .03;}'
/proc/meminfo >> /etc/sysctl.conf
System Resources Limits
# vim /etc/security/limits.conf
* soft nofile 524288
* hard nofile 524288
* soft nproc 131072
* hard nproc 131072
XFS Mount Options
rw,nodev,noatime,nobarrier,inode64
Disk I/O settings
/sbin/blockdev --setra 16384 /dev/sdb
echo deadline > /sys/block/sdb/queue/scheduler
Transparent Huge Pages
echo never > /sys/kernel/mm/transparent_hugepage/enabled
IPC Object Removal
在/etc/systemd/logind.conf中设置RemoveIPC=no;
service systemd-logind restart
SSH connection threshold
硬件和网络
存储
必须使用XFS文件系统
Hadoop 发布
GP通过Greenplum Platform Extension Framework(PXF)来允许Access HDFS。