centos 7.x 安装 redis 的优化设置

os: centos 7.4.1708

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

# yum install wget mpstat dstat git iftop sysstat telnet hdparm numactl \
tree curl lrzsz zip unzip dos2unix pigz iputils ntp smartmontools coreutils \
make cmake cmake3 automake autoconf libtool bzip2 unixODBC xfsprogs \
gcc gcc-c++ openssl openssl-devel zlib zlib-devel tcl tcl-devel


rc.local

# ls -l /etc/rc.local 
lrwxrwxrwx. 1 root root 13 Apr 28  2019 /etc/rc.local -> rc.d/rc.local

# ls -l /etc/rc.d/rc.local 
-rw-r--r--. 1 root root 473 Aug  5  2017 /etc/rc.d/rc.local

# chmod u+x /etc/rc.d/rc.local

# vi  /etc/rc.d/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

############################################
#设置 io scheduler
############################################
# noop 
# deadline
# cfq
############################################
echo deadline > /sys/block/sda/queue/scheduler


sysctl.conf

# vi /etc/sysctl.conf

vm.overcommit_memory = 1
vm.swappiness = 1

net.core.somaxconn = 2048

立即生效

# sysctl -p

limits.conf

# vi /etc/security/limits.conf

* soft nofile  1024000
* hard nofile  1024000
* soft nproc   unlimited
* hard nproc   unlimited
* soft memlock unlimited
* hard memlock unlimited
* soft core    unlimited
* hard core    unlimited
* soft stack   unlimited  
* hard stack   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=15708

# systemctl daemon-reload
# systemctl restart sshd.service

# cat /proc/YOUR-PID/limits

selinux disable

# vi /etc/selinux/config
SELINUX=DISABLED

firewalld.service

# systemctl stop firewalld.service;
systemctl disable firewalld.service;

grub

# vi /etc/default/grub
ipv6.disable=1 numa=off transparent_hugepage=never elevator=deadline

# grub2-mkconfig -o /boot/grub2/grub.cfg

numa

确认numa 已经关闭

# grep -i numa /var/log/dmesg
# cat /proc/cmdline

# yum install -y numactl
# numastat
# numactl --hardware
# numactl --show

ruby

redis cluster >= 5.x 时,不需要安装 ruby 环境
redis cluster < 5.x 时,需要安装 ruby 环境

使用 redis-trib.rb 创建 redis cluster 时, 需要ruby >= 2.2.2.

# yum install ruby ruby-devel ruby-libs rubygems rpm-build
# gem install redis
Fetching: redis-4.0.1.gem (100%)
ERROR:  Error installing redis:
	redis requires Ruby version >= 2.2.2.

默认的centos 7.4 yum源只支持到 ruby 2.0.0。
上面的 yum install 方式就不要执行了,我已经帮大家踩坑了。
参考这篇blog:
https://blog.csdn.net/ctypyb2002/article/details/80982982

# ruby -v
ruby 2.4.4p296 (2018-03-28 revision 63013) [x86_64-linux]

安装 redis 接口

# gem install redis
# gem uninstall redis --version 4.0.2
# gem install redis -v 3.3.3

参考:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据库人生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值