Ich bin mit systemd Version 219. root @ EVOvPTX1_RE0-RE0:/var/log # systemctl --Version systemd 219 + PAM -AUDIT -SELINUX + IMA -APPARMOR + SMACK + sysvinit + utmp -LIBCRYPTSETUP -GCRYPT + GNUTLS + ACL + XZ -LZ4 -SECCOMP + BLKID -ELFUTILS + KMOD-IDNsystemd Memory nicht
Ich habe einen Dienst, nennen wir es foo.service, der folgendes hat.
[Service] Memory = 1G
Ich habe Code absichtlich hinzugefügt 1M Speicher 4096 mal zuzuteilen, die 4G Speicher alloc verursacht, wenn ein bestimmtes Ereignis empfangen wird. Die Idee ist, dass nach der Prozess 1G Adressraum verbraucht, Speicherzuweisung würde fehlschlagen. Dies scheint jedoch nicht der Fall zu sein. Ich bin in der Lage, 4G Speicher ohne Probleme zuzuweisen. Das sagt mir, dass das Speicherlimit, das in der -Servicedatei angegeben wird, nicht erzwungen wird.
Kann mir jemand sagen, was ich vermisse?
Ich schaute auf das Proc-Dateisystem - Datei namens Grenzen. Dies zeigt, dass der maximale Adressraum unbegrenzt ist, was auch bestätigt, dass das Speicherlimit nicht erzwungen wird.
Danke für dieses Beispiel. Ich sehe, dass das Zuweisen von 4G ohne Verwendung von RES so bleibt. Nur nachdem ich den Speicher benutzt habe, sehe ich, dass RES zu 4G geht. Aber selbst mit "MemoryLimit = 1G" in der Servicedatei kann VIRT und RES beide 4G erreichen. Ich benutze Systemd 219, das ein bisschen alt ist. Ist systemd 219 nicht in der Lage Ressourcenmanagement zu unterstützen? –