银河麒麟操作系统模板机检查及优化方案

第1章、 银河麒麟系统模板机基本信息

1.1、 KylinV10-SP3.aarch64模版机

操作系统版本    KylinV10-SP3

架构            ARM架构的64位版本

内核版本‌        4.19.90-89.11.v2401.ky10.aarch64

1.2、 KylinV10-SP3.x86_64模版机

操作系统版本    KylinV10-SP3

架构            X86架构的64位版本

内核版本‌        4.19.90-52.22.v2207.ky10.x86_64

第2章、 系统优化检查项

2.1、 防火墙策略

系统默认开启了防火墙服务,检查是否配置了防火墙策略若没有配置建议关闭防火墙服务,启用硬件或者云防火墙替代软件防火墙功能,在关闭firewalld.service服务之后,性能会有一定的提升;若配置了防火墙策略检查firewalld.servic服务是否永久生效,并备份一份防火墙策略。

2.1.1、 防火墙服务启停

systemctl status firewalld.service  #检查防火墙是否启用

systemctl start firewalld.service   #启动防火墙

systemctl stop firewalld.service    #停止防火墙

systemctl enable firewalld          #设置开机自启动

systemctl disable firewalld         #停止开启自启动

2.1.2、 检查当前防火墙策略

iptables -L

2.1.3、 检查防火墙策略是否永久生效

cat /etc/rc.d/rc.local        #防火墙策略加入开机自启动文件中

chmod 755 /etc/rc.d/rc.local  #自启动文件授权

2.1.4、 备份防火墙策略

iptables-save > /tmp/iptables.bak

2.1.5、 检查结果及优化建议

(x86_64):系统侧未配置防火墙策略,当前防火墙处于开启状态,检查结果正常,建议关闭防火墙。

(aarch64):系统侧未配置防火墙策略,当前防火墙处于关闭状态,检查结果正常,暂无建议。

2.2、 SELinux服务

SELinux会对大部分系统操作进行权限检查,增加额外开销,导致关机时间变长,所以建议关闭SELinux。

SELinux的三种模式:

Enforcing:强制模式。代表SELinux在运行中,且已经开始限制进程和资源之间的验证关系。

Permissive:宽容模式。代表SELinux在运行中,不过不会限制进程和资源之间的验证关系,即使验证不正确,进程仍可以对文件进行操作。不过如果验证不正确会发出警告。

Disabled:关闭模式。SELinux并没有实际运行。

2.2.1、 检查SELinux服务状态

getenforce

2.2.2、 临时修改SELinux

setenforce  0      #转换为Permissive宽容模式

setenforce  1      #转换为Enforcing强制模式

2.2.3、 永久关闭SELinux

vi /etc/selinux/config    #编辑SELinux服务配置文件 

SELINUX=disabled          #修改SELINUX参数为disabled

reboot                    #重启生效 

2.2.4、 检查结果及优化建议

(x86_64):系统侧未开启SELinux,检查结果正常,暂无建议。

(aarch64):系统侧未开启SELinux,检查结果正常,暂无建议。

2.3、 Atd服务

系统默认开启了atd服务, atd服务可根据需要选择是否开启。如果关闭了atd服务,则可以使用系统默认开启的crond计划任务服务。在关闭这些服务之后,性能通常会有一定的提升。

atd 服务是用来处理 at 命令的任务的守护进程,at 命令允许用户预定在特定时间执行一次的任务。

at是Linux中默认安装的任务调度工具,它包含三个核心组件:

atd守护进程:在后台运行,负责执行排队的任务。

at命令:用于创建和管理延迟任务。

atq命令:用于查看等待执行的任务队列。

2.3.1、 Atd服务启停

systemctl status atd         #检查防火墙是否启用

systemctl start atd          #启动防火墙

systemctl stop atd           #停止防火墙

systemctl enable atd         #设置开机自启动

systemctl disable atd        #停止开启自启动

 

2.3.2、 检查当前Atd服务指定任务

at -l  #查看所有的指定任务

2.3.3、 检查结果及优化建议

(x86_64):系统侧未配置定时任务,当前Atd服务处于开启状态,检查结果正常,建议关闭Atd服务。

(aarch64):系统侧未配置定时任务,当前Atd服务处于开启状态,检查结果正常,建议关闭Atd服务。

2.4、 Irqbalance服务

