Ограничение ресурсов при использовании systemd - PullRequest
0 голосов
/ 04 января 2019

Я запускаю процесс, используя systemd , и этот процесс порождает 10 дочерних процессов. Я явно указал внутри / и т.д. / Systemd / система / myservice.service.d / 10-limits.conf

[Service]
MemoryMax=40M
MemoryLimit=40M

Надеясь, что это ограничит совокупное использование всех процессов, запущенных под этой службой, до 40M.

после выполнения systemctl status myservice Я вижу

● myservice.service - LSB: Start and stop myservice
   Loaded: loaded (/etc/rc.d/init.d/myservice; bad; vendor preset: disabled)
  Drop-In: /etc/systemd/system/myservice.service.d
           └─10-limits.conf
   Active: active (running) since Fri 2019-01-04 03:44:07 PST; 14min ago
     Docs: man:systemd-sysv-generator(8)
  Process: 18236 ExecStop=/etc/rc.d/init.d/myservice stop (code=exited, status=0/SUCCESS)
  Process: 18355 ExecStart=/etc/rc.d/init.d/myservice start (code=exited, status=0/SUCCESS)
   Memory: 99.9M (limit: 40.0M)
   CGroup: /system.slice/myservice.service
           ├─18382 one
           ├─18421 two
           ├─18422 three
           ├─18423 four
           └─18513 ten

Под Memory: 99.9M (limit: 40.0M) Я вижу, что 40M отражает, но общее потребление памяти составляет около 100M.

Я вижу, что ~ 100M исходит от /sys/fs/cgroup/memory/system.slice/myservice.service/memory.limit_in_bytes который имеет 104857600.

Как /sys/fs/cgroup/memory/system.slice/myservice.service/memory.limit_in_bytes получает 104857600? и как мне убедиться, что все, что я передаю в /etc/systemd/system/myservice.service.d/10-limits.conf, имеет приоритет?

...