Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'internal/gitaly/config/cgroups/cgroups.go')
-rw-r--r--internal/gitaly/config/cgroups/cgroups.go31
1 files changed, 25 insertions, 6 deletions
diff --git a/internal/gitaly/config/cgroups/cgroups.go b/internal/gitaly/config/cgroups/cgroups.go
index dcfcdd571..00fb9f45e 100644
--- a/internal/gitaly/config/cgroups/cgroups.go
+++ b/internal/gitaly/config/cgroups/cgroups.go
@@ -2,22 +2,40 @@ package cgroups
// Config is a struct for cgroups config
type Config struct {
- // Count is the number of cgroups to be created at startup
- Count uint `toml:"count"`
// Mountpoint is where the cgroup filesystem is mounted, usually under /sys/fs/cgroup/
Mountpoint string `toml:"mountpoint"`
// HierarchyRoot is the parent cgroup under which Gitaly creates <Count> of cgroups.
// A system administrator is expected to create such cgroup/directory under <Mountpoint>/memory
// and/or <Mountpoint>/cpu depending on which resource is enabled. HierarchyRoot is expected to
// be owned by the user and group Gitaly runs as.
- HierarchyRoot string `toml:"hierarchy_root"`
- // CPU holds CPU resource configurations
- CPU CPU `toml:"cpu"`
- // Memory holds memory resource configurations
+ HierarchyRoot string `toml:"hierarchy_root"`
+ Repositories Repositories `toml:"repositories"`
+ // MemoryBytes is the memory limit for the parent cgroup. 0 implies no memory limit.
+ MemoryBytes int64 `toml:"memory_bytes"`
+ // CPUShares are the shares of CPU the parent cgroup is allowed to utilize. A value of 1024
+ // is full utilization of the CPU. 0 implies no CPU limit.
+ CPUShares uint64 `toml:"cpu_shares"`
+
+ // Deprecated: No longer supported after 15.0
+ Count uint `toml:"count"`
+ CPU CPU `toml:"cpu"`
Memory Memory `toml:"memory"`
}
+// Repositories configures cgroups to be created that are isolated by repository.
+type Repositories struct {
+ // Count is the number of cgroups that will be created for repository-level isolation
+ // of git commands.
+ Count uint `toml:"count"`
+ // MemoryBytes is the memory limit for each cgroup. 0 implies no memory limit.
+ MemoryBytes int64 `toml:"memory_bytes"`
+ // CPUShares are the shares of CPU that each cgroup is allowed to utilize. A value of 1024
+ // is full utilization of the CPU. 0 implies no CPU limit.
+ CPUShares uint64 `toml:"cpu_shares"`
+}
+
// Memory is a struct storing cgroups memory config
+// Deprecated: Not in use after 15.0.
type Memory struct {
Enabled bool `toml:"enabled"`
// Limit is the memory limit in bytes. Could be -1 to indicate unlimited memory.
@@ -25,6 +43,7 @@ type Memory struct {
}
// CPU is a struct storing cgroups CPU config
+// Deprecated: Not in use after 15.0.
type CPU struct {
Enabled bool `toml:"enabled"`
// Shares is the number of CPU shares (relative weight (ratio) vs. other cgroups with CPU shares).