Project

Profile

Help

Story #1568

closed

As a user, I would like to be able to easily manage Pulp's resource usage.

Added by jcline@redhat.com over 8 years ago. Updated about 5 years ago.

Status:
CLOSED - WONTFIX
Priority:
Normal
Assignee:
-
Category:
-
Sprint/Milestone:
-
Start date:
Due date:
% Done:

0%

Estimated time:
Platform Release:
Groomed:
No
Sprint Candidate:
No
Tags:
Pulp 2
Sprint:
Quarter:

Description

I would like to be able to limit CPU, memory, and network usage across all my Pulp workers. This is easily achieved using control groups (cgroups). This is especially easy with systems using systemd, as each service is automatically placed in a cgroup, and the resources the services use can be managed by systemd. For example, to limit the disk usage of all Pulp workers on a host, you should be able to do "systemctl set-property pulp_workers.service BlockIOReadBandwidth=5M", which limits the total bandwidth usage for all workers to 5 megabytes per second.

The only thing making this difficult right now on systemd platforms is that each worker has its own systemd unit file and is a separate service. This means they are placed in separate cgroups by systemd. To work around this, we need to either explicitly state a single cgroup in each worker's unit file, or have the 'pulp_workers.service' task spawn the child processes (which will automatically inherit the 'pulp_workers.service' cgroup).

For EL6, which doesn't use systemd (but does support cgroups), I believe we'll need to create the cgroup in our init script and add all the worker processes to that cgroup.

It'd also be nice to have some documentation to point people at. This could be pretty minimal, since we just need to explain what services to limit to achieve certain goals.

Also available in: Atom PDF