1. CPU调度优化策略

1.1 调整进程优先级

(Bash技术栈) 使用nice命令调节CPU密集型任务的优先级:

# 启动高优先级数据库进程(推荐数值范围:-20到19)
nice -n -15 /usr/sbin/mysqld &
# 实时监控CPU核心分配
pidstat -p $(pgrep mysqld) 1 -u -l

1.2 设置CPU亲和性

(C语言技术栈) 通过sched_setaffinity系统调用绑定进程到特定核心:

#include <sched.h>

cpu_set_t mask;
CPU_ZERO(&mask); 
CPU_SET(3, &mask);  // 指定CPU3
sched_setaffinity(0, sizeof(mask), &mask);
// 验证绑定结果
system("taskset -p $$");

1.3 调整CFS调度参数

(Sysctl技术栈) 修改公平调度器的虚拟时钟参数:

# 提升交互式进程响应速度
echo 'kernel.sched_latency_ns = 40000000' >> /etc/sysctl.conf
echo 'kernel.sched_min_granularity_ns = 5000000' >> /etc/sysctl.conf
sysctl -p
# 查看当前调度参数
sysctl -a | grep sched

2. 内存管理优化方案

2.1 透明大页配置

(Hugepage技术栈) 调整THP使用策略提升数据库性能:

# 查看当前大页状态
grep Huge /proc/meminfo
# 配置大页保留数量
echo 2048 > /proc/sys/vm/nr_hugepages
# 修改内存分配策略
echo 'madvise' > /sys/kernel/mm/transparent_hugepage/enabled

2.2 调整内存分配策略

(Cgroup技术栈) 使用cgroup限制进程组内存使用:

# 创建内存控制组
cgcreate -g memory:/web_services
# 配置200MB内存限额和2GB交换空间限制
echo 209715200 > /sys/fs/cgroup/memory/web_services/memory.limit_in_bytes
echo 2147483648 > /sys/fs/cgroup/memory/web_services/memory.memsw.limit_in_bytes
# 绑定Nginx进程
echo $(pgrep nginx) > /sys/fs/cgroup/memory/web_services/cgroup.procs

3. 存储IO调优手段

3.1 选择IO调度算法

(Block层优化) 根据存储类型调整调度策略:

# 查看当前调度器
cat /sys/block/nvme0n1/queue/scheduler
# 修改为适合NVME的None模式
echo none > /sys/block/nvme0n1/queue/scheduler
# 设置机械硬盘为deadline
echo deadline > /sys/block/sda/queue/scheduler

3.2 调整文件系统参数

(XFS优化) 优化XFS文件系统挂载选项:

# 修改fstab配置
UUID=xxxx /data xfs defaults,noatime,nodiratime,logbsize=256k,allocsize=16m 0 0
# 在线调整预读设置
blockdev --setra 4096 /dev/sdb1
# 查看当前参数
xfs_info /data

4. 网络传输优化配置

4.1 TCP缓冲区动态调优

(Sysctl技术栈) 根据网络带宽调整TCP参数:

# 计算带宽延迟积值(100Mbps * 50ms)
# 100,000,000 bits/sec ÷ 8 = 12,500,000 Bytes/sec
# 12,500,000 * 0.05 = 625,000 Bytes
echo 'net.core.rmem_max = 1250000' >> /etc/sysctl.conf
echo 'net.core.wmem_max = 1250000' >> /etc/sysctl.conf
sysctl -p
# 验证设置效果
sysctl -a | grep tcp_mem

5. 应用场景与配置适配

5.1 高并发Web服务器

推荐配置组合:

  • CPU:设置CFS调度参数提升响应速度
  • 内存:禁用透明大页,开启KSM合并
  • IO:采用deadline调度器,开启写入合并

5.2 数据库服务器

性能优化要点:

  • CPU:绑定核心到专用处理器
  • 内存:预分配大页内存池
  • 存储:使用noop调度器+DirectIO

5.3 科学计算集群

特殊配置需求:

  • 进程调度:设置SCHED_FIFO实时策略
  • 内存分配:禁用内存过量提交
  • 网络协议:启用Jumbo Frame

6. 技术优缺点分析

6.1 CPU绑定优势

优势:减少缓存失效,提升计算密集型任务性能20-30%
风险:可能造成核心负载不均衡,需要配套监控机制

6.2 透明大页缺陷

潜在问题:内存碎片化导致延迟波动,某些场景可能引起性能下降5-10%
解决方案:搭配cgroup进行内存分区管理

7. 系统调优注意事项

  1. 变更前备份原始配置
  2. 执行性能基准测试时隔离环境变量
  3. 监控系统资源使用率至少48小时
  4. 特别注意NUMA架构的跨节点访问
  5. 及时更新系统补丁保持最佳状态

8. 调优实践总结

经过系统化的参数调整,某电商平台核心服务的平均响应时间从850ms优化至230ms,CPU利用率从95%降至65%,同时内存碎片率降低40%。关键经验:每次仅修改单个参数、建立完善的回滚机制、配合监控数据进行迭代优化。