使用 Linux 3+ 内核后 xen 来宾中分配的内存差异

ana*_*han 6 memory xen linux-kernel

有人可以向我解释为什么相同配置的Guests内存存在差异吗?

  • 管理程序:xen 4.2 64 位
  • VM1:Centos 5.7 和 2.6.18-274.el5xen

从 xen 分配的内存与来宾内部的内存完全相同,524288k (512m):

free -k
         total       used       free     shared    buffers     cached
Mem:        524288     445004      79284          0      18040     182652
-/+ buffers/cache:     244312     279976
Swap:       524280          0     524280
Run Code Online (Sandbox Code Playgroud)

尽管显示:

" Memory: 500984k/524288k available (2533k kernel code, 23212k reserved, 1746k data, 196k init) "
Run Code Online (Sandbox Code Playgroud)

dmesg: http://pastebin.com/FmVRniLJ

问题1:

为什么free显示精确内存,而dmesg清楚地显示内核代码为 2.5MB,保留为 23MB?

  • VM2: Ubuntu 12.04 ,3.2.0-48-

对于相同的资源,带有 pvopskernel 的 Ubuntu 12.04 显示为 501236k。

free -k
         total       used       free     shared    buffers     cached
Mem:        501236     147188     354048          0      12588      87668
-/+ buffers/cache:      46932     454304
Swap:            0          0          0
Run Code Online (Sandbox Code Playgroud)

dmesghttp : //pastebin.com/jgNfcxc5

Memory: 481820k/524288k available (6553k kernel code, 448k absent, 42020k reserved, 6642k data, 924k init)
Run Code Online (Sandbox Code Playgroud)

问题2:

这种行为的原因可能是什么,这是否与 pvops 内核有关,还是因为 Linux 3.0+ 内存管理的变化?