320GBのメモリを搭載したUbuntuサーバーがあります。このマシンにxen4.4.1をインストールし、2つのDebianVMを実行しました。 1つは+ -100GBのメモリを搭載し、もう1つは+ -200GBを搭載しています。ある時点で、200GBのマシンが128GBしかないことを報告するまで、すべてが正常に機能しました。サーバーの稼働時間は144日で、先月のどこかで70GBを超えるメモリが失われました。
dom0で:
$ Sudo xl info
...
total_memory : 327634
free_memory : 16547
...
$ Sudo xl list
Name ID Mem VCPUs State Time(s)
Domain-0 0 510 32 r----- 54.4
mycroft 1 102400 16 -b---- 33.3
adler 2 204000 16 -b---- 34.5
$ uname -a
Linux moriarty 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
VM xlリストによると204000MB):
$ free -m
total used free shared buffers cached
Mem: 128404 6220 122184 0 10 56
-/+ buffers/cache: 6152 122251
Swap: 0 0 0
$ uname -a
Linux adler 3.2.0-4-AMD64 #1 SMP Debian 3.2.65-1+deb7u2 x86_64 GNU/Linux
$ cat /proc/meminfo
MemTotal: 131486352 kB
MemFree: 125117048 kB
Buffers: 11216 kB
Cached: 58016 kB
SwapCached: 0 kB
Active: 6057868 kB
Inactive: 47632 kB
Active(anon): 6036284 kB
Inactive(anon): 324 kB
Active(file): 21584 kB
Inactive(file): 47308 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 12 kB
Writeback: 0 kB
AnonPages: 6036296 kB
Mapped: 14740 kB
Shmem: 344 kB
Slab: 20024 kB
SReclaimable: 6504 kB
SUnreclaim: 13520 kB
KernelStack: 2728 kB
PageTables: 14824 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 65743176 kB
Committed_AS: 91568356 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 214612 kB
VmallocChunk: 34359523687 kB
HardwareCorrupted: 0 kB
AnonHugePages: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 208896000 kB
DirectMap2M: 0 kB
私はすでに両方のサーバーを再起動しましたが、結果はありませんでした。dom0は204gBを報告し続け、マシン自体は128gBを報告します。違いの原因は何ですか?どうすれば修正できますか?
[〜#〜]編集[〜#〜]
Dmesgの出力は私にこれを与えます
[ 0.000000] BIOS-provided physical RAM map:
[ 0.000000] Xen: 0000000000000000 - 00000000000a0000 (usable)
[ 0.000000] Xen: 00000000000a0000 - 0000000000100000 (reserved)
[ 0.000000] Xen: 0000000000100000 - 0000002000000000 (usable)
[ 0.000000] Xen: 0000002000000000 - 00000031ce000000 (unusable)
最後の行の範囲は、不足しているメモリに対応しているようです。
私はdebianwheezy7.8ゲストでも同じ問題を抱えていました。 wheezyバックポートカーネル3.16.0-0.bpo.4-AMD64をインストールすると、問題が解決しました。これはゲストにありました、私はホストに触れませんでした。
次の行を/etc/apt/sources.listに追加します。
deb http://ftp.uk.debian.org/debian/ wheezy-backports main
次に実行します
apt-get update
apt-get -t wheezy-backports install linux-image-AMD64
reboot
記憶が膨らんでいましたか?その場合、「欠落している」メモリは、バルーンドライバによって回収されたメモリである必要があります。
出力を投稿できますかcat /proc/meminfo
「不足している」メモリのあるマシンで?
[〜#〜]編集[〜#〜]
/ proc/meminfoの出力から、バルーンは実際に機能しているようです。
「DirectMap4k」の値を見てください。約200GBのRAMが4kの粒度でMMUによって管理されていると報告されています。つまり、仮想化されていますハードウェアは200GBのRAM全体を参照してください。
ただし、「MemTotal」の値は、使用可能なメモリの合計が「わずか」135GBであることを明確に示しています。
これは、カーネル/ドライバレベルの何かが他の用途のためにメモリを「盗んだ」ことを意味します。このような大量の空きメモリは、バルーニングの完璧なターゲットです。 詳細はこちらをご覧ください。