limit memory via cgroups if available
authorJan Gerber <jgerber@wikimedia.org>
Fri, 21 Dec 2012 10:19:35 +0000 (10:19 +0000)
committerTim Starling <tstarling@wikimedia.org>
Tue, 5 Feb 2013 04:34:52 +0000 (15:34 +1100)
If cgroups are setup use them to limit memory if run via ulimit5.sh
Change I029a3999 enables cgroups on imagescalers

Change-Id: Iaa83812230214e448d436078a06bdc2ae9ae1e38

bin/ulimit5.sh

index fd8aae2..36c3176 100644 (file)
@@ -4,6 +4,15 @@ if [ "$1" -gt 0 ]; then
        ulimit -t "$1"
 fi
 if [ "$2" -gt 0 ]; then
+       if [ -e /sys/fs/cgroup/memory/mediawiki/job/ ]; then
+               mkdir -m 0700 /sys/fs/cgroup/memory/mediawiki/job/$$
+               echo $$ > /sys/fs/cgroup/memory/mediawiki/job/$$/tasks
+               echo "1" > /sys/fs/cgroup/memory/mediawiki/job/$$/notify_on_release
+               #memory
+               echo $(($2*1024)) > /sys/fs/cgroup/memory/mediawiki/job/$$/memory.limit_in_bytes
+               #memory+swap
+               echo $(($2*1024)) > /sys/fs/cgroup/memory/mediawiki/job/$$/memory.memsw.limit_in_bytes
+       fi
        ulimit -v "$2"
 fi
 if [ "$3" -gt 0 ]; then