Skip to content

Commit a8dcd79

Browse files
committed
[YUNIKORN-3212] auto update GOMEMLIMIT setting
Document the new percentage setting mark the existing fixed value as deprecated.
1 parent 5b0ddd2 commit a8dcd79

1 file changed

Lines changed: 35 additions & 15 deletions

File tree

docs/user_guide/service_config.md

Lines changed: 35 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -357,39 +357,39 @@ Additionally, garbage collection and memory usage can be tuned as follows
357357
```yaml
358358
# Scheduler container GC configuration
359359
goGC: 100
360-
goMemoryLimit: 1536MiB
360+
goMemoryLimitPercentage: 80
361361
362362
# Web UI container resources
363363
web:
364364
goGC: 100
365-
goMemoryLimit: 200MiB
365+
goMemoryLimitPercentage: 60
366366
367367
# Admission controller GC configuration
368368
admissionController:
369369
goGC: 100
370-
goMemoryLimit: 200MiB
370+
goMemoryLimitPercentage: 60
371371
```
372372

373373
The `goGC`, `web.goGC`, and `admissionController.goGC` settings control the
374374
percentage of new, unallocated heap memory vs. current live memory at which
375-
the Go runtime initates garbage collection for the scheduler, Web UI, and
375+
the Go runtime initiates garbage collection for the scheduler, Web UI, and
376376
Admission Controller, respectively.
377377

378378
The default value of `100` matches the Go runtime default. This value is
379379
passed into the container via the `GOGC` environment variable.
380380

381-
The `goMemoryLimit`, `web.goMemoryLimit`, and
382-
`admissionController.goMemoryLimit` is used to set a soft limit on the
383-
total amount of memory the Go runtime is allowed to consume. This limit
384-
applies to memory managed by the Go runtime. This value should be set
385-
lower than the respective value of `resources.limits.memory` to allow
386-
for transient spikes in memory usage as well as memory usage which is
387-
not managed by the Go runtime.
381+
The `goMemoryLimitPercentage`, `web.goMemoryLimitPercentage`, and
382+
`admissionController.goMemoryLimitPercentage` are used to set a soft limit on
383+
the total amount of memory the Go runtime is allowed to consume. This limit
384+
applies to memory managed by the Go runtime. The setting helps manage transient
385+
spikes in memory usage as well as memory usage which is not managed by the Go
386+
runtime.
388387

389-
Legal values consist of a numeric value in bytes with an optional unit
390-
suffix. The supported suffixes include `B`, `KiB`, `MiB`, `GiB`, and
391-
`TiB`. This value is passsed into the container via the `GOMEMLIMIT`
392-
environment variable.
388+
The value is applied to the `resources.limits.memory` setting for the container
389+
when the pod is created. A value of 80 is interpreted as 80% and is applied to
390+
the `resources.limits.memory`.
391+
The resulting value is the memory limit in bytes, and is passed into the
392+
container via the `GOMEMLIMIT` environment variable.
393393

394394
### Optional features
395395

@@ -447,6 +447,26 @@ yunikornDefaults:
447447
```
448448

449449
### Deprecated settings
450+
451+
#### goMemoryLimit setting (specified value)
452+
453+
**_DEPRECATED in 1.9.0:_** replaced by `goMemoryLimitPercentage`
454+
455+
The `goMemoryLimit`, `web.goMemoryLimit`, and
456+
`admissionController.goMemoryLimit` are used to set a soft limit on the
457+
total amount of memory the Go runtime is allowed to consume. This limit
458+
applies to memory managed by the Go runtime. This value should be set
459+
lower than the respective value of `resources.limits.memory` to allow
460+
for transient spikes in memory usage as well as memory usage which is
461+
not managed by the Go runtime.
462+
463+
Legal values consist of a numeric value in bytes with an optional unit
464+
suffix. The supported suffixes include `B`, `KiB`, `MiB`, `GiB`, and
465+
`TiB`. This value is passsed into the container via the `GOMEMLIMIT`
466+
environment variable.
467+
468+
#### Moved to ConfigMap
469+
450470
The following settings are deprecated, and will be removed from a future
451471
YuniKorn release. They should now be specified in the `yunikorn-configs` ConfigMap
452472
or via the Helm `yunikornDefaults` section:

0 commit comments

Comments
 (0)