Dell - Internal Use - Confidential
Hi All:
I am trying to test Resource Control of system by setting MemoryLimit on my
Debian system. Unfortunately it won't work after my testing. Maybe I am not
configuring right. Please let me know how to fix this.
Here is info for your reference:
1) uname -a
Linux OS10 3.16.7-ckt11 #1 SMP Thu Feb 4 13:32:12 PST 2016 x86_64 GNU/Linux
2) my test program: keeping allocate 2k memory as shown below:
#include
#include
main(int argc, char *argv[])
{
int size = 0, times = 0;
char *buffer = NULL;
size = 2000;
times = 1;
while (1) {
printf("size=%d, times=%d\n", size, times);
buffer = malloc(size);
if (buffer == NULL) {
printf("out of memory\n");
break;
}
else {
printf("buffer=%p\n", buffer);
}
times++;
sleep(3);
}
}
3) /lib/systemd/system/limits.slice
[Unit]
Description=Limited resources Slice
DefaultDependencies=no
Before=slices.target
[Slice]
MemoryAccounting=true
MemoryLimit=20K
4) /lib/system/system/test.service
[Unit]
Description=My Test Service.
DefaultDependencies=no
[Service]
Slice=limits.slice
ExecStart=/tmp/test
KillSignal=SIGKILL
SuccessExitStatus=SIGKILL
FailureAction=reboot-force
# Resource Limitations
LimitCORE=infinity
5) systemctl daemon-reload
6) systemctl restart limits.slice
7) systemctl start test.service
I would like to see test program will be ended after running for a while
keeping allocating 2K memory with configured MemroyLimit as 20K.
But it seems test program is keep running for a long time and it won't be
stopped.
Here is the output of systemctl status test.service
test.service - Test Service.
Loaded: loaded (/lib/systemd/system/test.service; static)
Active: active (running) since Thu 2016-02-18 06:40:49 UTC; 2min 5s ago
Main PID: 2429 (test)
CGroup: /limits.slice/test.service
2429 /tmp/test
Feb 18 06:40:49 OS10 systemd[1]: Started Test Service..
Where does it go wrong or am I missing anything ?
Please help !
Thanks,
Jeremy
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel