From: Andrew Martin <andrew.s.martin-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: KAMEZAWA Hiroyuki
<kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
Cc: "cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: Cannot set memory.memsw.limit_in_bytes for a particular cgroup
Date: Tue, 24 Apr 2012 20:00:08 -0500 [thread overview]
Message-ID: <D5FAE552-76FE-43DB-B803-FD6F595C1518@gmail.com> (raw)
In-Reply-To: <4F974836.1090000-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
Hi Kame,
On Apr 24, 2012, at 7:41 PM, KAMEZAWA Hiroyuki <kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org> wrote:
> (2012/04/25 7:47), Andrew Martin wrote:
>
>> Hello,
>>
>>
>> I am running a VM with Ubuntu Server 10.04 amd64. I have installed and
>> configured cgroups to limit the resources available to samba, nfs, and
>> apache. My configuration is as follows:
>> /etc/cgconfig.conf
>> group nfs {
>> memory {
>> memory.limit_in_bytes = 500M;
>> memory.memsw.limit_in_bytes = 1000M;
>> }
>> cpu {
>> cpu.shares = 10;
>> }
>> }
>>
>> group smb {
>> memory {
>> memory.limit_in_bytes = 1500M;
>> memory.memsw.limit_in_bytes = 2000M;
>> }
>> cpu {
>> cpu.shares = 13;
>> }
>> }
>>
>> group apache {
>> memory {
>> memory.limit_in_bytes = 6G;
>> memory.memsw.limit_in_bytes = 6G;
>> memory.swappiness = 5;
>> }
>> cpu {
>> cpu.shares = 100;
>> }
>> }
>>
>>
>> mount {
>> cpu = /mnt/cgroups/cpu;
>> cpuacct = /mnt/cgroups/cpuacct;
>> memory = /mnt/cgroups/memory;
>> cpuset = /mnt/cgroups/cpuset;
>> }
>>
>> /etc/cgrules.conf
>> ## Samba Server
>> root:/usr/sbin/smbd cpu,memory smb/
>> root:/usr/sbin/nmbd cpu,memory smb/
>>
>> ## NFS Server
>> root:/usr/sbin/exportfs cpu,memory nfs/
>> root:/usr/sbin/rpc.mountd cpu,memory nfs/
>> root:/usr/sbin/rpc.nfsd cpu,memory nfs/
>> root:/usr/sbin/rpc.svcgssd cpu,memory nfs/
>> root:nfsd cpu,memory nfs/
>> root:nfsd4 cpu,memory nfs/
>>
>> ## Apache Webserver
>> root:apache2 cpu,memory apache/
>> www-data cpu,memory apache/
>>
>> Both memory.limit_in_bytes and memory.memsw.limit_in_bytes seem to
>> work fine for the smb cgroup, but no matter what values I use for the
>> apache cgroup I cannot set memory.memsw.limit_in_bytes. My goal is to
>> disable apache's ability to swap by setting memory.limit_in_bytes and
>> memory.memsw.limit_in_bytes to the same value. After running "service
>> cgconfig restart" to restart the cgconfig service, I check the value
>> of memory.limit_in_bytes and memory.memsw.limit_in_bytes for the
>> apache group:
>> # cat /mnt/cgroups/memory/apache/memory.limit_in_bytes
>> 6442450944
>> # cat /mnt/cgroups/memory/apache/memory.memsw.limit_in_bytes
>> 9223372036854775807
>>
>> The value for memory.memsw.limit_in_bytes is not being initialized. I
>> cannot find any related errors in /var/log. I have tried a number of
>> different values for memory.memsw.limit_in_bytes, however it will not
>> initialize properly. The only error I can see occurs when I restart
>> the cgroups service:
>> Stopping cgconfig service: rmdir: failed to remove `./smb': Device or
>> resource busy
>> sed: couldn't flush stdout: No such process
>> rmdir: failed to remove `./sysdefault': Device or resource busy
>> sed: couldn't flush stdout: No such process
>> rmdir: failed to remove `./sysdefault': Device or resource busy
>> sed: couldn't flush stdout: Invalid argument
>> rmdir: failed to remove `./sysdefault': Device or resource busy
>> *
>> Starting cgconfig service:
>>
>> What else can I try in order to properly initialize
>> memory.memsw.limit_in_bytes? I can temporarily echo a value to it, but
>> would prefer a permanent solution.
>>
>
>
> Then, Does "echo > ...apache/memory.memsw.limit_in_bytes" works fine ?
> If so, kernel works fine.
>
It appears to work, in that if I cat it after doing so the new value is retained. However, I have not pushed apache hard enough after doing it to see if the limit is really enforced, though I agree it looks like it is being set correctly using this method.
> I'm sorry I'm not libcgroup specialist..but..What happens when you write
>> memory {
>> memory.limit_in_bytes = 6000M;
>> memory.memsw.limit_in_bytes = 6000M;
>> memory.swappiness = 5;
>> }
>
I also tried that as well as specifying the bytes directly, with no improvement. I also tried different values for memory.memsw.limit_in_bytes from 6000 to 6256 in both powers of 2 and 10.
Any other ideas?
Thanks!!!
Andrew
> ?
>
> Thanks,
> -kame
>
next prev parent reply other threads:[~2012-04-25 1:00 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-24 22:47 Cannot set memory.memsw.limit_in_bytes for a particular cgroup Andrew Martin
[not found] ` <CAE+0DR6yyRHGKYiR-svQAdaV2ZqgaTgPvDMwFFmVs6rJG6w0JA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-04-25 0:41 ` KAMEZAWA Hiroyuki
[not found] ` <4F974836.1090000-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2012-04-25 1:00 ` Andrew Martin [this message]
[not found] ` <D5FAE552-76FE-43DB-B803-FD6F595C1518-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2012-04-25 1:27 ` KAMEZAWA Hiroyuki
[not found] ` <4F9752ED.9050800-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2012-04-25 1:46 ` Andrew Martin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=D5FAE552-76FE-43DB-B803-FD6F595C1518@gmail.com \
--to=andrew.s.martin-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
--cc=cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).