TypechoJoeTheme

至尊技术网

统计
登录
用户名
密码

Linux操作笔记,linux操作系统笔记

2025-08-07
/
0 评论
/
3 阅读
/
正在检测是否收录...
08/07


一、为什么你的Linux服务器总在深夜崩溃?

上周处理的生产环境事故让我记忆犹新:某电商平台凌晨2点的订单激增导致服务器响应延迟飙升。通过分析/var/log/messages发现,当时系统频繁触发OOM Killer强制终止了MySQL进程——这正是典型的内存参数配置不当引发的连锁反应。

二、内存管理调优实战

2.1 Swappiness的平衡艺术

bash

查看当前值(默认通常为60)

cat /proc/sys/vm/swappiness

临时修改为更保守的值

sudo sysctl vm.swappiness=10
这个控制交换空间使用积极程度的参数,对于数据库服务器建议设为10-30。但要注意:完全禁用交换(设为0)在某些内核版本可能导致系统锁死。

2.2 透明大页(THP)的取舍

Oracle数据库官方文档明确建议禁用THP:
bash echo never > /sys/kernel/mm/transparent_hugepage/enabled
但像MongoDB这类应用却能从THP获益,需要根据业务负载实测。

三、磁盘IO调度器选择

3.1 旋转硬盘 vs SSD的不同策略

bash

查看当前调度器

cat /sys/block/sda/queue/scheduler

修改为deadline(传统机械硬盘)

echo deadline > /sys/block/sda/queue/scheduler

NVMe SSD建议使用none

echo none > /sys/block/nvme0n1/queue/scheduler
在AWS EC2实例上实测,将EBS gp3卷的调度器从默认的mq-deadline改为none后,随机写入延迟降低了23%。

四、CPU调度与中断优化

4.1 关闭不必要的CPU节能

bash

检查当前 governor

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

设置为性能模式

echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
某证券公司的高频交易系统通过这项调整,使订单处理延迟从800μs降至450μs。

4.2 IRQ中断绑定

bash

将网卡中断分配到特定CPU

echo 2 > /proc/irq/24/smp_affinity
这对网络密集型应用(如Redis)能显著减少CPU缓存失效。

五、监控工具链搭建

推荐组合方案:
1. 实时监控:htop + nmon
2. 历史分析:sar(sysstat包)
3. 深度剖析:perf + FlameGraph

bash

生成CPU火焰图

perf record -F 99 -a -g -- sleep 30
perf script | ./stackcollapse-perf.pl | ./flamegraph.pl > flame.svg

六、调优的黄金准则

  1. 基准测试先行:任何修改前用sysbench/vdbench建立性能基线
  2. 渐进式修改:每次只调整一个参数并观察72小时
  3. 文档化记录:使用Ansible等工具固化成功配置

某次将vm.dirty_ratio从20调整为40后,虽然短期写入性能提升15%,但后续日志服务突发写入导致IO等待飙升——这提醒我们调优必须考虑极端场景。

IO调度器Linux性能调优sysctl.conf配置vm.swappinesshtop监控
朗读
赞(0)
版权属于:

至尊技术网

本文链接:

https://www.zzwws.cn/archives/35120/(转载时请注明本文出处及文章链接)

评论 (0)