分享东京服务器 Linux 内核调优实战,通过参数调整把系统性能提升 40%。
Linux 内核参数对性能影响很大。本文分享东京服务器内核调优实战。
网络相关调优 ```bash # TCP 缓冲区 net.core.rmem_max = 67108864 net.core.wmem_max = 67108864 net.ipv4.tcp_rmem = 4096 87380 67108864 net.ipv4.tcp_wmem = 4096 65536 67108864
# 拥塞控制 net.core.default_qdisc = fq net.ipv4.tcp_congestion_control = bbr
# 连接管理 net.ipv4.tcp_fin_timeout = 15 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_max_syn_backlog = 8192 net.core.somaxconn = 65535
# 端口范围 net.ipv4.ip_local_port_range = 1024 65535 ```
文件系统调优 ```bash # 文件描述符 fs.file-max = 1000000 fs.nr_open = 1000000
# inode 缓存 vm.vfs_cache_pressure = 50
# 脏页写回 vm.dirty_ratio = 10 vm.dirty_background_ratio = 5 vm.dirty_expire_centisecs = 3000 vm.dirty_writeback_centisecs = 1500 ```
内存调优 ```bash # swappiness:减少 swap 使用 vm.swappiness = 10
# 内存超额分配 vm.overcommit_memory = 1 vm.overcommit_ratio = 80
# 透明大页 echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/defrag ```
进程调度调优 ```bash # CPU 调度 kernel.sched_migration_cost_ns = 5000000 kernel.sched_autogroup_enabled = 0
# 时钟 kernel.timer_migration = 1
# 多核优化 net.core.busy_read = 50 net.core.busy_poll = 50 ```
磁盘 IO 调优 1) IO 调度器:SSD 用 none,HDD 用 deadline 2) 预读:blockdev --setra 读取扇区数 3) 文件系统:XFS 适合大文件,ext4 通用 4) 挂载参数:noatime、nodiratime 5) NVMe:默认 none 调度,无需调整
```bash # 查看调度器 cat /sys/block/sda/queue/scheduler
# 设置调度器(SSD) echo none > /sys/block/sda/queue/scheduler
# 挂载优化 mount -o noatime,nodiratime /dev/sda1 /data ```
CPU 调优 1) 关闭节能:performance 模式 2) CPU 亲和性:绑定进程到特定 CPU 3) 中断亲和性:网卡中断分散到多核 4) 关闭超线程(部分场景) 5) NUMA 优化:内存和 CPU 同节点
```bash # CPU 性能模式 cpupower frequency-set -g performance
# 中断亲和性 echo 2 > /proc/irq/网卡中断号/smp_affinity ```
安全相关 ```bash # 防御 SYN flood net.ipv4.tcp_syncookies = 1
# ICMP 防护 net.ipv4.icmp_echo_ignore_broadcasts = 1 net.ipv4.icmp_ignore_bogus_error_responses = 1
# 路由防护 net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.send_redirects = 0 ```
应用场景调优 Web 服务器: - 增大文件描述符 - TCP 缓冲区调优 - BBR 拥塞控制 - 长连接复用
数据库服务器: - 关闭透明大页 - swappiness=1 - 脏页比例调低 - IO 调度 deadline 或 none
游戏服务器: - CPU 性能模式 - 低延迟网络 - 实时调度策略 - 减少中断
效果对比 | 指标 | 调优前 | 调优后 | | --- | --- | --- | | Web QPS | 50000 | 70000 | | 网络延迟 | 50ms | 35ms | | 数据库 TPS | 8000 | 12000 | | CPU 利用率 | 85% | 70% | | 网络吞吐 | 5Gbps | 8Gbps |
注意事项 1) 调优前测试基线,调优后对比 2) 一次只改几个参数,便于定位 3) 不同业务场景调优不同 4) 内核版本影响参数有效性 5) 监控调优后的稳定性
总结:内核调优能显著提升性能。网络、内存、磁盘、CPU 多方面优化,根据业务场景调整参数。但不要盲目调优,先测试再应用。