[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-users] Purpose of mem-max command



On Sat, Oct 10, 2015 at 6:36 PM, Simon Hobson <linux@xxxxxxxxxxxxxxxx> wrote:
> Marco Guazzone <marco.guazzone@xxxxxxxxx> wrote:
>
>> I don't understand the behavior of the "xl mem-max" command.
>>
>> The help says: "Set the maximum amount reservation for a domain."
>> But if I try to use it I see no effect on the target domain.
>>
>> It seems that only the "xl mem-set" command has effect on the VM.
>
> That sounds correct. mem-max sets the maximum that mem-set can configure. I 
> can't see that it's that useful from the command line, but I have mem-max set 
> is several of my config files where I want to start a machine with a 
> configured amount of ram, but have the option to increase it later (typically 
> because I've had to cut some machines down to shoehorn another VM onto the 
> host)
>

Hi Simon,

What I don't understand is how to use it effectively.
Could you provide a practical example of how to use it?

Let me show you some of tests I've done (sorry for the length of the
message). Before performing a test, I always reboot the VM to cancel
the effects of previous tests

My CentOS 7 VM, called 'memtest', is statically configured (in the
config file) to have 8GB of memory:
  maxmem = 8192
  memory = 8192
Indeed, once booted I get
$ xl list
  Name                                        ID   Mem VCPUs    State    Time(s)
  Domain-0                                     0 71845    16
r-----   12630.1
  memtest                                     35  7935     4
-b----      10.0

and inside the VM

[root@memtest ~]# free -h
                total        used        free      shared  buff/cache
 available
  Mem:           7.5G        106M        7.4G        8.3M         89M
      7.3G
  Swap:          1.0G          0B        1.0G


- TEST #1
$ xl mem-max memtest 3g
libxl: error: libxl.c:3916:libxl_domain_setmaxmem: memory_static_max
must be greater than or or equal to memory_dynamic_max
: Success
cannot set domid 35 static max memory to : 3g


- TEST #2
$ xl mem-max memtest 10g
$ xl list
  Name                                        ID   Mem VCPUs    State    Time(s)
  Domain-0                                     0 71845    16
r-----   12630.1
  memtest                                     35  7935     4
-b----      10.0

and inside the VM

[root@memtest ~]# free -h
                total        used        free      shared  buff/cache
 available
  Mem:           7.5G        106M        7.4G        8.3M         89M
      7.3G
  Swap:          1.0G          0B        1.0G

Inside the VM, I run a program which tries to allocate 9GB of RAM
(greater than the one statically configured but less than one
dynamically assigned). It does so by calling
"calloc(9*1024*1024*1024,1)".
It fails returning the error: Cannot allocate memory.


- TEST #3
$ xl mem-set memtest 10g
libxl: error: libxl.c:4104:libxl_set_memory_target: memory_dynamic_max
must be less than or equal to memory_static_max


- TEST #4
$ xl mem-max memtest 10g
$ xl mem-set memtest 10g
libxl: error: libxl.c:4104:libxl_set_memory_target: memory_dynamic_max
must be less than or equal to memory_static_max


- TEST #5
$ xl mem-set memtest 4g
$ xl list
  Name                                        ID   Mem VCPUs    State    Time(s)
  Domain-0                                     0 71845    16
r-----   12687.1
  memtest                                     36  3839     4
-b----      15.0

and inside the VM

[root@memtest ~]# free -h
                total        used        free      shared  buff/cache
 available
  Mem:           3.5G        110M        3.3G        8.3M         89M
      3.3G
  Swap:          1.0G          0B        1.0G

Inside the VM, I run a program which tries to allocate 6GB of RAM
(greater than the one dynamically assigned but less than one
statically configured). It does so by calling
"calloc(6*1024*1024*1024,1)".
It fails returning the error: Cannot allocate memory.


- TEST #6
$ xl mem-set memtest 4g
$ xl mem-max memtest 4g
$ xl list
  Name                                        ID   Mem VCPUs    State    Time(s)
  Domain-0                                     0 71845    16
r-----   12697.0
  memtest                                     37  3839     4
-b----      15.7

and inside the VM

[root@memtest ~]# free -h
                total        used        free      shared  buff/cache
 available
  Mem:           3.5G        110M        3.3G        8.3M         89M
      3.3G
  Swap:          1.0G          0B        1.0G

Inside the VM, I run a program which tries to allocate 6GB of RAM
(greater than the one dynamically assigned but less than one
statically configured). It does so by calling
"calloc(6*1024*1024*1024,1)".
It fails returning the error: Cannot allocate memory.


So, from these test it seems that the take-home lesson is to never use
"xl mem-max" since it has no effect.

Where am I wrong?

Thank you very much for your help.

Best,

Marco

_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxx
http://lists.xen.org/xen-users


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.