Linux 性能调优

学习系统性能分析和优化技术,提升系统运行效率和响应速度

性能调优概述

性能调优是系统管理的高级技能,通过分析系统瓶颈、优化配置参数和调整资源分配, 可以显著提升系统性能和用户体验。

CPU 优化

处理器调度和负载优化

内存优化

内存管理和缓存优化

I/O 优化

磁盘和网络I/O优化

CPU 性能优化

CPU 调度优化

# 查看CPU调度器
cat /sys/block/sda/queue/scheduler
# 设置进程优先级
nice -n 10 command
renice -n 5 -p PID
# CPU亲和性设置
taskset -c 0,1 command
taskset -p 0x3 PID

CPU 频率调节

# 查看CPU频率
cpufreq-info
cat /proc/cpuinfo | grep MHz
# 设置CPU调速器
cpufreq-set -g performance
cpufreq-set -g powersave
cpufreq-set -g ondemand

内存性能优化

内存管理优化

# 调整交换分区使用
echo 10 > /proc/sys/vm/swappiness
# 清理缓存
echo 1 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches
# 调整脏页回写
echo 5 > /proc/sys/vm/dirty_ratio
echo 2 > /proc/sys/vm/dirty_background_ratio

大页内存配置

# 查看大页配置
cat /proc/meminfo | grep Huge
# 配置大页数量
echo 1024 > /proc/sys/vm/nr_hugepages
# 透明大页设置
echo never > /sys/kernel/mm/transparent_hugepage/enabled

I/O 性能优化

磁盘I/O优化

# 查看I/O调度器
cat /sys/block/sda/queue/scheduler
# 设置I/O调度器
echo deadline > /sys/block/sda/queue/scheduler
echo noop > /sys/block/sda/queue/scheduler
# 调整读取预读
blockdev --setra 4096 /dev/sda

文件系统优化

# ext4优化挂载选项
mount -o noatime,data=writeback /dev/sda1 /mnt
# 调整文件系统参数
tune2fs -o journal_data_writeback /dev/sda1
tune2fs -O ^has_journal /dev/sda1

网络性能优化

TCP/IP 优化

# 调整TCP缓冲区
echo 'net.core.rmem_max = 16777216' >> /etc/sysctl.conf
echo 'net.core.wmem_max = 16777216' >> /etc/sysctl.conf
# TCP窗口缩放
echo 'net.ipv4.tcp_window_scaling = 1' >> /etc/sysctl.conf
# 应用配置
sysctl -p

网络队列优化

# 调整网络队列长度
echo 'net.core.netdev_max_backlog = 5000' >> /etc/sysctl.conf
# TCP连接队列
echo 'net.core.somaxconn = 65535' >> /etc/sysctl.conf
echo 'net.ipv4.tcp_max_syn_backlog = 65535' >> /etc/sysctl.conf

性能监控和分析

监控工具

  • perf - 性能分析工具
  • sar - 系统活动报告
  • iotop - I/O监控
  • htop - 进程监控

分析方法

  • 基准测试对比
  • 瓶颈识别分析
  • 性能趋势监控
  • 负载压力测试

继续学习

掌握了性能调优后,继续学习更多高级主题