优化Linux内核参数

1. 内存管理优化

vm.swappiness

作用: 控制内核在物理内存使用满时,交换(swap)到磁盘的频率。数值越高,越倾向于交换数据,数值越低,内存压力更大时才会进行交换。

推荐值: 通常设置为 10-60(默认 60),对于内存密集型应用(如数据库)建议将此值设低。

命令: sysctl -w vm.swappiness=10

vm.dirty_background_ratio 和 vm.dirty_ratio

作用: 控制脏页(dirty pages,已修改但未写回磁盘的数据)的最大比例。vm.dirty_background_ratio 定义了系统开始将脏页刷写到磁盘的触发阈值,而 vm.dirty_ratio 则是写操作的上限。

推荐值: vm.dirty_background_ratio = 10,vm.dirty_ratio = 20-40

命令:

sysctl -w vm.dirty_background_ratio=10
sysctl -w vm.dirty_ratio=20
vm.min_free_kbytes

作用: 指定内核保留的一定量的内存,用于防止系统内存完全耗尽,避免系统进入 OOM(Out of Memory)状态。

推荐值: 通常设置为系统总内存的 1%-2%,也可以根据系统实际情况调整。

命令: sysctl -w vm.min_free_kbytes=65536

vm.overcommit_memory:

作用: 控制内存分配的策略。该参数有三个值:

允许内存过度提交,但内存分配时会检查内存是否足够。

总是允许内存过度提交(不检查实际的内存)。

禁止内存过度提交,分配内存时需要考虑实际内存。

推荐值: vm.overcommit_memory = 2 适用于大部分生产环境,特别是在运行数据库等内存密集型应用时。

命令: sysctl -w vm.overcommit_memory=2

2. 进程调度优化

kernel.sched_latency_ns

作用: 控制调度器延迟(任务调度时的最大延迟)。该参数决定了调度器在处理实时任务时的延迟。

推荐值: 适用于需要低延迟的场景,默认值通常已足够。

命令: sysctl -w kernel.sched_latency_ns=5000000(5ms)

kernel.sched_min_granularity_ns

作用: 控制 CPU 时间片的最小粒度。该参数决定了调度器给每个任务分配的最小时间。

推荐值: sysctl -w kernel.sched_min_granularity_ns=20000000(20ms)

kernel.sched_wakeup_granularity_ns

作用: 定义一个进程被唤醒时,它被重新调度的时间间隔。适用于减少高负载系统中的上下文切换。

推荐值: sysctl -w kernel.sched_wakeup_granularity_ns=15000000(15ms)

kernel.sched_tunable_scaling

作用: 启用动态调整调度器参数的功能,用于自动根据系统负载优化调度器行为。

推荐值: sysctl -w kernel.sched_tunable_scaling=1

3. 文件系统优化

vm.vfs_cache_pressure

作用: 控制内核回收用于缓存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值