Jarry wrote: > On 21-Nov-11 23:01, Jean Weisbuch wrote: >> Le 21/11/2011 21:51, Jarry a écrit : >>> >>> I'm trying to set-up memory limits for my vserver-guests. >>> Documentation says "Beginning with vs2.3.0.36.29 you should >>> use cgroups to set memory limits". >> >> Here is an example (in this example we will have 1gb of memory on the >> guest and no virtual swap (soft and hard limit are the same, raise >> VDSRAMHARDLIMIT to 2048 if you want 1gb of memory + 1gb of "swap")) : >> (print in mksh is a builtin "equivalent" to echo in bash) >> >> VDSRAMLIMIT="1024" >> VDSRAMHARDLIMIT="1024" >> VDSRAMLIMITBYTES="$(print -- "${VDSRAMLIMIT}*1048576" |bc)" >> VDSRAMHARDLIMITBYTES="$(print -- "${VDSRAMHARDLIMIT}*1048576" |bc)" >> print -- "$VDSRAMLIMITBYTES" >| >> /etc/vservers/${xid}/cgroup/memory.limit_in_bytes >> print -- "$VDSRAMHARDLIMITBYTES" >| >> /etc/vservers/${xid}/cgroup/memory.memsw.limit_in_bytes >> print -- "$VDSRAMLIMITBYTES" >| /dev/cgroup/${xid}/memory.limit_in_bytes >> print -- "$VDSRAMHARDLIMITBYTES" >| >> /dev/cgroup/${xid}/memory.memsw.limit_in_bytes > > Thanks for help, but it still does not work for me. > 1. /dev/cgroups is mounted and visible in host. > 2. util-vserver version is 0.30.216_pre2910 You'll want to upgrade this. 0.30.216-pre3000 should be fine... > 3. I defined 512MB "soft" and 1GB "hard" limits: > > host # more /etc/vservers/vs6/cgroup/memory.limit_in_bytes > 536870912 > host # more /etc/vservers/vs6/cgroup/memory.memsw.limit_in_bytes > 1073741824 > host # more /dev/cgroup/vs6/memory.limit_in_bytes > 536870912 > host # more /dev/cgroup/vs6/memory.memsw.limit_in_bytes > 1073741824 > > Yet in "vs6" guest I still see the whole 16GB RAM & 50GB swap: > > vs6 # free > total used free shared buffers cached > Mem: 16447700 426588 16021112 0 32840 38804 > -/+ buffers/cache: 354944 16092756 > Swap: 52428732 0 52428732 > > > So where is the problem? What am I doing wrong? You have to set the VIRT_MEM flag in order for free to see the virtualized values. -- Daniel Hokka Zakrisson