Irqbalance是一个用于自动分配和平衡系统中断请求(IRQs)的工具,Irqbalance主要功能是能够把压力均匀的分配到各个CPU核心上,从而减少中断处理过程中的负载不均衡问题,对提升性能有很大的帮助。

2.4.1、 Irqbalance服务启停

systemctl status irqbalance        #检查服务是否启用

systemctl start irqbalance         #启动服务

systemctl stop irqbalance          #停止服务

systemctl enable irqbalance        #设置开机自启动

systemctl disable irqbalance       #停止开启自启动

2.4.2、 Irqbalance服务配置文件

/etc/sysconfig/irqbalance

2.4.3、 检查结果及优化建议

(x86_64):系统侧已开启Irqbalance,检查结果正常,暂无建议。

(aarch64):系统侧已开启Irqbalance,检查结果正常,暂无建议。

 

2.5、 Swap交换分区

在Linux系统中,不分配swap分区并不是一个常见的操作,swap分区在系统内存不足时,主要用于临时存储数据。因次swap分区或文件(swapfile)对于系统的稳定性和性能至关重要。不使用swap可能会对系统产生负面影响,特别是在高负载或内存密集型应用运行时。但在部署Kubernetes (k8s)服务中建议关闭Swap分区,Kubernetes的资源管理和调度机制需要基于精确的内存使用来工作,而swap的引入会打破这种可控性;以及避免不稳定的容器行为,swap可能导致容器异常或崩溃。其 kubelet组件(负责管理节点上的Pod生命周期、容器健康检查及资源监控等任务)已默认不支持在有可激活 swap 的节点上运行。

2.5.1、 Swap分区大小分配建议

根据服务器的物理内存大小为参照:

4GB 或 4GB 以下内存的系统,建议分配2GB交换空间;

大于 4GB 而小于 16GB 内存的系统,建议分配4GB交换空间;

大于 16GB 而小于 64GB 内存的系统,建议分配8GB交换空间;

大于 64GB 而小于 256GB 内存的系统,建议分配16GB交换空间。

2.5.2、 检查是否分配Swap交换分区

free -h

2.5.3、 检查结果及优化建议

(x86_64):系统侧已配置Swap分区,检查结果正常,暂无建议。

(aarch64):系统侧已配置Swap分区,检查结果正常,暂无建议。

 

2.6、 Boot引导分区

在Linux系统中,分配boot分区的大小通常取决于你的具体需求和使用的引导加载程序。一般来说,如果你的系统使用的是UEFI而非传统的BIOS引导方式,那么传统的MBR分区表和boot分区就不再必需了。这是因为UEFI可以直接从EFI系统分区(ESP)加载内核和引导加载程序,而不是依赖于传统的MBR和boot分区。

2.6.1、 Boot分区大小分配建议

下面是一些关于boot分区大小和分配的建议:

1. UEFI系统

如果你的系统使用的是UEFI引导方式,推荐的做法是创建一个EFI系统分区(ESP),

通常这个分区的大小为200-500MB就足够了。这个分区包含了引导加载程序(如GRUB2的EFI版本)以及其他必要的文件。

2. BIOS/CSM(兼容支持模块)系统

如果你的系统使用的是传统的BIOS引导方式或者需要通过CSM来启动Windows等操作系统,那么你可能仍然需要传统的boot分区。在这种情况下,推荐boot分区的大小为50-100MB。

2.6.2、 查看系统启动模式

2.6.2.1、 方法一

如果该目录存在并且包含文件或子目录,则说明系统是以UEFI模式启动的。

如果该目录不存在,则说明系统是以BIOS模式启动的。

ls /sys/firmware/efi/

2.6.2.1.1、 方法二

如果命令成功执行并返回了详细信息,说明系统是以UEFI模式启动的。

如果命令失败或报告找不到该命令(如提示“command not found”),则可能系统没有安装efibootmgr包,或者系统是以BIOS模式启动的。

efibootmgr -v

2.6.3、 检查是否分配Boot引导分区

df -h /boot

2.6.4、 检查结果及优化建议

(x86_64): 系统以BIOS模式启动,已配置/boot分区,检查结果正常,暂无建议。

(aarch64):系统以UEFI模式启动,已配置/boot分区和/boot/efi分区,检查结果正常,暂无建议。

2.7、 本地DNS缓存服务

