image_uploader: default multiprocessing.Pool is killing small underclouds
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
tripleo |
Fix Released
|
High
|
Steve Baker |
Bug Description
This bug has been found by Red Hat QE when testing Queens on internal CI.
The original bug report is here: https:/
The issue is when running `openstack overcloud container image upload`, which randomly fails after a few uploads.
The commands needs to be run again, and fails again after a few more uploads.
Looking at the CPU usage, it seems to go over 150% sometimes, where dockerd-current process takes a lot of resources during a short amount of time.
Flavor of the undercloud: 16GB of Ram and 6 vCPUs (undercloud is a VM).
When reducing the multiprocessing
So maybe we could reduce the default to sane values (even if slower) but add options to increase it, undercloud.conf maybe?
Changed in tripleo: | |
assignee: | nobody → Emilien Macchi (emilienm) |
description: | updated |
It looks like upload is CPU bound on dockerd. There is one dockerd worker thread per core, and I suspect one "docker pull" call will split work between all available workers by downloading layers in parallel.
I've got an 8 core undercloud here, I'll come up with a heuristic for pinning the upload workers to the number of cores.