引言
AlmaLinux 作为 CentOS 的继任者,继承了 RHEL 的稳定性和企业级特性,广泛应用于生产环境。然而,默认配置往往无法充分发挥硬件潜力,特别是在高负载场景下。本文将从基础配置到高级优化技巧,系统性地介绍如何对 AlmaLinux 进行性能调优,帮助您全面提升系统效率。
一、性能调优前的准备工作
1.1 系统基准测试
在开始调优之前,建立性能基准至关重要。这能帮助您量化优化效果,并在出现问题时快速回滚。
常用基准测试工具:
sysbench
:综合性能测试工具
fio
:磁盘 I/O 测试
iperf3
:网络性能测试
stress-ng
:压力测试工具
安装基准测试工具:
# 安装 sysbench
sudo dnf install -y sysbench
# 安装 fio
sudo dnf install -y fio
# 安装 stress-ng
sudo dnf install -y stress-ng
创建基准测试脚本:
#!/bin/bash
# benchmark.sh – 系统性能基准测试脚本
echo “=== 开始系统性能基准测试 ===”
echo “测试时间: $(date)”
# CPU 测试
echo “1. CPU 性能测试…”
sysbench cpu –cpu-max-prime=20000 run > cpu_benchmark.txt
# 内存测试
echo “2. 内存性能测试…”
sysbench memory –memory-block-size=1M –memory-total-size=10G run > memory_benchmark.txt
# 磁盘 I/O 测试
echo “3. 磁盘 I/O 测试…”
fio –name=random-read –ioengine=libaio –iodepth=64 –rw=randread –bs=4k –direct=1 –size=1G –numjobs=8 –runtime=300 –group_reporting > disk_benchmark.txt
# 网络测试(需要目标服务器)
# iperf3 -c
echo “=== 基准测试完成 ===”
echo “结果已保存到对应文件”
1.2 监控工具安装与配置
持续监控是性能调优的基础。推荐安装以下监控工具:
# 安装 sysstat (包含 sar, iostat, mpstat)
sudo dnf install -y sysstat
# 启用 sysstat 服务
sudo systemctl enable –now sysstat
# 安装 htop (交互式进程查看器)
sudo dnf install -y htop
# 安装 net-tools (网络监控)
sudo dnf install -y net-tools
# 安装 nmon (综合监控工具)
sudo dnf install -y nmon
# 安装 prometheus-node-exporter (用于 Prometheus 监控)
sudo dnf install -y prometheus-node-exporter
sudo systemctl enable –now prometheus-node-exporter
二、基础配置优化
2.1 内核参数调优
内核参数直接影响系统性能。通过调整
/etc/sysctl.conf
可以优化网络、内存和文件系统性能。
推荐的内核参数配置:
# 编辑 /etc/sysctl.conf
sudo vi /etc/sysctl.conf
# 添加以下内容(根据实际需求调整)
# 网络优化
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 5000
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_intvl = 15
# 内存优化
vm.swappiness = 10
vm.dirty_ratio = 15
vm.dirty_background_ratio = 5
vm.dirty_expire_centisecs = 3000
vm.dirty_writeback_centisecs = 500
vm.vfs_cache_pressure = 100
# 文件系统优化
fs.file-max = 2097152
fs.nr_open = 2097152
fs.inotify.max_user_watches = 524288
# 网络连接跟踪
net.netfilter.nf_conntrack_max = 2000000
net.netfilter.nf_conntrack_tcp_timeout_established = 7200
# 应用配置
sudo sysctl -p
验证配置:
# 查看当前内核参数
sysctl -a | grep -E “net.core.somaxconn|vm.swappiness”
# 测试网络连接数
cat /proc/sys/net/core/somaxconn
2.2 文件系统优化
ext4 文件系统优化:
# 查看当前挂载选项
mount | grep ext4
# 临时修改(重启失效)
mount -o remount,noatime,nodiratime,barrier=0 /dev/sda1 /data
# 永久修改(编辑 /etc/fstab)
sudo vi /etc/fstab
# 修改示例(添加 noatime,nodiratime,barrier=0)
UUID=xxxx-xxxx-xxxx-xxxx /data ext4 defaults,noatime,nodiratime,barrier=0 0 2
xfs 文件系统优化:
# 查看当前挂载选项
mount | grep xfs
# 临时修改
mount -o remount,noatime,nodiratime,logbufs=8,logbsize=256k /dev/sdb1 /data
# 永久修改
sudo vi /etc/fstab
# 修改示例
UUID=xxxx-xxxx-xxxx-xxxx /data xfs defaults,noatime,nodiratime,logbufs=8,logbsize=256k 0 2
文件系统优化工具:
# 调整文件系统参数(ext4)
sudo tune2fs -o journal_data_writeback /dev/sda1
# 调整文件系统参数(xfs)
sudo xfs_admin -u /dev/sdb1
2.3 资源限制优化
调整用户进程限制:
# 编辑 /etc/security/limits.conf
sudo vi /etc/security/limits.conf
# 添加以下内容
* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536
* soft memlock unlimited
* hard memlock unlimited
# 验证配置
ulimit -a
调整 systemd 服务限制:
# 编辑服务配置文件
sudo vi /etc/systemd/system/myapp.service
# 添加以下内容
[Service]
LimitNOFILE=65536
LimitNPROC=65536
LimitMEMLOCK=infinity
# 重新加载配置
sudo systemctl daemon-reload
sudo systemctl restart myapp
三、CPU 性能优化
3.1 CPU 调度器优化
AlmaLinux 支持多种 CPU 调度器,不同场景下选择合适的调度器能显著提升性能。
查看当前调度器:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
可用调度器:
performance
:始终以最高频率运行,适合高性能计算
powersave
:始终以最低频率运行,适合节能
ondemand
:根据负载动态调整频率
conservative
:保守的频率调整策略
schedutil
:基于调度器的频率调整(推荐)
设置调度器:
# 临时设置(重启失效)
echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
# 永久设置(使用 tuned)
sudo dnf install -y tuned
sudo tuned-adm profile performance
# 或者使用 cpupower
sudo dnf install -y cpupower
sudo cpupower frequency-set -g performance
自定义 CPU 调度策略:
# 创建自定义 tuned 配置文件
sudo mkdir -p /etc/tuned/custom-profile
sudo vi /etc/tuned/custom-profile/tuned.conf
# 添加以下内容
[main]
summary=Custom CPU performance profile
[cpu]
governor=performance
min_perf_pct=100
max_perf_pct=100
energy_perf_bias=performance
# 启用自定义配置
sudo tuned-adm profile custom-profile
3.2 CPU 亲和性优化
设置 CPU 亲和性:
# 查看 CPU 信息
lscpu
# 设置进程的 CPU 亲和性
# 将进程绑定到 CPU 0-3
taskset -cp 0-3
# 启动时设置 CPU 亲和性
taskset -c 0-3 /path/to/application
# 验证设置
taskset -cp
使用 numactl 进行 NUMA 优化:
# 安装 numactl
sudo dnf install -y numactl
# 查看 NUMA 拓扑
numactl –hardware
# 启动应用时指定 NUMA 节点
numactl –cpunodebind=0 –membind=0 /path/to/application
# 绑定到特定 CPU 核心
numactl –physcpubind=0,1,2,3 –membind=0 /path/to/application
3.3 中断优化
中断负载均衡:
# 查看中断分布
cat /proc/interrupts
# 设置中断亲和性
# 将特定中断绑定到 CPU 0-3
echo 0-3 > /proc/irq/
# 自动化脚本
#!/bin/bash
# irq_affinity.sh – 自动设置中断亲和性
IRQ_LIST=$(cat /proc/interrupts | grep -E “eth|nvme|scsi” | awk ‘{print $1}’ | tr -d ‘:’)
for irq in $IRQ_LIST; do
echo “设置中断 $irq 到 CPU 0-3”
echo 0-3 > /proc/irq/$irq/smp_affinity 2>/dev/null
done
四、内存优化
4.1 内存管理参数
调整透明大页(THP):
# 查看当前 THP 设置
cat /sys/kernel/mm/transparent_hugepage/enabled
# 临时禁用 THP(推荐数据库应用)
echo never | sudo tee /sys/kernel/mm/transparent_hugepage/enabled
echo never | sudo tee /sys/kernel/mm/transparent_hugepage/defrag
# 永久禁用(编辑 /etc/rc.local)
sudo vi /etc/rc.local
# 添加以下内容
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
# 或者使用 tuned 配置
sudo vi /etc/tuned/custom-profile/tuned.conf
# 添加以下内容
[vm]
transparent_hugepages=never
调整内存回收策略:
# 查看当前设置
cat /proc/sys/vm/swappiness
# 临时调整(推荐值 10-30)
echo 10 | sudo tee /proc/sys/vm/swappiness
# 永久调整
sudo vi /etc/sysctl.conf
vm.swappiness=10
sudo sysctl -p
4.2 应用内存优化
Java 应用内存优化:
# Java 应用启动参数优化
java -Xms4g -Xmx4g -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCInvokesConcurrent -XX:+ParallelRefProcEnabled -XX:+UseStringDeduplication -XX:+UseCompressedOops -XX:+UseCompressedClassPointers -XX:MaxMetaspaceSize=256m -jar myapp.jar
# 参数说明:
# -Xms4g -Xmx4g: 初始和最大堆内存设为4GB
# -XX:+UseG1GC: 使用G1垃圾收集器
# -XX:MaxGCPauseMillis=200: 最大GC暂停时间200ms
# -XX:InitiatingHeapOccupancyPercent=35: 堆占用35%时开始并发标记
# -XX:+ExplicitGCInvokesConcurrent: System.gc()触发并发GC
# -XX:+ParallelRefProcEnabled: 并行处理引用
# -XX:+UseStringDeduplication: 字符串去重
# -XX:+UseCompressedOops: 启用压缩对象指针
# -XX:+UseCompressedClassPointers: 启用压缩类指针
# -XX:MaxMetaspaceSize=256m: 元空间最大256MB
Python 应用内存优化:
# 内存优化示例
import sys
import gc
import resource
class MemoryOptimizedApp:
def __init__(self):
# 设置内存限制
soft, hard = resource.getrlimit(resource.RLIMIT_AS)
resource.setrlimit(resource.RLIMIT_AS, (1024*1024*1024, hard)) # 1GB限制
def optimize_memory(self):
# 使用生成器而不是列表
def read_large_file(file_path):
with open(file_path, ‘r’) as f:
for line in f:
yield line.strip()
# 及时释放不再使用的对象
large_data = self.load_large_data()
# 处理数据…
del large_data # 显式删除
gc.collect() # 强制垃圾回收
def load_large_data(self):
# 使用内存映射文件
import mmap
with open(‘large_file.dat’, ‘r+b’) as f:
mmapped_file = mmap.mmap(f.fileno(), 0)
# 处理内存映射文件…
return mmapped_file
# 使用示例
app = MemoryOptimizedApp()
app.optimize_memory()
4.3 内存监控与诊断
内存使用分析:
# 查看内存使用详情
free -h
cat /proc/meminfo
# 查看内存泄漏
sudo dnf install -y valgrind
valgrind –leak-check=full –show-leak-kinds=all ./myapp
# 查看内存映射
pmap -x
# 查看内存碎片
cat /proc/buddyinfo
cat /proc/pagetypeinfo
五、磁盘 I/O 优化
5.1 I/O 调度器优化
查看和设置 I/O 调度器:
# 查看当前 I/O 调度器
cat /sys/block/sda/queue/scheduler
# 可用调度器:
# noop: 无调度,适合SSD
# deadline: 截止时间调度,适合数据库
# cfq: 完全公平队列,适合桌面系统
# kyber: 新型调度器,适合NVMe SSD
# mq-deadline: 多队列截止时间调度
# 临时设置(推荐SSD使用kyber或noop)
echo kyber | sudo tee /sys/block/sda/queue/scheduler
# 永久设置(使用 udev 规则)
sudo vi /etc/udev/rules.d/60-ioscheduler.rules
# 添加以下内容
ACTION==”add|change”, KERNEL==”sd[a-z]”, ATTR{queue/rotational}==”0″, ATTR{queue/scheduler}=”kyber”
ACTION==”add|change”, KERNEL==”sd[a-z]”, ATTR{queue/rotational}==”1″, ATTR{queue/scheduler}=”deadline”
# 重新加载 udev 规则
sudo udevadm control –reload-rules
sudo udevadm trigger
5.2 文件系统优化
调整文件系统参数:
# ext4 文件系统优化
sudo tune2fs -o journal_data_writeback /dev/sda1
sudo tune2fs -O ^has_journal /dev/sda1 # 禁用日志(仅用于SSD)
# xfs 文件系统优化
sudo xfs_admin -u /dev/sdb1
sudo xfs_admin -L /dev/sdb1 # 设置日志大小
# 调整挂载参数
sudo vi /etc/fstab
# ext4 示例
UUID=xxxx-xxxx-xxxx-xxxx /data ext4 defaults,noatime,nodiratime,data=writeback,barrier=0 0 2
# xfs 示例
UUID=xxxx-xxxx-xxxx-xxxx /data xfs defaults,noatime,nodiratime,logbufs=8,logbsize=256k 0 2
5.3 RAID 优化
硬件 RAID 配置:
# 查看 RAID 状态
sudo dnf install -y megacli
sudo megacli -LDInfo -Lall -aALL
# 调整 RAID 缓存策略
sudo megacli -SetCachedPd -Enable -a0
sudo megacli -SetCachedPd -Disable -a0
# 软件 RAID (mdadm) 优化
sudo mdadm –detail /dev/md0
# 调整 RAID 读写策略
echo 1024 > /sys/block/md0/md/stripe_cache_size
echo 1024 > /sys/block/md0/md/raid_disks
5.4 I/O 监控与诊断
实时监控 I/O:
# iostat 监控
iostat -x 1 10
# 查看详细 I/O 统计
cat /proc/diskstats
# 查看进程 I/O
sudo iotop -o
# 查看文件系统 I/O
sudo dnf install -y ioping
ioping -c 10 /dev/sda1
六、网络性能优化
6.1 网络栈参数优化
TCP/IP 参数优化:
# 编辑 /etc/sysctl.conf
sudo vi /etc/sysctl.conf
# 添加以下内容(根据网络环境调整)
# TCP 连接优化
net.ipv4.tcp_max_tw_buckets = 2000000
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_intvl = 15
# TCP 缓冲区优化
net.core.rmem_max = 134217728
net.core.wmem_max = 134217728
net.ipv4.tcp_rmem = 4096 87380 134217728
net.ipv4.tcp_wmem = 4096 65536 134217728
# 网络队列优化
net.core.netdev_max_backlog = 5000
net.core.somaxconn = 65535
# 应用配置
sudo sysctl -p
6.2 网络接口优化
网卡参数优化:
# 查看网卡信息
ethtool eth0
# 优化网卡参数
sudo ethtool -G eth0 rx 4096 tx 4096 # 设置环形缓冲区
sudo ethtool -C eth0 rx-usecs 100 tx-usecs 100 # 设置中断合并
sudo ethtool -K eth0 gro on gso on tso on # 启用硬件卸载
# 永久设置(创建 udev 规则)
sudo vi /etc/udev/rules.d/99-network.rules
# 添加以下内容
ACTION==”add”, SUBSYSTEM==”net”, KERNEL==”eth0″, RUN+=”/usr/sbin/ethtool -G eth0 rx 4096 tx 4096″
ACTION==”add”, SUBSYSTEM==”net”, KERNEL==”eth0″, RUN+=”/usr/sbin/ethtool -C eth0 rx-usecs 100 tx-usecs 100″
6.3 网络监控与诊断
网络性能监控:
# 实时网络监控
sudo dnf install -y nload
nload eth0
# 查看网络连接
ss -s
netstat -s
# 网络延迟测试
ping -c 10
mtr
# 网络带宽测试
sudo dnf install -y iperf3
# 服务器端
iperf3 -s
# 客户端
iperf3 -c
七、高级优化技巧
7.1 使用 tuned 进行系统级调优
tuned 是 Red Hat 推荐的性能调优工具,提供多种预设配置文件:
# 安装 tuned
sudo dnf install -y tuned
# 查看可用配置文件
tuned-adm list
# 应用配置文件
sudo tuned-adm profile virtual-guest # 虚拟机环境
sudo tuned-adm profile throughput-performance # 高吞吐量
sudo tuned-adm profile latency-performance # 低延迟
sudo tuned-adm profile powersave # 节能模式
# 创建自定义配置文件
sudo mkdir -p /etc/tuned/custom-profile
sudo vi /etc/tuned/custom-profile/tuned.conf
# 示例:数据库优化配置
[main]
summary=Database performance profile
[cpu]
governor=performance
min_perf_pct=100
max_perf_pct=100
[vm]
transparent_hugepages=never
swappiness=10
[sysctl]
net.core.somaxconn=65535
net.ipv4.tcp_max_syn_backlog=65535
fs.file-max=2097152
# 启用自定义配置
sudo tuned-adm profile custom-profile
7.2 使用 cgroups 进行资源隔离
cgroups v2 配置:
# 安装 cgroups 工具
sudo dnf install -y cgroup-tools
# 创建 cgroup
sudo mkdir -p /sys/fs/cgroup/myapp
# 设置资源限制
echo “2000000” > /sys/fs/cgroup/myapp/cpu.max # CPU 限制(2000ms/100ms周期)
echo “1G” > /sys/fs/cgroup/myapp/memory.max # 内存限制
echo “100M” > /sys/fs/cgroup/myapp/io.max # I/O 限制
# 将进程加入 cgroup
echo
# 使用 systemd 配置 cgroups
sudo vi /etc/systemd/system/myapp.service
# 添加以下内容
[Service]
CPUQuota=200%
MemoryLimit=1G
IOWeight=100
7.3 使用 eBPF 进行性能分析
安装 eBPF 工具:
# 安装 bcc 工具集
sudo dnf install -y bcc-tools
# 使用 bcc 工具分析性能
# 查看系统调用
sudo /usr/share/bcc/tools/opensnoop
# 查看 CPU 使用情况
sudo /usr/share/bcc/tools/offcputime
# 查看网络延迟
sudo /usr/share/bcc/tools/tcplife
# 查看磁盘 I/O
sudo /usr/share/bcc/tools/biolatency
7.4 使用 perf 进行性能剖析
perf 是 Linux 内核自带的性能分析工具:
# 安装 perf
sudo dnf install -y perf
# 记录性能数据
sudo perf record -g -p
# 生成报告
sudo perf report
# 实时监控
sudo perf top
# 分析特定事件
sudo perf stat -e cycles,instructions,cache-misses,branch-misses -p
八、特定场景优化
8.1 数据库服务器优化
MySQL/MariaDB 优化:
# 编辑 MySQL 配置文件
sudo vi /etc/my.cnf.d/server.cnf
# 添加以下优化配置
[mysqld]
# 内存优化
innodb_buffer_pool_size = 4G # 设置为总内存的50-70%
innodb_log_file_size = 512M
innodb_log_buffer_size = 64M
innodb_flush_log_at_trx_commit = 2 # 平衡性能与数据安全
innodb_flush_method = O_DIRECT # 绕过文件系统缓存
# I/O 优化
innodb_io_capacity = 2000
innodb_io_capacity_max = 4000
innodb_flush_neighbors = 0 # SSD 优化
# 连接优化
max_connections = 500
thread_cache_size = 50
table_open_cache = 2000
# 查询缓存(MySQL 8.0+ 已移除)
# query_cache_type = 0
# 重启 MySQL
sudo systemctl restart mysqld
PostgreSQL 优化:
# 编辑 PostgreSQL 配置文件
sudo vi /var/lib/pgsql/data/postgresql.conf
# 添加以下优化配置
# 内存优化
shared_buffers = 4GB # 设置为总内存的25%
work_mem = 64MB # 每个操作的内存
maintenance_work_mem = 1GB # 维护操作内存
effective_cache_size = 12GB # 预估的系统缓存大小
# I/O 优化
wal_buffers = 16MB
checkpoint_completion_target = 0.9
max_wal_size = 2GB
min_wal_size = 1GB
# 并发优化
max_connections = 200
max_worker_processes = 8
max_parallel_workers_per_gather = 4
# 重启 PostgreSQL
sudo systemctl restart postgresql
8.2 Web 服务器优化
Nginx 优化:
# 编辑 Nginx 配置文件
sudo vi /etc/nginx/nginx.conf
# 添加以下优化配置
user nginx;
worker_processes auto; # 自动设置为 CPU 核心数
worker_rlimit_nofile 65536; # 文件描述符限制
events {
worker_connections 4096; # 每个 worker 的连接数
use epoll; # 高效的事件模型
multi_accept on; # 一次接受多个连接
}
http {
# 连接优化
keepalive_timeout 65;
keepalive_requests 100;
# 缓冲区优化
client_body_buffer_size 128k;
client_max_body_size 10m;
client_header_buffer_size 1k;
large_client_header_buffers 4 8k;
# Gzip 压缩
gzip on;
gzip_vary on;
gzip_min_length 1024;
gzip_proxied any;
gzip_comp_level 6;
gzip_types
text/plain
text/css
text/xml
text/javascript
application/javascript
application/xml+rss
application/json;
# 缓存配置
open_file_cache max=10000 inactive=30s;
open_file_cache_valid 60s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
# 日志优化
access_log off; # 生产环境可关闭
error_log /var/log/nginx/error.log warn;
}
# 测试配置并重启
sudo nginx -t
sudo systemctl restart nginx
Apache 优化:
# 编辑 Apache 配置文件
sudo vi /etc/httpd/conf/httpd.conf
# 添加以下优化配置
# MPM 模块选择(推荐使用 event 模块)
LoadModule mpm_event_module modules/mod_mpm_event.so
# Event MPM 配置
StartServers 3
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxRequestWorkers 400
MaxConnectionsPerChild 10000
# 连接优化
KeepAlive On
KeepAliveTimeout 5
MaxKeepAliveRequests 100
# 模块优化(禁用不需要的模块)
# LoadModule auth_basic_module modules/mod_auth_basic.so
# LoadModule auth_digest_module modules/mod_auth_digest.so
# 重启 Apache
sudo systemctl restart httpd
8.3 容器化应用优化
Docker 容器优化:
# Docker 守护进程优化
sudo vi /etc/docker/daemon.json
# 添加以下配置
{
“log-driver”: “json-file”,
“log-opts”: {
“max-size”: “10m”,
“max-file”: “3”
},
“storage-driver”: “overlay2”,
“storage-opts”: [
“overlay2.override_kernel_check=true”
],
“default-ulimits”: {
“nofile”: {
“Name”: “nofile”,
“Hard”: 65536,
“Soft”: 65536
}
},
“exec-opts”: [“native.cgroupdriver=cgroupfs”],
“cgroup-parent”: “docker.slice”
}
# 重启 Docker
sudo systemctl restart docker
# 容器运行时优化
docker run -d \
–name myapp \
–cpus=”2.0″ \
–memory=”2g” \
–memory-swap=”2g” \
–ulimit nofile=65536:65536 \
–restart unless-stopped \
myapp:latest
Kubernetes 优化:
# Kubelet 配置优化
sudo vi /etc/kubernetes/kubelet.conf
# 添加以下配置
KUBELET_EXTRA_ARGS=”–cgroup-driver=cgroupfs –kube-reserved=cpu=500m,memory=1Gi –system-reserved=cpu=500m,memory=1Gi –eviction-hard=nodefs.available<10%,nodefs.inodesFree<5%,memory.available<500Mi"
# 节点资源预留
# 编辑 kubelet 配置文件
sudo vi /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
# 添加以下内容
[Service]
Environment="KUBELET_EXTRA_ARGS=--cgroup-driver=cgroupfs --kube-reserved=cpu=500m,memory=1Gi --system-reserved=cpu=500m,memory=1Gi --eviction-hard=nodefs.available<10%,nodefs.inodesFree<5%,memory.available<500Mi"
# 重启 kubelet
sudo systemctl daemon-reload
sudo systemctl restart kubelet
九、性能调优最佳实践
9.1 调优流程
建立基准
:记录当前性能指标
识别瓶颈
:使用监控工具找出性能瓶颈
制定计划
:根据瓶颈制定调优方案
逐步实施
:一次只调整一个参数
验证效果
:重新测试并对比基准
文档记录
:记录所有变更和效果
9.2 常见误区
盲目调整参数
:不了解参数含义就调整
过度优化
:优化不必要的部分
忽略监控
:没有建立持续监控
不测试回滚
:没有准备回滚方案
忽略业务需求
:优化脱离实际业务场景
9.3 持续优化策略
定期审查
:每季度审查一次性能指标
自动化监控
:设置告警和自动报告
容量规划
:根据业务增长预测资源需求
知识共享
:建立团队知识库
工具更新
:定期更新监控和调优工具
十、总结
AlmaLinux 性能调优是一个系统性的工程,需要从基础配置到高级优化技巧全面考虑。通过本文的指导,您可以:
建立性能基准
:量化优化效果
优化基础配置
:调整内核参数和文件系统
优化核心组件
:CPU、内存、磁盘、网络
应用高级技巧
:使用 tuned、cgroups、eBPF 等工具
针对特定场景
:数据库、Web 服务器、容器化应用
记住,性能调优不是一次性的工作,而是一个持续的过程。建议建立完善的监控体系,定期审查性能指标,并根据业务发展不断调整优化策略。
最后提醒
:在生产环境进行任何调优前,务必在测试环境充分验证,并准备好回滚方案。性能调优的目标是平衡系统资源与业务需求,而不是盲目追求极致性能。