为什么 free 命令说的与实际消耗的内存不同

耶尔

来自我们 126G 内存的 linux VM rhel 7.5 服务器

我们有奇怪的内存行为,它消耗了所有可用内存,如下所示

free -g
              total        used        free      shared  buff/cache   available
Mem:            126         122           0           1           2       1        
Swap:           10           10           0

我们有 bash 脚本,可以精确计算内存消耗,这是结果

  5.2 MiB +   2.3 MiB =   7.6 MiB       sshd (4)
 10.2 MiB + 159.0 KiB =  10.4 MiB       polkitd
 12.6 MiB + 315.0 KiB =  12.9 MiB       gsd-color
 16.6 MiB +   5.0 KiB =  16.6 MiB       node_exporter
 11.3 MiB +  27.1 MiB =  38.4 MiB       systemd-journald
 40.4 MiB +  15.9 MiB =  56.3 MiB       rsyslogd
 73.3 MiB +   1.4 MiB =  74.7 MiB       python2.7 (3)
226.4 MiB +   2.7 MiB = 229.2 MiB       gnome-shell
  1.4 GiB +   1.1 MiB =   1.4 GiB       df.pll
 15.7 GiB +   9.2 MiB =  15.7 GiB       java (9)
 22.1 GiB +   2.0 MiB =  22.1 GiB       KLP-server

---------------------------------
                         39.6 GiB

top命令中我们可以看到内存实际上消耗了大约40G

那么我们怎么可能free -g看到1G可用的呢?

我们还可以看到的是:

vmware-toolbox-cmd stat balloon
81632 MB 
斯蒂芬·基特
vmware-toolbox-cmd stat balloon
81632 MB 

答案是:您的系统正在使用大约 40GiB 的内存,而 80GiB 是由 VMware 膨胀机制保留的,导致 122GiB 报告“使用” free

气球保留的内存不会被进程消耗,因此它不会出现在psortop的输出中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么lsmem和free显示不同的总内存?

来自分类Dev

为什么 free -h 的输出与 free --giga 不同?

来自分类Dev

为什么free()无法工作?

来自分类Dev

为什么ps和free之间的内存使用量有很大差异?

来自分类Dev

为什么free命令中显示的buff / cache比vmstat和meminfo中列出的要多

来自分类Dev

为什么free不能清除指针值?

来自分类Dev

为什么使用free()导致无限循环

来自分类Dev

尽管在程序中的某个位置使用了free(),但是为什么我的程序仍在C中泄漏内存?

来自分类Dev

free 命令和 top 命令显示的内存有什么区别?

来自分类Dev

动态分配的内存中free()的范围是什么?

来自分类Dev

C-free()对内存有什么作用?

来自分类Dev

动态分配的内存中free()的范围是什么?

来自分类Dev

为什么FreeAndNil实现在Free之前做Nil?

来自分类Dev

为什么默认函数参数在Free Pascal中被拒绝?

来自分类Dev

为什么free(pointer)给运行时错误?

来自分类Dev

为什么Free在Scalaz 7.1.5中不是monad实例?

来自分类Dev

为什么free()影响其他变量的值?

来自分类Dev

为什么在我利用free()时丢失对象的分配?

来自分类Dev

为什么会出现“ free():无效指针”错误?

来自分类Dev

C:为什么在free()上会出现错误

来自分类Dev

为什么free()发布数据但保存next_node值?

来自分类Dev

销毁后为什么不提示“double free”

来自分类Dev

为什么 Free Pascal dylib 需要 DYLD 环境变量?

来自分类Dev

free和vmstat命令之间有什么区别?

来自分类Dev

为什么要进行垃圾收集?为什么编译器不自动插入free()?

来自分类Dev

C ++中的malloc / free:为什么free不接受const void *,还有更好的方法吗?

来自分类Dev

为什么 valgrind 和 gdb 指向不同的代码行?或者:如何在循环中分配指针的 malloc() 和 free() 指针?

来自分类Dev

为什么malloc消耗那么多内存?

来自分类Dev

为什么此应用程序未消耗预期的内存

Related 相关文章

  1. 1

    为什么lsmem和free显示不同的总内存?

  2. 2

    为什么 free -h 的输出与 free --giga 不同?

  3. 3

    为什么free()无法工作?

  4. 4

    为什么ps和free之间的内存使用量有很大差异?

  5. 5

    为什么free命令中显示的buff / cache比vmstat和meminfo中列出的要多

  6. 6

    为什么free不能清除指针值?

  7. 7

    为什么使用free()导致无限循环

  8. 8

    尽管在程序中的某个位置使用了free(),但是为什么我的程序仍在C中泄漏内存?

  9. 9

    free 命令和 top 命令显示的内存有什么区别?

  10. 10

    动态分配的内存中free()的范围是什么?

  11. 11

    C-free()对内存有什么作用?

  12. 12

    动态分配的内存中free()的范围是什么?

  13. 13

    为什么FreeAndNil实现在Free之前做Nil?

  14. 14

    为什么默认函数参数在Free Pascal中被拒绝?

  15. 15

    为什么free(pointer)给运行时错误?

  16. 16

    为什么Free在Scalaz 7.1.5中不是monad实例?

  17. 17

    为什么free()影响其他变量的值?

  18. 18

    为什么在我利用free()时丢失对象的分配?

  19. 19

    为什么会出现“ free():无效指针”错误?

  20. 20

    C:为什么在free()上会出现错误

  21. 21

    为什么free()发布数据但保存next_node值?

  22. 22

    销毁后为什么不提示“double free”

  23. 23

    为什么 Free Pascal dylib 需要 DYLD 环境变量?

  24. 24

    free和vmstat命令之间有什么区别?

  25. 25

    为什么要进行垃圾收集?为什么编译器不自动插入free()?

  26. 26

    C ++中的malloc / free:为什么free不接受const void *,还有更好的方法吗?

  27. 27

    为什么 valgrind 和 gdb 指向不同的代码行?或者:如何在循环中分配指针的 malloc() 和 free() 指针?

  28. 28

    为什么malloc消耗那么多内存?

  29. 29

    为什么此应用程序未消耗预期的内存

热门标签

归档