From e13d19cab384a9f5f8a00436ad39118f342af32c Mon Sep 17 00:00:00 2001 From: Assaf Muller Date: Sun, 16 Mar 2014 13:01:18 +0200 Subject: [PATCH] Change report_interval from 4 to 30, agent_down_time from 9 to 75 report_interval is how often an agent sends out a heartbeat to the service. The Neutron service responds to these 'report_state' RPC messages by updating the agent's heartbeat DB record. The last heartbeat is then compared to the configured agent_down_time to determine if the agent is up or down. The agent's status is used when scheduling networks on DHCP and L3 agents. In the spirit of sane defaults suited for production, these values should be bumped to reduce the load on the Neutron service dramatically, freeing up CPU time to perform intensive operations. DocImpact Closes-Bug: #1293083 Change-Id: I77bcf8f66f74ba55513c989caead1f96c92b9832 --- etc/neutron.conf | 4 ++-- neutron/agent/common/config.py | 2 +- neutron/db/agents_db.py | 2 +- neutron/tests/unit/nec/test_nec_agent.py | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/etc/neutron.conf b/etc/neutron.conf index 0a0cca3f09e..ca59514f820 100644 --- a/etc/neutron.conf +++ b/etc/neutron.conf @@ -225,7 +225,7 @@ notification_driver = neutron.openstack.common.notifier.rpc_notifier # =========== items for agent management extension ============= # Seconds to regard the agent as down; should be at least twice # report_interval, to be sure the agent is down for good -# agent_down_time = 9 +# agent_down_time = 75 # =========== end of items for agent management extension ===== # =========== items for agent scheduler extension ============= @@ -385,7 +385,7 @@ notification_driver = neutron.openstack.common.notifier.rpc_notifier # =========== items for agent management extension ============= # seconds between nodes reporting state to server; should be less than # agent_down_time, best if it is half or less than agent_down_time -# report_interval = 4 +# report_interval = 30 # =========== end of items for agent management extension ===== diff --git a/neutron/agent/common/config.py b/neutron/agent/common/config.py index 33e23945bf2..5f83517d507 100644 --- a/neutron/agent/common/config.py +++ b/neutron/agent/common/config.py @@ -32,7 +32,7 @@ ROOT_HELPER_OPTS = [ ] AGENT_STATE_OPTS = [ - cfg.FloatOpt('report_interval', default=4, + cfg.FloatOpt('report_interval', default=30, help=_('Seconds between nodes reporting state to server; ' 'should be less than agent_down_time, best if it ' 'is half or less than agent_down_time.')), diff --git a/neutron/db/agents_db.py b/neutron/db/agents_db.py index 938c30fa2c8..08358e85f04 100644 --- a/neutron/db/agents_db.py +++ b/neutron/db/agents_db.py @@ -33,7 +33,7 @@ from neutron.openstack.common import timeutils LOG = logging.getLogger(__name__) cfg.CONF.register_opt( - cfg.IntOpt('agent_down_time', default=9, + cfg.IntOpt('agent_down_time', default=75, help=_("Seconds to regard the agent is down; should be at " "least twice report_interval, to be sure the " "agent is down for good."))) diff --git a/neutron/tests/unit/nec/test_nec_agent.py b/neutron/tests/unit/nec/test_nec_agent.py index 2e45306159d..1bace38cc77 100644 --- a/neutron/tests/unit/nec/test_nec_agent.py +++ b/neutron/tests/unit/nec/test_nec_agent.py @@ -196,7 +196,7 @@ class TestNecAgent(TestNecAgentBase): def test_report_state_installed(self): self.loopingcall.assert_called_once_with(self.agent._report_state) instance = self.loopingcall.return_value - instance.start.assert_called_once_with(interval=4) + self.assertTrue(instance.start.called) def _check_report_state(self, cur_ports, num_ports, fail_mode, first=False):