当系统中第三方应用频繁异常访问特定域名(如DNS解析超时、重复请求等)时,可通过启用本地DNS缓存服务(dnsmasq)优化解析效率,减少网络延迟及异常请求。

2.7.1、 DNS服务启停

systemctl status dnsmasq.service         #检查服务是否启用

systemctl start dnsmasq.service          #启动服务

systemctl stop dnsmasq.service           #停止服务

systemctl enable dnsmasq.service         #设置开机自启动

systemctl disable dnsmasq.service        #停止开启自启动

2.7.2、 查看DNS缓存状态

resolvectl statistics

2.7.3、 刷新DNS缓存

systemd-resolve --flush-caches

2.7.4、 检查结果及优化建议

(x86_64): 系统已安装DNS服务,未启用DNS服务,检查结果正常,暂无建议。

(aarch64):系统未安装DNS服务,检查结果正常,暂无建议。

2.8、 时间同步服务

在Linux系统中,chronyd 是一个用于同步系统时间的网络时间协议(NTP)客户端。它比传统的 ntpd 客户端提供了更多的功能和更好的性能。

2.8.1、 检查时间同步服务状态

systemctl status chronyd         #检查服务是否启用

systemctl start chronyd          #启动服务

systemctl stop chronyd           #停止服务

systemctl enable chronyd         #设置开机自启动

systemctl disable chronyd        #停止开启自启动

2.8.2、 配置文件

/etc/chrony.conf

2.8.3、 检查chronyd的状态和查看同步状态

chronyc sources -v

2.8.4、 检查结果及优化建议

(x86_64): 系统已配置华为云时间同步服务器,同步状态正常,暂无建议。

(aarch64):系统已配置华为云时间同步服务器,同步状态正常,暂无建议。

2.9、 内核参数优化

2.9.1、 内核优化常用命令

sysctl -a                           #查看所有的内核参数

sysctl -w fs.file-max = 655360      #临时修改内核参数

/etc/sysctl.conf                    #永久修改内核参数

sysctl -p                           #重新加载内核参数

sysctl fs.file-max                  #验证参数生效

2.9.2、 常见的内核参数

2.9.2.1、 系统可以打开的文件描述符数量

2.9.2.1.1、 含义

fs.file-max 是 Linux 内核中控制系统级别最大文件句柄数(File Descriptors, FD)的关键参数,直接影响系统能同时打开的文件、Socket、管道等资源的总数。超过限制时,系统会报错 Too many open files,默认值通常较大9223372036854775807。

 

2.9.2.1.2、 注意事项

降低fs.file-max值‌:导致服务无法处理高并发请求。

增加fs.file-max值:占用额外内核内存(每个句柄约占用1KB)。

2.9.2.1.3、 查看当前已使用的值

cat /proc/sys/fs/file-nr

2.9.2.1.4、 参数调整

fs.file-max=655360

2.9.2.2、 TCP连接数

2.9.2.2.1、 含义

net.core.somaxconn 用于控制socket监听队列的大小。这个参数决定了在三次握手完成但应用程序尚未调用 accept() 函数时,可以排队的最大连接数。默认值通常是512。

2.9.2.2.2、 注意事项

降低net.core.somaxconn值‌:在高并发环境下,如果somaxconn设置得不够,那么服务器将无法接受超过这个限制的并发连接请求。这可能导致在高流量时出现连接被拒绝的情况。

增加net.core.somaxconn值‌‌:增加somaxconn可以提高并发处理能力,但也会消耗更多的内存资源。在高负载情况下,这可能导致系统资源紧张。

2.9.2.2.3、 查看当前已使用的值

/bin/netstat -nat | grep tcp | grep -v LISTEN | wc -l

2.9.2.2.4、 参数调整

net.core.somaxconn=10240

2.9.2.3、 TCP超时时间

2.9.2.3.1、 含义

net.ipv4.tcp_tw_timeout是一个与TCP连接相关的内核参数,它用于定义TCP连接在TIME_WAIT状态下的超时时间(以秒为单位)。当TCP连接关闭后,它会进入TIME_WAIT状态,等待足够的时间以确保网络中的任何延迟数据包都能被丢弃,从而避免端口重用时可能出现的连接问题。默认通常是60秒。

2.9.2.3.2、 注意事项

降低net.ipv4.tcp_tw_timeout值‌:如果你发现系统在处理大量短连接时遇到资源瓶颈,可以尝试减小值。例如,将其设置为30秒。

