版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/ctypyb2002/article/details/84861859
os: centos 7.4.1708
epel
# wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo
# yum clean all
# yum makecache
yum
# yum install make cmake gcc gcc-c++ lrzsz git tree sysstat mpstat dstat wget bison unixODBC \
smartmontools coreutils glib2 perl perl-devel perl-ExtUtils-Embed zlib zlib-devel openldap openldap-devel flex \
readline readline-devel systemtap systemtap-sdt-devel python python-devel tcl tcl-devel sgml-common docbook* stylesheets \
openjade sgml-tools libxslt libxslt-devel libxml2 libxml2-devel openssl openssl-devel pam pam-devel libicu libicu-devel \
uuid uuid-devel jadetex bzip2 automake autoconf libtool hdparm numactl libtool-ltdl libtool-ltdl-devel
user
建议不管是 yum 安装还是 make 安装,都先创建用户
用户组和用户的id均为 10000 ,用户目录为 /home/postgres/,不要使用 /var/lib/pgsql/
# groupadd -g 10000 postgres;
useradd -g postgres -u 10000 postgres;
#usermod -g postgres postgres;
mkdir -p /usr/pgsql-9.6;
chown -R postgres:postgres /usr/pgsql-9.6;
mkdir -p /data/pgsql-9.6/data
chown -R postgres:postgres /data
postgres 用户的环境变量
vi /home/postgres/.bash_profile
#export LANG=zh_CN.UTF-8
export PGHOME=/usr/pgsql-9.6
export PGDATA=/data/pgsql-9.6/data
#export PGDATABASE=postgres
#export PGUSER=postgres
#export PGPASSWORD=postgres
#export PGPORT=5432
export MANPATH=${PGHOME}/share/man:$MANPATH
export LD_LIBRARY_PATH=${PGHOME}/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export PATH=${PGHOME}/bin:$PATH
export TEMP=/tmp
export TMPDIR=/tmp
rc.local
# vi /etc/rc.local
############################################
#禁用THP
############################################
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
############################################
#预读块大小
############################################
/usr/sbin/blockdev --setra 16384 /dev/sda
############################################
#设置 io scheduler
############################################
# noop
# deadline
# cfq
############################################
echo deadline > /sys/block/sda/queue/scheduler
############################################
#设置 write through
############################################
# yum install hdparm
#
#set write type
# 0:write through
# 1:write back
# hdparm -I /dev/sda |grep "Write cache"
# hdparm -W 0 /dev/sda
# hdparm -W 1 /dev/sda
############################################
hdparm -W 0 /dev/sda
############################################
#清空 iptables
############################################
iptables -F
# chmod u+x /etc/rc.d/rc.local
sysctl.conf
# vi /etc/sysctl.conf
kernel.shmall = 18446744073692774399
kernel.shmmax = 18446744073692774399
kernel.shmmni = 819200
kernel.sem = 50100 64128000 50100 1280
#kernel.sem = 4096 2147483647 2147483646 512000
#kernel.sem = 250 32000 100 128 #这个设置在很多场合都报错了,有公式计算
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 4194304
fs.aio-max-nr = 1048576
fs.nr_open=20480000
fs.file-max = 7672460
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv4.ip_local_port_range = 9000 65000
net.ipv4.tcp_keepalive_time = 60
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.tcp_keepalive_intvl =60
net.ipv4.tcp_retries2 = 5
net.ipv4.tcp_mem = 8388608 12582912 16777216
net.ipv4.tcp_rmem = 8192 87380 16777216
net.ipv4.tcp_wmem = 8192 65536 16777216
vm.dirty_background_bytes = 102400000
vm.dirty_expire_centisecs = 3000
vm.dirty_ratio = 80
vm.dirty_writeback_centisecs = 100
vm.overcommit_memory = 2
vm.overcommit_ratio = 90
vm.swappiness = 1
#vm.nr_hugepages = xxxx
# grep ^Hugepagesize /proc/meminfo
# sysctl -p
limits.conf
# vi /etc/security/limits.conf
root soft nofile 655360 # The maximum number of open file descriptors
root hard nofile 655360
postgres soft nofile 655360
postgres hard nofile 655360
root soft nproc 655360 # The maximum number of processes available to a single user
root hard nproc 655360
postgres soft nproc 655360
postgres hard nproc 655360
* soft memlock unlimited # The maximum size that may be locked into memory
* hard memlock unlimited
* soft core unlimited # The maximum size of core files created
* hard core unlimited
* soft stack unlimited
* hard stack unlimited
selinux disable
# vi /etc/selinux/config
SELINUX=DISABLED
或者
# vi /etc/sysconfig/selinux
SELINUX=DISABLED
firewalld disable
# systemctl stop firewalld.service
# systemctl disable firewalld.service
grup
# vi /etc/default/grub
ipv6.disable=1 numa=off transparent_hugepage=never elevator=deadline
# grub2-mkconfig -o /boot/grub2/grub.cfg
备注:
确认numa 已经关闭
# grep -i numa /var/log/dmesg
# cat /proc/cmdline
# numactl --hardware