linux 触发 Out of memory available Kill process 还有很多内存

clipboard.png

clipboard.png

如图,由于内存不足杀掉了我的进程,但是使用free 查看的时候虽然free不多了,但是available还有很多内存,操作系统不会使用available的内存吗?

杀掉的是我跑在k8s里的进程

阅读 836
评论
    2 个回答

    我重启了下,可用内存变大了,但实际上跑的东西没变少,不知道什么原因

      • 11.1k

      Free 内存是当前不用于任何的内存量。这个数字应该很小,因为没有使用的内存只是浪费了。

      Available 内存是可用于分配给新进程或现有进程的内存量。但需要注意的是,Available 内存是估计的可用于启动新应用程序的内存量,无需交换。与 Buff 或 Free 字段提供的数据不同,此字段考虑了页面缓存,并且由于是正在使用的项目,并非所有可回收的内存块都将被回收再分配。

      如果你是在kubernetes下运行程序,首先要看对每个pod是否设了内存上限,如

      apiVersion: v1
      kind: LimitRange
      metadata:
        name: mem-limit-range
      spec:
        limits:
        - default:
            memory: 512Mi
          defaultRequest:
            memory: 256Mi
          type: Container

      其次你查看free时,是被杀前还是被杀后啊?

        撰写回答

        登录后参与交流、获取后续更新提醒