Servers-per-port can consume excessive OS threads
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Object Storage (swift) |
Fix Released
|
Medium
|
Samuel Merritt |
Bug Description
With servers-per-port enabled, the eventlet tpool thread pool size of 20 is excessive. For a servers-per-port deployment, a value of 1 vs. the default of 20 would be ideal.
Currently, an 84-disk chassis, with servers-per-port set to 4 would use up to 84 * 4 * 20 = 6720 OS threads for the kernel to juggle. With the 4 unix processes per disk, there's no real benefit for having more than one OS thread for eventlet tpool operations.
You can set the tpool thread pool size by calling `eventlet.
The object server should either expose a tunable for the set_num_threads(N) value to be set (allowing swift-object-server config writers the ability to not screw up a deployment) or perhaps just pin it to 1 when servers-per-port is enabled in the config.
Changed in swift: | |
importance: | Undecided → High |
Changed in swift: | |
status: | New → Confirmed |
assignee: | nobody → Samuel Merritt (torgomatic) |
Changed in swift: | |
importance: | High → Medium |
Fix proposed to branch: master /review. openstack. org/289664
Review: https:/