os: centos 7.4.1708
yum
centos-release-scl
epel
# yum install -y centos-release-scl;
wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo;
yum clean all ;
yum makecache ;
yum install -y zip unzip dos2unix pigz iputils iftop git tree sysstat ntp \
make cmake cmake3 gcc gcc-c++ lrzsz mpstat dstat wget bison unixODBC \
e2fsprogs e2fsprogs-devel e4fsprogs e4fsprogs-devel xfsprogs \
smartmontools coreutils glib2 perl perl-devel perl-Pod-Markdown perl-ExtUtils* perl-Text-CSV* \
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 libuuid-devel jadetex bzip2 \
automake autoconf libtool hdparm numactl libtool-ltdl libtool-ltdl-devel \
lz4 lz4-devel lz4-static wget curl \
devtoolset-7-binutils devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-libstdc++-devel \
devtoolset-7-runtime libedit-devel llvm-toolset-7-clang llvm-toolset-7-clang-libs \
llvm-toolset-7-compiler-rt llvm-toolset-7-libomp llvm-toolset-7-llvm-libs \
llvm-toolset-7-runtime llvm5.0 llvm5.0-devel llvm5.0-libs
python2 生命已经终结,后面考虑安装python3
# yum install -y python3 python3-libs python3-devel python3-pip python3-setuptools
# alternatives --set python /usr/bin/python3
1
2
3
4
另外参考<<centos 使用 scl 软件集>>
user
# groupadd -g 5000 yugabyte;
useradd -g yugabyte -u 5000 yugabyte -d /home/yugabyte;
usermod -g yugabyte yugabyte;
mkdir -p /var/lib/yugabytedb ;
chown -R yugabyte:yugabyte /var/lib/yugabytedb;
yugabyte 用户的环境变量,先占位,后面修改
# vi /home/yugabyte/.bash_profile
export PGHOME=/usr/yugabytedb-
export PGDATA=/var/lib/yugabytedb
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${PGHOME}/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export PATH=${PGHOME}/bin:$PATH
export MANPATH=${PGHOME}/share/man:$MANPATH
export TMP=/tmp
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
1
2
sysctl.conf
# vi /etc/sysctl.conf
#共享内存设置,默认已经足够大
#kernel.shmall = 18446744073692774399
#kernel.shmmax = 18446744073692774399
kernel.shmmni = 819200
kernel.sched_migration_cost_ns=50000
kernel.sched_autogroup_enabled=1
#信号量设置
#kernel.sem = 250 32000 100 128 #这个设置在很多场合都报错了,有公式计算
#SEMMSL SEMMNS SEMOPM SEMMNI
#SEMMSL = 50100
#SEMMNS = SEMMSL × SEMMNI = 50100 * 1280 = 64128000
#SEMOPM = SEMMSL = 50100
#SEMMNI = 1280
kernel.sem = 50100 64128000 50100 1280
#接收套接字缓冲区大小
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_ratio = 5
vm.dirty_bytes=536870912
vm.dirty_background_ratio=1
vm.dirty_background_bytes = 134217728
vm.dirty_expire_centisecs = 3000
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
1
2
nptdate
yugabytedb 对时间的要求比较严格
# crontab -e
# 每1分钟
*/1 * * * * /usr/sbin/ntpdate ntp.sjtu.edu.cn >> /var/log/ntpdate.log 2>&1 &
limits.conf
https://docs.yugabyte.com/latest/deploy/manual-deployment/system-config/#ulimits
# vi /etc/security/limits.conf
* - core unlimited
* - data unlimited
* - fsize unlimited
* - sigpending 119934
* - memlock unlimited
* - rss unlimited
* - nofile 1048576
* - msgqueue 819200
* - stack unlimited
* - cpu unlimited
* - nproc unlimited
* - locks unlimited
有个坑需要注意下,里面默认设置了非root用户的大进程数为4096
# cat /etc/security/limits.d/20-nproc.conf
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.
* soft nproc 4096
root soft nproc unlimited
删除该文件,或者修改 4096 为更大值
# rm /etc/security/limits.d/20-nproc.conf
systemd ulimit
systemd 的资源限制稍有不同,主要是 centos 对 资源限制做了调整。
# man systemd-system.conf
# vi /etc/systemd/system.conf
DefaultLimitNOFILE=1024000
DefaultLimitNPROC=1024000
DefaultLimitMEMLOCK=infinity
DefaultLimitCORE=infinity
DefaultLimitSTACK=infinity
DefaultLimitAS=infinity
DefaultLimitFSIZE=infinity
DefaultLimitSIGPENDING=119934
# systemctl daemon-reload
# systemctl restart sshd.service
# cat /proc/YOUR-PID/limits
1
文件系统优化
xfs
# vi /etc/fstab
/dev/sdd1 /data nodev,discard,noatime,inode64,allocsize=16m,errors=remount-ro 0 0
ext4
# vi /etc/fstab
/dev/sdd1 /data defaults,noatime,nodiratime,nodelalloc,barrier=0 0 0
selinux disable
# vi /etc/selinux/config
SELINUX=DISABLED
1
2
3
或者
# vi /etc/sysconfig/selinux
SELINUX=DISABLED
1
2
3
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
1
2
firewalld disable
# systemctl stop firewalld.service;
systemctl disable firewalld.service;
1
2
3
grup
# vi /etc/default/grub
ipv6.disable=1 numa=off transparent_hugepage=never elevator=deadline
# grub2-mkconfig -o /boot/grub2/grub.cfg
1
2
备注:
确认numa 已经关闭
# grep -i numa /var/log/dmesg
# cat /proc/cmdline
# yum install -y numactl
# numastat
# numactl --hardware
# numactl --show
————————————————
版权声明:本文为CSDN博主「数据库人生」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ctypyb2002/article/details/113868965
centos 7.x 安装 yugabytedb 的优化设置
分享好友
分享这个小栈给你的朋友们,一起进步吧。
订阅须知
• 所有用户可根据关注领域订阅专区或所有专区
• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询
• 专区发布评论属默认订阅所评论专区(除付费小栈外)
技术专家
查看更多- 飘絮絮絮丶专家