温馨提示×

Linux缓存设置哪些参数

小樊
41
2025-12-13 23:36:07
栏目: 智能运维

在Linux系统中,缓存设置主要涉及以下几个方面:

文件系统缓存

  1. /proc/sys/vm/dirty_ratio

    • 定义了脏页(已修改但尚未写回磁盘的页)占可用内存的最大百分比。
    • 默认值通常是20%。
  2. /proc/sys/vm/dirty_background_ratio

    • 控制脏页在后台写入磁盘的比例。
    • 默认值通常是10%。
  3. /proc/sys/vm/dirty_expire_centisecs

    • 设置脏页在被强制写回之前可以保持脏状态的时间(以百分之一秒为单位)。
    • 默认值通常是3000(即30秒)。
  4. /proc/sys/vm/dirty_writeback_centisecs

    • 控制内核多久触发一次脏页的批量写回操作。
    • 默认值通常是500(即5秒)。
  5. /proc/sys/vm/vfs_cache_pressure

    • 影响内核回收inode和dentry缓存的倾向性。
    • 较高的值会增加回收频率,较低的值会减少回收。
  6. /proc/sys/vm/min_free_kbytes

    • 系统保证的最小空闲内存量,以避免OOM(Out of Memory)错误。
    • 默认值通常是系统总内存的2.5%。

内存映射缓存

  1. /proc/sys/vm/max_map_count
    • 控制一个进程可以拥有的最大内存映射区域的数量。
    • 默认值可能较低,需要根据应用需求调整。

文件描述符缓存

  1. /proc/sys/fs/file-max
    • 系统允许的最大文件描述符数量。
    • 默认值通常是系统内存大小的一个函数。

网络缓存

  1. /proc/sys/net/core/rmem_max/proc/sys/net/core/wmem_max

    • 分别控制接收和发送缓冲区的最大大小。
  2. /proc/sys/net/core/rmem_default/proc/sys/net/core/wmem_default

    • 设置默认的接收和发送缓冲区大小。

其他有用的参数

  1. /proc/sys/vm/overcommit_memory

    • 控制内存分配策略,有三种模式:0(启发式)、1(总是允许)、2(不允许)。
  2. /proc/sys/vm/overcommit_ratio

    • overcommit_memory设置为0时,此参数定义了内存过度承诺的比例。
  3. /proc/sys/vm/laptop_mode

    • 在笔记本电脑上启用或禁用节能模式,会影响磁盘缓存行为。

修改参数的方法

  • 临时修改:直接使用echo命令写入相应的/proc/sys文件。
    echo 40 > /proc/sys/vm/dirty_ratio
    
  • 永久修改:编辑/etc/sysctl.conf文件,添加或修改相应的行,然后运行sysctl -p使更改生效。
    vm.dirty_ratio=40
    

注意事项

  • 修改这些参数时要谨慎,不当的设置可能导致系统性能下降或不稳定。
  • 在生产环境中,建议先在测试环境中验证更改的效果。

通过合理调整这些缓存参数,可以显著提升Linux系统的整体性能和响应速度。

0