1.52. Centos7内核升级

查看当前OS版本

$ cat /etc/centos-release

CentOS Linux release 7.6.1810 (Core)
#安装epel源
$ yum install -y epel-release
$ yum install -y vim wget jq psmisc socat yum-utils device-mapper-persistent-data lvm2 ipvsadm ipset sysstat conntrack libseccomp

#列出elrepo-kernel相关的软件包
$ yum update -y --exclude=kernel*

#upgrade Linux kernel
$ rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
$ yum install -y https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm

#安装相关的内核包:
$ yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml -y

#查看当前存在的内核版本
$ sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

#设置5.5.0的内核为默认启动项
$ grub2-set-default 0 && grub2-mkconfig -o /etc/grub2.cfg

# 重启系统
$ reboot

1.52.1. 升级内核

配置源:

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
yum -y install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm

查看支持的版本:

yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

安装稳定版即可:

yum -y --enablerepo=elrepo-kernel install kernel-ml

修改默认内核:

sed -i "s#GRUB_DEFAULT=.*#GRUB_DEFAULT=0#g" /etc/default/grub

生产配置:

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

内核调优:

# 打开文件数优化
echo "ulimit -SHn 102400" >> /etc/rc.local
cat >> /etc/security/limits.conf << EOF
*  soft  core   unlimit
*  hard  core   unlimit
*  soft  fsize  unlimited
*  hard  fsize  unlimited
*  soft  data   unlimited
*  hard  data   unlimited
*  soft  nproc  65535
*  hard  nproc  63535
*  soft  stack  unlimited
*  hard  stack  unlimited
*  soft  nofile  655350
*  hard  nofile  655350
EOF


# 内核参数调优
cat > /etc/sysctl.conf << EOF
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_intvl =15
net.ipv4.tcp_retries2 = 5
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_max_orphans = 32768
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_wmem = 8192 131072 16777216
net.ipv4.tcp_rmem = 32768 131072 16777216
net.ipv4.tcp_mem = 786432 1048576 1572864
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.ip_conntrack_max = 65536
net.ipv4.netfilter.ip_conntrack_max=65536
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=180
net.core.somaxconn = 16384
net.core.netdev_max_backlog = 16384
EOF

sysctl -p

重启完成查看:

reboot
uname -r
  1. 卸载旧版本(选做):

# 查看版本
rpm -qa | grep kernel

# 卸载旧版本
yum -y remove kernel-3.10.0* kernel-tools* kernel-headers-3.10.0*

1.52.2. 参考文献

https://www.devopstory.cn/archives/linux%e7%9b%b8%e5%85%b3/centos%e5%92%8cubuntu%e5%86%85%e6%a0%b8%e5%8d%87%e7%ba%a7%e6%93%8d%e4%bd%9c

http://docker.ezops.cn/#/src/01/

https://www.cnblogs.com/itzgr/p/14668991.html

https://www.cnblogs.com/ding2016/p/10429640.html

https://www.cnblogs.com/Dy1an/p/12011691.html