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 (or memory.memsw.limit_in_bytes slightly higher). 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 (e.g. echo 6442450944 > /mnt/cgroups/memory/apache/ memory.memsw.limit_in_bytes) which does appear to work , but would prefer a permanent solution. I have been following this RHEL documentation: http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/sec-memory.html Thanks, Andrew Martin ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ Libcg-devel mailing list Libcg-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libcg-devel