当前位置:首页 > 未命名 > 正文内容

Linux 性能优化:从入门到精通的系统调优指南

廖万里18小时前未命名2

Linux 性能优化是每个运维和开发人员的必备技能。从 CPU 调度到内存管理,从磁盘 I/O 到网络优化,本文带你系统掌握 Linux 性能调优的核心技术。

一、性能分析方法论

性能优化不是盲目调参,而是一个系统性的工程。建议遵循以下流程:

1. 确定瓶颈:通过监控工具定位问题

2. 分析原因:深入理解底层原理

3. 针对优化:采取合适的优化措施

4. 验证效果:对比优化前后的性能

二、CPU 性能分析

2.1 常用工具

# 查看系统负载
uptime

# 实时监控
top -p PID
htop

# 查看所有 CPU 状态
mpstat -P ALL 1

# 进程级 CPU 使用
pidstat -p PID 1

2.2 CPU 使用率分析

# 查看 CPU 时间分布
cat /proc/stat

# 用户态、内核态、空闲时间
# user: 用户态时间
# nice: 低优先级用户态时间
# system: 内核态时间
# idle: 空闲时间
# iowait: I/O 等待时间

2.3 进程优先级调整

# 启动时设置 nice 值
nice -n 10 ./myapp

# 运行中调整
renice -n 5 -p 1234

# 查看进程优先级
ps -eo pid,ni,comm | grep myapp

三、内存性能优化

3.1 内存信息查看

# 查看内存使用
free -h

# 详细内存信息
cat /proc/meminfo

# 进程内存使用
ps aux --sort=-%mem | head

# pmap 查看进程内存映射
pmap -x PID

3.2 内存回收机制

# 查看当前设置
cat /proc/sys/vm/swappiness

# 调整 swap 使用倾向(0-100,越小越少使用)
sysctl vm.swappiness=10

# 清理缓存
sync && echo 3 > /proc/sys/vm/drop_caches

3.3 内存限制

# 限制进程内存
ulimit -v 1048576  # 限制为 1GB

# cgroup 内存限制
echo 1G > /sys/fs/cgroup/memory/mygroup/memory.limit_in_bytes

四、磁盘 I/O 优化

4.1 I/O 监控

# 查看磁盘统计
iostat -x 1

# 实时 I/O 监控
iotop

# 查看块设备
lsblk

# 查看磁盘分区
fdisk -l

4.2 调度算法

# 查看当前调度器
cat /sys/block/sda/queue/scheduler

# 修改调度器
echo noop > /sys/block/sda/queue/scheduler
echo deadline > /sys/block/sda/queue/scheduler
echo cfq > /sys/block/sda/queue/scheduler

4.3 文件系统优化

# 挂载选项优化
mount -o noatime,nodiratime /dev/sda1 /mnt

# ext4 优化选项
tune2fs -o journal_data_writeback /dev/sda1

# 查看 inode 使用
df -i

五、网络性能优化

5.1 网络监控

# 查看网络连接状态
ss -tunap

# 网络流量监控
iftop

# 连接统计
netstat -s

# 抓包分析
tcpdump -i eth0 port 80

5.2 内核参数优化

# TCP 参数优化
sysctl -w net.core.somaxconn=65535
sysctl -w net.ipv4.tcp_max_syn_backlog=65535
sysctl -w net.ipv4.tcp_tw_reuse=1
sysctl -w net.ipv4.tcp_fin_timeout=30

# 缓冲区大小
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216

5.3 连接数优化

# 查看文件描述符限制
ulimit -n

# 修改限制
ulimit -n 65535

# 永久修改
echo "* soft nofile 65535" >> /etc/security/limits.conf
echo "* hard nofile 65535" >> /etc/security/limits.conf

六、综合性能工具

# sar 综合监控
sar -u 1 5    # CPU
sar -r 1 5    # 内存
sar -b 1 5    # I/O
sar -n DEV 1 5  # 网络

# perf 性能分析
perf top
perf record -g ./myapp
perf report

# vmstat 综合视图
vmstat 1

七、总结

Linux 性能优化是一个系统工程,需要综合考虑 CPU、内存、I/O、网络等多个方面。关键在于:

1. 持续监控,及时发现问题

2. 理解原理,找准优化方向

3. 小步迭代,验证优化效果

4. 记录文档,积累优化经验

性能优化没有银弹,但掌握正确的方法论和工具,能让你事半功倍。

本文链接:https://www.kkkliao.cn/?id=775 转载需授权!

分享到:

版权声明:本文由廖万里的博客发布,如需转载请注明出处。


发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。