增加net.ipv4.tcp_tw_timeout值‌‌:在高延迟网络环境情况下,较长的超时时间可避免因网络延迟导致的误判,确保连接稳定性‌。

2.9.2.3.3、 参数调整

net.ipv4.tcp_tw_timeout=60

2.9.2.4、 禁用IPv6‌

如果不需要可以禁用IPv6减少系统资源和网络配置复杂度,默认开启。

net.ipv6.conf.all.disable_ipv6=1

net.ipv6.conf.default.disable_ipv6=1

net.ipv6.conf.lo.disable_ipv6=1

2.9.2.5、 总进程数

2.9.2.5.1、 含义

它定义了系统可以同时存在的进程ID(PID)的最大数量。每个进程在Linux系统中都有一个唯一的PID,用于标识和管理进程。当系统中的进程数量接近或达到kernel.pid_max的值时,系统将无法创建新的进程,除非某些进程结束并被回收。默认值通常是4194304。

2.9.2.5.2、 注意事项

降低kernel.pid_max值‌:如果系统经常达到PID上限,新的进程将无法创建,导致系统不稳定。

增加kernel.pid_max值‌:过多的PID可能导致系统在进程表管理上消耗更多内存。在高负载情况下,频繁的PID分配和回收可能导致性能下降。

2.9.2.5.3、 查看当前已使用的值

top 命令的输出中的“Tasks”行来查看进程总数

top

2.9.2.5.4、 参数调整

kernel.pid_max=32768   #示例值,可以根据需要调整,但通常不应超过2^22或4194304

2.9.2.6、 总线程数

2.9.2.6.1、 含义

它定义了系统中可创建的最大线程数。默认情况下,这个值可能不足以满足高负载环境下的需求,尤其是在需要大量并发线程的应用场景中,如数据库服务器、大规模数据处理等。‌系统资源‌:增加 kernel.threads-max 会消耗更多的内存资源。确保你的系统有足够的内存来支持增加的线程数,默认值15291

2.9.2.6.2、 注意事项

降低kernel.threads-max值‌:‌那么在高并发或者需要大量线程的应用场景下,系统可能会因为无法创建足够的线程而无法充分利用资源,达到预期的性能水平。

增加kernel.threads-max值‌:系统将能够创建更多的线程。这会消耗更多的内存和CPU资源,特别是在高负载的情况下,如果系统达到了内存限制,过多的线程可能导致内存不足,从而引发系统稳定性问题,如频繁的OOM(Out of Memory)错误。

2.9.2.6.3、 查看当前已使用的值

top 命令按H键切换到线程模式,输出中的“Threads”行来查看线程总数

top

2.9.2.6.4、 参数调整

kernel.threads-max=4194304

第3章、 总体检查结果和建议

检查项

检查结果

本次调整说明

建议

防火墙策略

(x86_64):系统侧未配置防火墙策略,当前防火墙处于开启状态;

(aarch64):系统侧未配置防火墙策略,当前防火墙处于关闭状态。

将(x86_64)防火墙策略关闭。

将(x86_64)防火墙策略关闭。

SELinux服务

(x86_64):系统侧未开启SELinux;

(aarch64):系统侧未开启SELinux 。

 

暂无建议。

Atd服务

(x86_64):系统侧未配置定时任务,当前Atd服务处于开启状态;(aarch64):系统侧未配置定时任务,当前Atd服务处于开启状态。

关闭Atd服务。

关闭Atd服务。

Irqbalance服务

(x86_64):系统侧已开启Irqbalance;

(aarch64):系统侧已开启Irqbalance。

 

暂无建议。

Swap交换分区

(x86_64):系统侧已配置Swap分区;

(aarch64):系统侧已配置Swap分区。

 

 

暂无建议。

Boot引导分区

(x86_64): 系统以BIOS模式启动,已配置/boot分区;

(aarch64):系统以UEFI模式启动,已配置/boot分区和/boot/efi分区。

 

 

暂无建议。

本地DNS缓存服务

(x86_64): 系统未启用DNS服务。

(aarch64):系统未安装DNS服务。

 

 

暂无建议。

时间同步服务

(x86_64): 系统已配置华为云时间同步服务器,同步状态正常;

(aarch64):系统已配置华为云时间同步服务器,同步状态正常。

 

 

暂无建议。

posted @ 2025-12-14 10:15  呼长喜  阅读(45)  评论(0)    收藏  举报