Understanding memory limits in a systemd service: Are they per-process or combined?
1
vote
1
answer
272
views
I have a systemd service named vcoagent.service running on my Linux system, and I'm trying to understand how memory limits specified for the service (
Memory: 300.3M (limit: 500.0M
)) apply to the processes it manages.
Here is the relevant output from systemctl status vcoagent.service:
● vcoagent.service - Observability Agent
Loaded: loaded (/etc/systemd/system/vcoagent.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2024-04-10 11:05:17 +07; 3h 38min ago
Main PID: 134018 (vcoagent)
Tasks: 59 (limit: 18691)
Memory: 300.3M (limit: 500.0M)
CGroup: /system.slice/vcoagent.service
├─134018 /root/vcoagent --opampServer=false --nodeExporter=true
├─134031 /root/vcoagent --opampServer=false --nodeExporter=true
├─134038 /proc/134031/fd/3
└─134050 /proc/134031/fd/8 --config /tmp/otelcol/otelcol-config.yaml
My question is: Does the memory limit (500.0M) apply individually to each process (134018
, 134031
, etc.) managed by the service, or is it a combined limit for all processes together?
For instance, if one process exceeds its individual memory limit but the total memory usage across all processes remains below 500.0M
, will the service be considered within its memory limits?
I would appreciate any clarification on how systemd memory limits are enforced within a service context. Thank you!
Asked by Ackerman Shadow
(11 rep)
Apr 11, 2024, 12:50 AM
Last activity: Apr 11, 2024, 04:33 AM
Last activity: Apr 11, 2024, 04:33 AM