Linux内核升级

首先需要把升级内核需要的两个rpm包拉到本地

kernel-ml-4.19.12-1.el7.elrepo.x86_64.rpm

kernel-ml-devel-4.19.12-1.el7.elrepo.x86_64.rpm

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#>>> 所有节点安装内核包
$ yum localinstall -y kernel-ml*

#>>> 所有节点更改内核启动顺序
$ grub2-set-default 0 && grub2-mkconfig -o /etc/grub2.cfg
$ grubby --args="user_namespace.enable=1" --update-kernel="$(grubby --default-kernel)"

#>>> 查看内核版本是否改变
$ grubby --default-kernel
/boot/vmlinuz-4.19.12-1.el7.elrepo.x86_64
$ uname -r
3.10.0-1160.el7.x86_64

#>>> 未改变的话重启一下机器
$ reboot

升级内核之后,uname -r查看的话是不会直接更新的,需要再重启一下才可以,重启之后在如下页面默认选项为升级后的内核版本,如果想要使用之前的内核版本就选择下边的。

升级Linux内核是保持系统安全、稳定和高效运行的重要手段之一。尽管在升级时需要注意与系统中其他组件的兼容性,但从长远来看,升级内核通常会带来多方面的好处,有助于提升整体系统性能和安全性。

Linux中的一些内核配置参数与详解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
net.ipv4.ip_forward = 1 #允许IPv4数据包转发。当这个参数设置为1时,Linux内核将允许作为路由器使用,可以将接收到的数据包从一个网络接口转发到另一个网络接口。

net.bridge.bridge-nf-call-iptables = 1 #如果使用Linux桥接技术(如虚拟化中常用的网桥),此参数启用iptables对桥接的数据包进行过滤和处理。

net.bridge.bridge-nf-call-ip6tables = 1 #类似于上一个参数,但用于IPv6的iptables过滤和处理。

fs.may_detach_mounts = 1 #允许文件系统卸载已被其他进程打开的文件。通常用于特定的文件系统管理场景。

net.ipv4.conf.all.route_localnet = 1 #允许接收到的数据包目标地址是本地网络的地址时被路由。

vm.overcommit_memory=1 #内存过commit机制设置。当设置为1时,系统允许分配比实际可用物理内存更多的内存,但这可能导致内存不足时的OOM(Out of Memory)错误。

vm.panic_on_oom=0 #当内存不足时,是否触发系统崩溃(panic)。设置为0时,系统不会在OOM时触发panic。

fs.inotify.max_user_watches=89100 #允许每个用户的inotify监视器数量达到的最大值。

fs.file-max=52706963 #系统中打开文件的最大数量限制。

fs.nr_open=52706963 #系统中同时打开的文件描述符的最大数量。

net.netfilter.nf_conntrack_max=2310720 #允许系统中同时跟踪的网络连接的最大数量。

net.ipv4.tcp_keepalive_time = 600 #TCP连接的空闲超时时间,单位为秒。

net.ipv4.tcp_keepalive_probes = 3 #在TCP keepalive期间发送的探测数目。

net.ipv4.tcp_keepalive_intvl = 15 #在TCP keepalive探测之间的间隔时间,单位为秒。

net.ipv4.tcp_max_tw_buckets = 36000 #系统中保持TIME-WAIT套接字的最大数量。

net.ipv4.tcp_tw_reuse = 1 #允许重用TIME-WAIT套接字。

net.ipv4.tcp_max_orphans = 327680 #允许系统同时存在的TCP孤立连接的最大数量。

net.ipv4.tcp_orphan_retries = 3 # TCP孤立连接的重试次数。

net.ipv4.tcp_syncookies = 1 #启用TCP SYN cookies,用于防范SYN洪水攻击。

net.ipv4.tcp_max_syn_backlog = 16384 #TCP半连接队列(SYN队列)的最大长度。

net.ipv4.ip_conntrack_max = 65536 #同时跟踪的IP连接的最大数量(已废弃,一般使用`net.netfilter.nf_conntrack_max`)。

net.ipv4.tcp_timestamps = 0 #禁用TCP时间戳,用于保护系统免受某些网络攻击。

net.core.somaxconn = 16384 #系统中允许在处于TCP连接队列中的未完成连接的最大数量。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ cat <<-EOF >>/etc/security/limits.conf
* soft nofile 655360 #设置所有用户(*)的软件(soft)文件描述符限制(nofile)为 655360。这意味着任何进程在运行时可以打开的文件数量的软限制被设置为 655360。
* hard nofile 131072 #设置所有用户(*)的硬件(hard)文件描述符限制(nofile)为 `131072`。硬限制是软限制的上限,即用户可以通过重新设置来增加其软限制,但不能超过硬限制。
* soft nproc 655350 #设置所有用户(*)的软件进程数(nproc)限制为 655350。软进程数限制是系统允许的最大进程数量。
* hard nproc 655350 #设置所有用户(*)的硬件进程数(nproc)限制为 655350。硬进程数限制同样作为软限制的上限。
* soft memlock unlimited #设置所有用户(*)的软件内存锁定限制为无限制。这表示任何用户的进程可以锁定(即防止被交换到磁盘上)任意量的内存。
* hard memlock unlimited #设置所有用户(*)的硬件内存锁定限制为无限制。硬内存锁定限制同样作为软限制的上限。
EOF

注:/etc/security/limits.conf 是一个配置文件,用于设置系统用户的资源限制。这些资源限制包括打开的文件数、可创建的进程数、内存锁定量等。这些限制对于管理系统资源和提高系统安全性都非常重要。具体来说,这个文件允许系统管理员为各个用户或用户组设置以下类型的限制:

软限制(soft limit):软限制是用户当前可以使用的资源的最大值,通常可以通过用户自己修改。
硬限制(hard limit):硬限制是软限制的上限,即用户可以通过重新设置来增加其软限制,但不能超过硬限制。只有超级用户(root)可以增加硬限制。

这些限制在多用户系统中特别有用,可以防止个别用户占用过多的系统资源,保证系统的稳定性和可靠性。常见的限制参数包括打开文件数、进程数、内存锁定、CPU时间等。
编辑/etc/security/limits.conf 文件需要超级用户权限,因为这些限制对系统整体性能有较大的影响,需要慎重设置。