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 - 进程监控
分析方法
- 基准测试对比
- 瓶颈识别分析
- 性能趋势监控
- 负载压力测试