阅读量:11
Linux系统性能优化指南(通用策略,适用于多数发行版)
一、系统级基础调优
1. CPU调度优化
通过调整进程优先级和调度策略提升CPU利用率:
- 使用
nice(降低优先级,范围-20至19)和renice(修改运行中进程优先级)命令调整进程优先级,避免高负载进程抢占资源; - 对实时性要求高的任务(如视频编码),使用
chrt命令设置实时调度策略(如FIFO或RR),确保关键任务优先执行。
2. 内存管理优化
合理配置内存使用,减少Swap交换带来的性能损耗:
- 调整
vm.swappiness参数(默认60,范围0-100),值越低越倾向于使用物理内存(如设置为10,适用于数据库服务器); - 启用透明大页(Transparent Huge Pages, THP)(通过
/sys/kernel/mm/transparent_hugepage/enabled开启),减少内存碎片,提升内存访问效率。
3. 文件系统优化
选择高性能文件系统并调整挂载选项:
- 根据场景选择文件系统:ext4(通用,支持大文件)、XFS(高性能,适合高并发读写)、Btrfs(支持快照和数据校验);
- 挂载时添加
noatime选项(不更新文件访问时间),减少磁盘写操作;对于ext4,可添加data=writeback(提升写入性能,但牺牲部分数据一致性)。
二、网络性能调优
1. TCP/IP栈优化
调整内核参数提升网络吞吐量和响应速度:
- 增大TCP缓冲区:
net.core.rmem_max(接收缓冲区最大值)、net.core.wmem_max(发送缓冲区最大值)(如设置为26214400,即25MB); - 启用TCP快速打开(TFO):
net.ipv4.tcp_fastopen=3,减少握手延迟; - 复用TIME-WAIT连接:
net.ipv4.tcp_tw_reuse=1,提升高并发场景下的连接复用率。
2. 网络参数调优
优化网络连接队列和并发处理能力:
- 调整
net.core.somaxconn(监听队列最大长度,默认128,高并发服务器可设置为1024); - 增大
net.ipv4.tcp_max_syn_backlog(SYN队列长度,默认1024,应对SYN Flood攻击时可临时增大)。
三、磁盘I/O优化
1. I/O调度器选择
根据磁盘类型调整调度策略:
- SSD:使用
noop或deadline调度器(noop无调度,适合SSD的硬件调度;deadline保证I/O请求的延迟); - 机械硬盘:使用
cfq(完全公平队列)或deadline(避免饥饿)。
修改路径:/sys/block/{device}/queue/scheduler(如sda),临时生效;永久生效需修改内核启动参数。
2. RAID与SSD优化
- RAID配置:根据需求选择RAID级别(如RAID 10兼顾性能与冗余,RAID 5适合大容量存储);
- SSD优化:启用TRIM支持(
fstrim命令,每周执行一次),清理无效数据块,提升写入性能。
四、应用程序级调优
1. 数据库优化
- 索引优化:为常用查询字段添加索引(如主键、外键),避免全表扫描;
- SQL调优:分析慢查询日志(
slow_query_log),重写低效SQL(如避免SELECT *、使用JOIN替代子查询); - 缓存调整:增大InnoDB缓冲池(
innodb_buffer_pool_size,建议设置为物理内存的50%-70%),减少磁盘I/O。
2. Web服务器优化
- Nginx调优:调整
worker_processes(CPU核心数)、worker_connections(每个进程的最大连接数,如10240);启用gzip压缩(减少传输体积)、keepalive(长连接,减少握手开销); - 缓存机制:使用Redis或Memcached缓存频繁访问的数据(如会话、热点数据),减轻数据库压力;配置Nginx反向代理缓存(
proxy_cache),提升静态资源访问速度。
五、监控与诊断
1. 实时监控工具
- top/htop:查看进程CPU、内存占用排名;
- vmstat:监控系统整体状态(CPU、内存、I/O、进程);
- iostat:查看磁盘I/O使用率、吞吐量;
- netstat/ss:监控网络连接状态(如
ss -s查看连接数)。
2. 日志与长期监控
- journalctl:查看系统日志(如内核错误、服务崩溃);
- logrotate:定期归档日志(如每天分割),避免日志文件过大占用磁盘空间;
- APM工具:使用New Relic、SkyWalking等工具,深入分析应用性能瓶颈(如数据库查询慢、接口响应时间长)。
六、安全与维护
- 权限最小化:为服务运行用户分配最低必要权限(如
nginx用户仅能访问/var/www目录); - 定期更新:保持系统和软件包最新(
yum update或apt upgrade),修复已知安全漏洞和性能bug; - 备份策略:定期备份重要数据(如
/etc、/home、数据库),使用rsync或专业备份工具(如Bacula)。
以上策略覆盖了Linux系统性能优化的核心方向,可根据实际业务场景(如高并发Web服务器、数据库服务器)调整优先级。优化前建议备份重要数据,并通过监控工具验证优化效果。