summaryrefslogtreecommitdiff
path: root/man/systemd.resource-control.xml
Commit message (Collapse)AuthorAgeFilesLines
* man: update list of supported controllersAnita Zhang2020-03-051-6/+5
|
* man: document the limits of the block device discovery for IO cgroup optionsLennart Poettering2020-01-171-0/+14
| | | | Fixes: #14271
* man: link to specific sections of cgroups-v2 documentZbigniew Jędrzejewski-Szmek2020-01-091-11/+12
| | | | | | The document is rather huge, and a specific link is easier to consume. The form is a bit strange because troff puts the symlink at the bottom, keyed by title, so we need to use the same link target in all places.
* doc: link to html versions of cgroup docsZbigniew Jędrzejewski-Szmek2020-01-091-39/+35
| | | | Also stop linking to some (obsolete) v1 documentation.
* man: stop recommending modprobe -abq in ExecStartPre=Lennart Poettering2020-01-071-3/+8
|
* man: fix a few bogus entries in directives indexZbigniew Jędrzejewski-Szmek2019-11-211-5/+6
| | | | | | When wrong element types are used, directives are sometimes placed in the wrong section. Also, strip part of text starting with "'", which is used in a few places and which is displayed improperly in the index.
* cgroup: docs: memory.high doc fixupsChris Down2019-09-301-2/+2
| | | | | The docs just tautologically call this the "high limit". Just call it throttling as we do in cgroup-v2.rst.
* cgroup: docs: Mention unbounded protection for memory.{low,min}Chris Down2019-09-301-2/+6
| | | | | I got asked why Memory{Low,Min} don't allow "infinity". They do, but the docs don't say that like they already do for Memory{High,Max}.
* cgroup: introduce support for cgroup v2 CPUSET controllerPavel Hrdina2019-09-241-0/+30
| | | | | | | | | | | | | | Introduce support for configuring cpus and mems for processes using cgroup v2 CPUSET controller. This allows users to limit which cpus and memory NUMA nodes can be used by processes to better utilize system resources. The cgroup v2 interfaces to control it are cpuset.cpus and cpuset.mems where the requested configuration is written. However, it doesn't mean that the requested configuration will be actually used as parent cgroup may limit the cpus or mems as well. In order to reflect the real configuration cgroup v2 provides read-only files cpuset.cpus.effective and cpuset.mems.effective which are exported to users as well.
* man: reword DeviceAllow= documentationLennart Poettering2019-07-311-31/+26
| | | | | | | | Don't claim we'd use cgroup.deny much. It's just a way to remove stuff from device lists, which is nothing we allow users to explicitly configure. Also, extend documentation when wildcards may be used, and when not.
* man: document the modprobe hack for DeviceAllow=Lennart Poettering2019-07-231-0/+12
|
* bpf-firewall: custom BPF programs through IP(Ingress|Egress)FilterPath=Kai Lüke2019-06-251-0/+33
| | | | | | | Takes a single /sys/fs/bpf/pinned_prog string as argument, but may be specified multiple times. An empty assignment resets all previous filters. Closes https://github.com/systemd/systemd/issues/10227
* cgroup: Polish hierarchically aware protection docs a bitChris Down2019-05-081-2/+6
| | | | | | | I missed adding a section in `systemd.resource-control` about DefaultMemoryMin in #12332. Also, add a NEWS entry going over the general concept.
* cgroup: Implement default propagation of MemoryLow with DefaultMemoryLowChris Down2019-04-121-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In cgroup v2 we have protection tunables -- currently MemoryLow and MemoryMin (there will be more in future for other resources, too). The design of these protection tunables requires not only intermediate cgroups to propagate protections, but also the units at the leaf of that resource's operation to accept it (by setting MemoryLow or MemoryMin). This makes sense from an low-level API design perspective, but it's a good idea to also have a higher-level abstraction that can, by default, propagate these resources to children recursively. In this patch, this happens by having descendants set memory.low to N if their ancestor has DefaultMemoryLow=N -- assuming they don't set a separate MemoryLow value. Any affected unit can opt out of this propagation by manually setting `MemoryLow` to some value in its unit configuration. A unit can also stop further propagation by setting `DefaultMemoryLow=` with no argument. This removes further propagation in the subtree, but has no effect on the unit itself (for that, use `MemoryLow=0`). Our use case in production is simplifying the configuration of machines which heavily rely on memory protection tunables, but currently require tweaking a huge number of unit files to make that a reality. This directive makes that significantly less fragile, and decreases the risk of misconfiguration. After this patch is merged, I will implement DefaultMemoryMin= using the same principles.
* man: clarify which addresses are affected by IPAddressAllow=/IPAddressDeny=Lennart Poettering2019-03-291-14/+18
| | | | | For ingress traffic it's the source address of IP packets we check, for egress traffic it's the destination address. Mention that.
* man: use same header for all filesZbigniew Jędrzejewski-Szmek2019-03-141-2/+2
| | | | | | | The "include" files had type "book" for some raeason. I don't think this is meaningful. Let's just use the same everywhere. $ perl -i -0pe 's^..DOCTYPE (book|refentry) PUBLIC "-//OASIS//DTD DocBook XML V4.[25]//EN"\s+"http^<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"\n "http^gms' man/*.xml
* man: standarize on one-line license headerZbigniew Jędrzejewski-Szmek2019-03-141-4/+1
| | | | | | No need to waste space, and uniformity is good. $ perl -i -0pe 's|\n+<!--\s*SPDX-License-Identifier: LGPL-2.1..\s*-->|\n<!-- SPDX-License-Identifier: LGPL-2.1+ -->|gms' man/*.xml
* core: add CPUQuotaPeriodSec=Filipe Brandenburger2019-02-141-0/+19
| | | | | | | | | | | | | | | This new setting allows configuration of CFS period on the CPU cgroup, instead of using a hardcoded default of 100ms. Tested: - Legacy cgroup + Unified cgroup - systemctl set-property - systemctl show - Confirmed that the cgroup settings (such as cpu.cfs_period_ns) were set appropriately, including updating the CPU quota (cpu.cfs_quota_ns) when CPUQuotaPeriodSec= is updated. - Checked that clamping works properly when either period or (quota * period) are below the resolution of 1ms, or if period is above the max of 1s.
* man: add referecne to systemd-system.confYu Watanabe2019-02-011-0/+1
|
* cgroup: Add DisableControllers= directive to disable controller in subtreeChris Down2018-12-031-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some controllers (like the CPU controller) have a performance cost that is non-trivial on certain workloads. While this can be mitigated and improved to an extent, there will for some controllers always be some overheads associated with the benefits gained from the controller. Inside Facebook, the fix applied has been to disable the CPU controller forcibly with `cgroup_disable=cpu` on the kernel command line. This presents a problem: to disable or reenable the controller, a reboot is required, but this is quite cumbersome and slow to do for many thousands of machines, especially machines where disabling/enabling a stateful service on a machine is a matter of several minutes. Currently systemd provides some configuration knobs for these in the form of `[Default]CPUAccounting`, `[Default]MemoryAccounting`, and the like. The limitation of these is that Default*Accounting is overrideable by individual services, of which any one could decide to reenable a controller within the hierarchy at any point just by using a controller feature implicitly (eg. `CPUWeight`), even if the use of that CPU feature could just be opportunistic. Since many services are provided by the distribution, or by upstream teams at a particular organisation, it's not a sustainable solution to simply try to find and remove offending directives from these units. This commit presents a more direct solution -- a DisableControllers= directive that forcibly disallows a controller from being enabled within a subtree.
* man: link Delegate= documentation up with the markdown docsLennart Poettering2018-11-261-0/+3
|
* man: also use "yes"/"no" rather than "true"/"false" in man pagesLennart Poettering2018-10-131-6/+6
| | | | | | | | | We usually use yes/no in all our unit files, do the same in the man pages. Triggered by: https://github.com/systemd/systemd/pull/9824#issuecomment-420729987
* core: add IODeviceLatencyTargetSecTejun Heo2018-08-221-5/+24
| | | | | | | This adds support for the following proposed latency based IO control mechanism. https://lkml.org/lkml/2018/6/5/428
* Various accountings are not implied by their controllersRyutaroh Matsumoto2018-07-201-22/+1
| | | The original manpage says "Implies BBBAccounting" many times but actually that accounting is not implied by the respective resource control in v239 with the unified cgroup hierarchy. This commit removes those false explanations.
* man/systemd.resource-control.xml: point user to correct urlChen Qi2018-07-181-1/+2
| | | | | cpu.cfs_quota_us is actually explained in sched-bwc.txt instead of sched-design-CFS.txt.
* core: add MemoryMinTejun Heo2018-07-121-0/+21
| | | | | | | | The kernel added support for a new cgroup memory controller knob memory.min in bf8d5d52ffe8 ("memcg: introduce memory.min") which was merged during v4.18 merge window. Add MemoryMin to support memory.min.
* man: drop mode line in file headersZbigniew Jędrzejewski-Szmek2018-07-031-1/+1
| | | | | This is already included in .dir-locals, so we don't need it in the files themselves.
* Merge pull request #9301 from keszybz/man-drop-authorgroupLennart Poettering2018-06-141-9/+0
|\ | | | | man: drop unused <authorgroup> tags from man sources
| * man: drop unused <authorgroup> tags from man sourcesZbigniew Jędrzejewski-Szmek2018-06-141-9/+0
| | | | | | | | | | | | | | | | | | | | | | | | Docbook styles required those to be present, even though the templates that we use did not show those names anywhere. But something changed semi-recently (I would suspect docbook templates, but there was only a minor version bump in recent years, and the changelog does not suggest anything related), and builds now work without those entries. Let's drop this dead weight. Tested with F26-F29, debian unstable. $ perl -i -0pe 's/\s*<authorgroup>.*<.authorgroup>//gms' man/*xml
* | Drop my copyright headersZbigniew Jędrzejewski-Szmek2018-06-141-2/+0
|/ | | | | | | perl -i -0pe 's/\s*Copyright © .... Zbigniew Jędrzejewski.*?\n/\n/gms' man/*xml git grep -e 'Copyright.*Jędrzejewski' -l | xargs perl -i -0pe 's/(#\n)?# +Copyright © [0-9, -]+ Zbigniew Jędrzejewski.*?\n//gms' git grep -e 'Copyright.*Jędrzejewski' -l | xargs perl -i -0pe 's/\s*\/\*\*\*\s+Copyright © [0-9, -]+ Zbigniew Jędrzejewski[^\n]*?\s*\*\*\*\/\s*/\n\n/gms' git grep -e 'Copyright.*Jędrzejewski' -l | xargs perl -i -0pe 's/\s+Copyright © [0-9, -]+ Zbigniew Jędrzejewski[^\n]*//gms'
* tree-wide: beautify remaining copyright statementsLennart Poettering2018-06-141-1/+1
| | | | | | Let's unify an beautify our remaining copyright statements, with a unicode ©. This means our copyright statements are now always formatted the same way. Yay.
* tree-wide: drop 'This file is part of systemd' blurbLennart Poettering2018-06-141-2/+0
| | | | | | | | | | | | | | | | This part of the copyright blurb stems from the GPL use recommendations: https://www.gnu.org/licenses/gpl-howto.en.html The concept appears to originate in times where version control was per file, instead of per tree, and was a way to glue the files together. Ultimately, we nowadays don't live in that world anymore, and this information is entirely useless anyway, as people are very welcome to copy these files into any projects they like, and they shouldn't have to change bits that are part of our copyright header for that. hence, let's just get rid of this old cruft, and shorten our codebase a bit.
* tree-wide: drop license boilerplateZbigniew Jędrzejewski-Szmek2018-04-061-13/+0
| | | | | | | | | | Files which are installed as-is (any .service and other unit files, .conf files, .policy files, etc), are left as is. My assumption is that SPDX identifiers are not yet that well known, so it's better to retain the extended header to avoid any doubt. I also kept any copyright lines. We can probably remove them, but it'd nice to obtain explicit acks from all involved authors before doing that.
* man: IPAccounting for slices in now allowedZbigniew Jędrzejewski-Szmek2018-02-221-4/+6
| | | | Also split that description into paragraphs by subject.
* man: clarify that the controllers listed on Delegate= might not be the only onesLennart Poettering2017-11-211-3/+4
|
* Add SPDX license identifiers to man pagesZbigniew Jędrzejewski-Szmek2017-11-191-0/+2
|
* man: remove note about CPU controller being unmergedZbigniew Jędrzejewski-Szmek2017-11-191-5/+1
| | | | | | | | https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0d5936344f30aba0f6ddb92b030cb6a05168efe6 In principle we shouldn't merge this until after 4.15 is released, but the chances of a revert upstream are low, and in that unlikely scenario we can just revert this patch, it's a trivial documentation update after all.
* core/cgroup: assigning empty string to Delegate= resets list of controllers ↵Yu Watanabe2017-11-171-1/+2
| | | | | | | | | | | (#7336) Before this, assigning empty string to Delegate= makes no change to the controller list. This is inconsistent to the other options that take list of strings. After this, when empty string is assigned to Delegate=, the list of controllers is reset. Such behavior is consistent to other options and useful for drop-in configs. Closes #7334.
* man: document the new Delegate= syntaxLennart Poettering2017-11-131-7/+24
|
* man: fix typos (#7029)Jakub Wilk2017-10-101-1/+1
|
* man: document the new ip accounting and filting directivesDaniel Mack2017-09-221-0/+117
|
* man: use "filename" not "file name" by defaultZbigniew Jędrzejewski-Szmek2017-09-151-1/+1
| | | | | | | We settled on "filename" and "file system", so change a couple of places for consistency. The exception is when there's an adjective before "file" that binds more strongly then "name": "password file name", "output file name", etc. Those cases are left intact.
* man: explicitly distinguish "implicit dependencies" and "default dependencies"John Lin2017-09-131-4/+11
| | | | Fixes: #6793
* man: use https:// in URLsAsciiWolf2017-02-211-1/+1
|
* man: avoid abbreviated "cgroups" terminology (#4396)Lennart Poettering2016-10-171-7/+5
| | | | | | | | | Let's avoid the overly abbreviated "cgroups" terminology. Let's instead write: "Linux Control Groups (cgroups)" is the long form wherever the term is introduced in prose. Use "control groups" in the short form wherever the term is used within brief explanations. Follow-up to: #4381
* man: add crosslink between systemd.resource-control(5) and systemd.exec(5)Zbigniew Jędrzejewski-Szmek2016-10-151-0/+6
| | | | Fixes #4379.
* core: make settings for unified cgroup hierarchy supersede the ones for ↵Tejun Heo2016-10-141-159/+166
| | | | | | | | | | | | | | legacy hierarchy (#4269) There are overlapping control group resource settings for the unified and legacy hierarchies. To help transition, the settings are translated back and forth. When both versions of a given setting are present, the one matching the cgroup hierarchy type in use is used. Unfortunately, this is more confusing to use and document than necessary because there is no clear static precedence. Update the translation logic so that the settings for the unified hierarchy are always preferred. systemd.resource-control man page is updated to reflect the change and reorganized so that the deprecated settings are at the end in its own section.
* core: introduce MemorySwapMax=WaLyong Cho2016-08-301-0/+18
| | | | | Similar to MemoryMax=, MemorySwapMax= limits swap usage. This controls controls "memory.swap.max" attribute in unified cgroup.
* core: add cgroup CPU controller support on the unified hierarchyTejun Heo2016-08-071-32/+66
| | | | | | | | | | | | | | | | | | | | | | | | | Unfortunately, due to the disagreements in the kernel development community, CPU controller cgroup v2 support has not been merged and enabling it requires applying two small out-of-tree kernel patches. The situation is explained in the following documentation. https://git.kernel.org/cgit/linux/kernel/git/tj/cgroup.git/tree/Documentation/cgroup-v2-cpu.txt?h=cgroup-v2-cpu While it isn't clear what will happen with CPU controller cgroup v2 support, there are critical features which are possible only on cgroup v2 such as buffered write control making cgroup v2 essential for a lot of workloads. This commit implements systemd CPU controller support on the unified hierarchy so that users who choose to deploy CPU controller cgroup v2 support can easily take advantage of it. On the unified hierarchy, "cpu.weight" knob replaces "cpu.shares" and "cpu.max" replaces "cpu.cfs_period_us" and "cpu.cfs_quota_us". [Startup]CPUWeight config options are added with the usual compat translation. CPU quota settings remain unchanged and apply to both legacy and unified hierarchies. v2: - Error in man page corrected. - CPU config application in cgroup_context_apply() refactored. - CPU accounting now works on unified hierarchy.
* Merge pull request #3843 from maxime1986/minor-systemd.resource-controlZbigniew Jędrzejewski-Szmek2016-07-311-3/+11
|\