• Centos7 因内存 可用大小不足,被killed的解决办法


    Linux的内存分配采取的是一种更加积极的分配策略,它假设应用申请了内存空间后并不会立即去使用它,所以允许一定量的超售,当应用真的需要使用它的时候,操作系统可能已经通过回收了其他应用的内存空间而变得有能力去满足这个应用的需求,简单的说,就是允许应用申请比实际可分配空间(包括物理内存和Swap)更多的内存,这个特性称为OverCommit。

    这个特性在Linux操作系统里面也是可配的,可以通过设置/proc/sys/vm/overcommit_memory为不同的值来调整OverCommit策略。

    overcommit_memory可以取3个值:

    0:默认值,由Linux内核通过一些启发式算法来决定是否超售和超售的大小,一般允许轻微的超售,拒绝一些明显不可能提供的请求,同时做一些规则限制,比如不同用户overcommit的大小也不一样。

    1:允许,不做限制的超售,当然这个也不是无限大,还受到寻址空间的限制,32位系统最大可能只有4G,64位系统大概16T左右。

    2:禁止,禁止超售,系统能够分配的内存不会超过swap+实际物理内存*overcommit_ratio,该值可以通过/proc/sys/vm/overcommit_ratio设置,默认50%。

    如何修改该参数:

    编辑 /etc/sysctl.conf                                                                                                                                                                                                                                           添加 vm.overcommit_memory=1   

    或者 sysctl vm.overcommit_memory=1   

    或者 echo 1 > /proc/sys/vm/overcommit_memory        

    以上动作完成后,  使用  sysctl -p 使新的参数生效。

  • 相关阅读:
    mac使用vnc远程登录ubuntu16.04桌面
    last的用法
    MAC笔记本安装telnet
    lsyncd自动同步配置
    四则运算——安卓版
    敏捷开发方法综述
    数组2——数组首尾相接,求最大子数组
    数组1——求一个数组的最大子数组
    《构建之法》阅读笔记04
    学习进度条——第四周
  • 原文地址:https://www.cnblogs.com/kzwrcom/p/6422966.html
Copyright © 2020-2023  润新知