With a 10 MB memory limit set for the LVE I execute a small PHP app that allocates a large array. Heres what I see:
The PHP (fcgid based) process is allowed to instantiate:
VSZ RSS COMMAND
116164 9336 /usr/bin/php
As you can see the VSZ is ~116 MB and allowed to run even though I limit the LVE to just 10 MB.
# lvectl --list
ID CPU IO MEM EP
default 25 25 262144 5
501 25 25 2560 5
The PHP program runs and is allowed to allocate a 1.3 MB array before it dies with a memory fault error.
# cat /proc/257447/statm
29041 2334 1533 1880 0 1000 0
# top
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
257447 infra 20 0 113m 9336 6132 S 0.0 0.5 0:00.05 php
Why is PHP allowed to run if the total VSZ of PHP itself exceeds the LVE limit? What are we really measuring/limiting?
The PHP (fcgid based) process is allowed to instantiate:
VSZ RSS COMMAND
116164 9336 /usr/bin/php
As you can see the VSZ is ~116 MB and allowed to run even though I limit the LVE to just 10 MB.
# lvectl --list
ID CPU IO MEM EP
default 25 25 262144 5
501 25 25 2560 5
The PHP program runs and is allowed to allocate a 1.3 MB array before it dies with a memory fault error.
# cat /proc/257447/statm
29041 2334 1533 1880 0 1000 0
# top
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
257447 infra 20 0 113m 9336 6132 S 0.0 0.5 0:00.05 php
Why is PHP allowed to run if the total VSZ of PHP itself exceeds the LVE limit? What are we really measuring/limiting?
Comment