Use non-legacy fact name for os_workers
processorcount is a legacy fact name. Lets switch the newer fact name. Change-Id: I310818ffd03ef92890bc5d9f10ad334b5281b126 Related-Bug: #1868454
This commit is contained in:
parent
8fe5b4b04d
commit
3b39a090b1
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# We've found that using $::processorcount for workers/threads can lead to
|
# We've found that using $facts['processors']['count] for workers/threads can lead to
|
||||||
# unexpected memory or process counts for people deploying on baremetal or
|
# unexpected memory or process counts for people deploying on baremetal or
|
||||||
# if they have large number of cpus. This fact allows us to tweak the formula
|
# if they have large number of cpus. This fact allows us to tweak the formula
|
||||||
# used to determine number of workers in a single place but use it across all
|
# used to determine number of workers in a single place but use it across all
|
||||||
@ -11,17 +11,26 @@
|
|||||||
# This fact can be overloaded by an external fact from /etc/factor/facts.d if
|
# This fact can be overloaded by an external fact from /etc/factor/facts.d if
|
||||||
# a user would like to provide their own default value.
|
# a user would like to provide their own default value.
|
||||||
#
|
#
|
||||||
|
#
|
||||||
|
def get_proc_count
|
||||||
|
procs = Facter.value('processors')
|
||||||
|
if procs.key?('count') then
|
||||||
|
procs['count'].to_i
|
||||||
|
else
|
||||||
|
1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
Facter.add(:os_workers_small) do
|
Facter.add(:os_workers_small) do
|
||||||
has_weight 100
|
has_weight 100
|
||||||
setcode do
|
setcode do
|
||||||
processors = Facter.value('processorcount')
|
[ [ (get_proc_count / 4), 2 ].max, 8 ].min
|
||||||
[ [ (processors.to_i / 4), 2 ].max, 8 ].min
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
#
|
#
|
||||||
# The value above for os_workers performs 3x worse in many cases compared to
|
# The value above for os_workers performs 3x worse in many cases compared to
|
||||||
# the prevuous default of $::processorcount.
|
# the previous default of $facts['processors']['count'].
|
||||||
#
|
#
|
||||||
# Based on performance data [1], the following calculation is within 1-2%.
|
# Based on performance data [1], the following calculation is within 1-2%.
|
||||||
#
|
#
|
||||||
@ -33,8 +42,7 @@ end
|
|||||||
Facter.add(:os_workers) do
|
Facter.add(:os_workers) do
|
||||||
has_weight 100
|
has_weight 100
|
||||||
setcode do
|
setcode do
|
||||||
processors = Facter.value('processorcount')
|
[ [ (get_proc_count / 2), 2 ].max, 12 ].min
|
||||||
[ [ (processors.to_i / 2), 2 ].max, 12 ].min
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -44,8 +52,7 @@ end
|
|||||||
Facter.add(:os_workers_large) do
|
Facter.add(:os_workers_large) do
|
||||||
has_weight 100
|
has_weight 100
|
||||||
setcode do
|
setcode do
|
||||||
processors = Facter.value('processorcount')
|
[ (get_proc_count / 2), 1 ].max
|
||||||
[ (processors.to_i / 2), 1 ].max
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -57,8 +64,7 @@ end
|
|||||||
Facter.add(:os_workers_heat_engine) do
|
Facter.add(:os_workers_heat_engine) do
|
||||||
has_weight 100
|
has_weight 100
|
||||||
setcode do
|
setcode do
|
||||||
processors = Facter.value('processorcount')
|
[ [ (get_proc_count / 2), 4 ].max, 24 ].min
|
||||||
[ [ (processors.to_i / 2), 4 ].max, 24 ].min
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -70,7 +76,6 @@ end
|
|||||||
Facter.add(:os_workers_keystone) do
|
Facter.add(:os_workers_keystone) do
|
||||||
has_weight 100
|
has_weight 100
|
||||||
setcode do
|
setcode do
|
||||||
processors = Facter.value('processorcount')
|
[ [ get_proc_count, 4 ].max, 24 ].min
|
||||||
[ [ processors.to_i, 4 ].max, 24 ].min
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -2,11 +2,11 @@ require 'spec_helper'
|
|||||||
|
|
||||||
describe 'os_workers_heat_engine' do
|
describe 'os_workers_heat_engine' do
|
||||||
|
|
||||||
before { Facter.flush }
|
before { Facter.clear }
|
||||||
|
|
||||||
context 'with processorcount=1' do
|
context 'with processorcount=1' do
|
||||||
before do
|
before do
|
||||||
Facter.fact(:processorcount).stubs(:value).returns(1)
|
Facter.fact(:processors).stubs(:value).returns({'count' => 1})
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns a minimum of 2' do
|
it 'returns a minimum of 2' do
|
||||||
@ -16,7 +16,7 @@ describe 'os_workers_heat_engine' do
|
|||||||
|
|
||||||
context 'with processorcount=8' do
|
context 'with processorcount=8' do
|
||||||
before do
|
before do
|
||||||
Facter.fact(:processorcount).stubs(:value).returns(8)
|
Facter.fact(:processors).stubs(:value).returns({'count' => 8})
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns processorcount/2' do
|
it 'returns processorcount/2' do
|
||||||
@ -26,7 +26,7 @@ describe 'os_workers_heat_engine' do
|
|||||||
|
|
||||||
context 'with processorcount=64' do
|
context 'with processorcount=64' do
|
||||||
before do
|
before do
|
||||||
Facter.fact(:processorcount).stubs(:value).returns(64)
|
Facter.fact(:processors).stubs(:value).returns({'count' => 64})
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns a maximum of 24' do
|
it 'returns a maximum of 24' do
|
||||||
|
@ -2,11 +2,11 @@ require 'spec_helper'
|
|||||||
|
|
||||||
describe 'os_workers_keystone' do
|
describe 'os_workers_keystone' do
|
||||||
|
|
||||||
before { Facter.flush }
|
before { Facter.clear }
|
||||||
|
|
||||||
context 'with processorcount=1' do
|
context 'with processorcount=1' do
|
||||||
before do
|
before do
|
||||||
Facter.fact(:processorcount).stubs(:value).returns(1)
|
Facter.fact(:processors).stubs(:value).returns({'count' => 1})
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns a minimum of 4' do
|
it 'returns a minimum of 4' do
|
||||||
@ -16,7 +16,7 @@ describe 'os_workers_keystone' do
|
|||||||
|
|
||||||
context 'with processorcount=8' do
|
context 'with processorcount=8' do
|
||||||
before do
|
before do
|
||||||
Facter.fact(:processorcount).stubs(:value).returns(8)
|
Facter.fact(:processors).stubs(:value).returns({'count' => 8})
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns processorcount' do
|
it 'returns processorcount' do
|
||||||
@ -26,7 +26,7 @@ describe 'os_workers_keystone' do
|
|||||||
|
|
||||||
context 'with processorcount=32' do
|
context 'with processorcount=32' do
|
||||||
before do
|
before do
|
||||||
Facter.fact(:processorcount).stubs(:value).returns(32)
|
Facter.fact(:processors).stubs(:value).returns({'count' => 32})
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns a maximum of 24' do
|
it 'returns a maximum of 24' do
|
||||||
|
@ -2,11 +2,11 @@ require 'spec_helper'
|
|||||||
|
|
||||||
describe 'os_workers_large' do
|
describe 'os_workers_large' do
|
||||||
|
|
||||||
before { Facter.flush }
|
before { Facter.clear }
|
||||||
|
|
||||||
context 'with processorcount=1' do
|
context 'with processorcount=1' do
|
||||||
before do
|
before do
|
||||||
Facter.fact(:processorcount).stubs(:value).returns(1)
|
Facter.fact(:processors).stubs(:value).returns({'count' => 1})
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns a minimum of 1' do
|
it 'returns a minimum of 1' do
|
||||||
@ -16,7 +16,7 @@ describe 'os_workers_large' do
|
|||||||
|
|
||||||
context 'with processorcount=8' do
|
context 'with processorcount=8' do
|
||||||
before do
|
before do
|
||||||
Facter.fact(:processorcount).stubs(:value).returns(8)
|
Facter.fact(:processors).stubs(:value).returns({'count' => 8})
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns processorcount/2' do
|
it 'returns processorcount/2' do
|
||||||
|
@ -2,11 +2,11 @@ require 'spec_helper'
|
|||||||
|
|
||||||
describe 'os_workers_small' do
|
describe 'os_workers_small' do
|
||||||
|
|
||||||
before { Facter.flush }
|
before { Facter.clear }
|
||||||
|
|
||||||
context 'with processorcount=1' do
|
context 'with processorcount=1' do
|
||||||
before do
|
before do
|
||||||
Facter.fact(:processorcount).stubs(:value).returns(1)
|
Facter.fact(:processors).stubs(:value).returns({'count' => 1})
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns a minimum of 2' do
|
it 'returns a minimum of 2' do
|
||||||
@ -16,7 +16,7 @@ describe 'os_workers_small' do
|
|||||||
|
|
||||||
context 'with processorcount=16' do
|
context 'with processorcount=16' do
|
||||||
before do
|
before do
|
||||||
Facter.fact(:processorcount).stubs(:value).returns(16)
|
Facter.fact(:processors).stubs(:value).returns({'count' => 16})
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns processorcount/4' do
|
it 'returns processorcount/4' do
|
||||||
@ -26,7 +26,7 @@ describe 'os_workers_small' do
|
|||||||
|
|
||||||
context 'with processorcount=32' do
|
context 'with processorcount=32' do
|
||||||
before do
|
before do
|
||||||
Facter.fact(:processorcount).stubs(:value).returns(32)
|
Facter.fact(:processors).stubs(:value).returns({'count' => 32})
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns a maximum of 8' do
|
it 'returns a maximum of 8' do
|
||||||
|
@ -2,11 +2,11 @@ require 'spec_helper'
|
|||||||
|
|
||||||
describe 'os_workers' do
|
describe 'os_workers' do
|
||||||
|
|
||||||
before { Facter.flush }
|
before { Facter.clear }
|
||||||
|
|
||||||
context 'with processorcount=1' do
|
context 'with processorcount=1' do
|
||||||
before do
|
before do
|
||||||
Facter.fact(:processorcount).stubs(:value).returns(1)
|
Facter.fact(:processors).stubs(:value).returns({'count' => 1})
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns a minimum of 2' do
|
it 'returns a minimum of 2' do
|
||||||
@ -16,7 +16,7 @@ describe 'os_workers' do
|
|||||||
|
|
||||||
context 'with processorcount=8' do
|
context 'with processorcount=8' do
|
||||||
before do
|
before do
|
||||||
Facter.fact(:processorcount).stubs(:value).returns(8)
|
Facter.fact(:processors).stubs(:value).returns({'count' => 8})
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns processorcount/2' do
|
it 'returns processorcount/2' do
|
||||||
@ -26,7 +26,7 @@ describe 'os_workers' do
|
|||||||
|
|
||||||
context 'with processorcount=32' do
|
context 'with processorcount=32' do
|
||||||
before do
|
before do
|
||||||
Facter.fact(:processorcount).stubs(:value).returns(32)
|
Facter.fact(:processors).stubs(:value).returns({'count' => 32})
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns a maximum of 12' do
|
it 'returns a maximum of 12' do
|
||||||
|
Loading…
x
Reference in New Issue
Block a user