运维联盟俱乐部

 找回密码
 立即注册
查看: 508|回复: 0

swappiness

[复制链接]
  • TA的每日心情
    开心
    2023-8-9 11:05
  • 发表于 2023-5-31 10:35:56 | 显示全部楼层 |阅读模式
    一、什么是swappiness
    swappines是Linux的一个内核参数,控制系统在进行swap时,内存使用相对权重。
    那么系统在进行swap时,系统做了什么?
    系统swap时在做什么?
    在Linux系统中,当物理内存不足时,系统会拿出预先设定好的部分硬盘空间当swap分区使用,从而解决内存容量不足的情况。
    当某进程向系统请求内存发现不足时,系统会把内存中暂时不用的数据交换出去,放在swap分区中,这个过程称为swap out 。
    当某进程又需要这些数据且系统发现还有空闲物理内存时,又会把swap分区中的数据交换回物理内存中,这个过程称为swap in 。
    当然,swap大小是有上限的,一旦swap使用完,操作系统会触发OOM-Killer机制,把消耗内存最多的进程kill掉以释放内存。
    可以理解为系统在硬盘上设置swap分区,当内存不足了,把这部分硬盘当作内存来用。
    二、swappiness有什么用
    swappiness参数值可设置范围在0到100之间。
    此参数值越低,就会让Linux系统尽量少用swap分区,多用内存;参数值越高就是反过来,使内核更多的去使用swap空间。
    CentOS系统此参数的默认值是30,表示当内存使用超过70%,系统开始使用swap分区。
    这里CDH推荐swappiness为10,表示当内存使用率超过90%,系统开始使用swap分区。
    三、如何修改swappiness
    查看swappniess
    cat /proc/sys/vm/swappiness
    临时修改
    echo 10 > /proc/sys/vm/swappiness

    sysctl vm.swappiness=10
    临时修改,当前系统的swappiness为10,但重启后,系统的swappiness继续恢复默认值。
    永久修改
    vim /etc/sysctl.conf
    在配置文件中添加参数
    vm.swappiness=10


    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    运维联盟俱乐部 ( 冀ICP备19036648号 )

    GMT+8, 2024-5-5 02:15 , Processed in 0.049613 second(s), 21 queries , Gzip On.

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表