Ho una VM CentOS 7 in esecuzione su Hyper-v (nuova installazione). Gli ho assegnato una memoria dinamica da 256 a 2048 MB (la RAM di avvio è impostata su 512 MB). . Dopo l'avvio, il footprint della memoria è piuttosto basso, ma cresce costantemente fino al limite di 2 GB. Quando guardo la memoria all'interno della VM, la maggior parte è gratuita.
Perché? Come posso far funzionare CentOS con la RAM dinamica?
Hyper-V-Manager mi mostra che sono necessari 1594 MB dalla VM e che 1898 MB sono assegnati alla VM. Capisco perché assegna più del necessario (perché è impostato al 20%), ma perché pensa che la VM abbia bisogno di 1594 quando in realtà usa solo ~ 600 MB? La VM è un'installazione minima / solo per console CentOS 7.
Ecco alcune informazioni sulla VM:
$ uname -a
Linux test.local 3.10.0-514.21.1.el7.x86_64 #1 SMP Thu May 25 17:04:51 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
In realtà ci sono 1200 MB di memoria libera:
$ free
total used free shared buff/cache available
Mem: 1990816 558872 1237140 4440 194804 1356912
Swap: 2097148 0 2097148
$ cat /proc/meminfo
MemTotal: 1990816 kB
MemFree: 1237404 kB
MemAvailable: 1357208 kB
Buffers: 76 kB
Cached: 137120 kB
SwapCached: 0 kB
Active: 270656 kB
Inactive: 152568 kB
Active(anon): 214744 kB
Inactive(anon): 75724 kB
Active(file): 55912 kB
Inactive(file): 76844 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 2097148 kB
SwapFree: 2097148 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 286048 kB
Mapped: 41484 kB
Shmem: 4440 kB
Slab: 57640 kB
SReclaimable: 23408 kB
SUnreclaim: 34232 kB
KernelStack: 4208 kB
PageTables: 14508 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 3092556 kB
Committed_AS: 1265440 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 80920 kB
VmallocChunk: 34359647220 kB
HardwareCorrupted: 0 kB
AnonHugePages: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 59328 kB
DirectMap2M: 2037760 kB
DirectMap1G: 0 kB
$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
11 0 0 1237264 76 194760 0 0 3 1 23 65 0 0 100 0 0
Per quanto ho capito, i hv_
moduli del kernel sono gli strumenti LIS necessari per Hyper-V. Ed hv_balloon
è quello necessario per la memoria dinamica.
$ lsmod
Module Size Used by
xt_multiport 12798 1
ip6t_rpfilter 12595 1
ipt_REJECT 12541 2
nf_reject_ipv4 13373 1 ipt_REJECT
ip6t_REJECT 12625 2
nf_reject_ipv6 13717 1 ip6t_REJECT
xt_conntrack 12760 11
ip_set 36439 0
nfnetlink 14696 1 ip_set
ebtable_nat 12807 1
ebtable_broute 12731 1
bridge 107151 1 ebtable_broute
stp 12976 1 bridge
llc 14552 2 stp,bridge
ip6table_nat 12864 1
nf_conntrack_ipv6 18894 7
nf_defrag_ipv6 35104 1 nf_conntrack_ipv6
nf_nat_ipv6 14131 1 ip6table_nat
ip6table_mangle 12700 1
ip6table_security 12710 1
ip6table_raw 12683 1
iptable_nat 12875 1
nf_conntrack_ipv4 19108 6
nf_defrag_ipv4 12729 1 nf_conntrack_ipv4
nf_nat_ipv4 14115 1 iptable_nat
nf_nat 26147 2 nf_nat_ipv4,nf_nat_ipv6
nf_conntrack 111302 6 nf_nat,nf_nat_ipv4,nf_nat_ipv6,xt_conntrack,nf_conntrack_ipv4,nf_conntrack_ipv6
iptable_mangle 12695 1
iptable_security 12705 1
iptable_raw 12678 1
ebtable_filter 12827 1
ebtables 35009 3 ebtable_broute,ebtable_nat,ebtable_filter
ip6table_filter 12815 1
ip6_tables 26901 5 ip6table_filter,ip6table_mangle,ip6table_security,ip6table_nat,ip6table_raw
iptable_filter 12810 1
intel_powerclamp 14419 0
iosf_mbi 13523 0
crc32_pclmul 13113 0
ghash_clmulni_intel 13259 0
aesni_intel 69884 0
lrw 13286 1 aesni_intel
gf128mul 14951 1 lrw
glue_helper 13990 1 aesni_intel
ablk_helper 13597 1 aesni_intel
cryptd 20359 3 ghash_clmulni_intel,aesni_intel,ablk_helper
sg 40721 0
pcspkr 12718 0
hv_utils 24418 0
hv_balloon 21753 0
i2c_piix4 22106 0
i2c_core 40756 1 i2c_piix4
ip_tables 27115 5 iptable_security,iptable_filter,iptable_mangle,iptable_nat,iptable_raw
xfs 985347 2
libcrc32c 12644 1 xfs
sd_mod 46322 3
crc_t10dif 12714 1 sd_mod
crct10dif_generic 12647 0
sr_mod 22416 0
cdrom 42556 1 sr_mod
ata_generic 12910 0
pata_acpi 13038 0
hv_netvsc 40261 0
hyperv_keyboard 12777 0
hid_hyperv 13108 0
hv_storvsc 18032 2
crct10dif_pclmul 14289 1
crct10dif_common 12595 3 crct10dif_pclmul,crct10dif_generic,crc_t10dif
crc32c_intel 22079 1
ata_piix 35038 0
hyperv_fb 17769 1
serio_raw 13462 0
libata 247095 3 pata_acpi,ata_generic,ata_piix
floppy 69417 0
hv_vmbus 397185 7 hv_balloon,hyperv_keyboard,hv_netvsc,hid_hyperv,hv_utils,hyperv_fb,hv_storvsc
fjes 32197 0
dm_mirror 22135 0
dm_region_hash 20862 1 dm_mirror
dm_log 18411 2 dm_region_hash,dm_mirror
dm_mod 114430 8 dm_log,dm_mirror