yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #61419
[Bug 1663465] [NEW] [performance improvement] update neutron-openvswitch-agent's AsyncProcess
Public bug reported:
neutron-openvswitch-agent' rpc_loop loops every 2 seconds by default.
In every loop, the function invocation will do every time: _agent_has_updates -> polling_manager.is_polling_required -> self._monitor.has_updates -> self.is_active() -> self.pid -> utils.get_root_helper_child_pid -> find_child_pids -> execute 'ps --ppid <pid> -o pid=' command.
The command ('ps --ppid <pid> -o pid=') execution is heavy especially for high load server, I have 800 HA vRouters in my network node. Every time I use top command to see server load, I will always find ps process with high CPU usage, and the every rpc_loop will takes 8+ seconds according to the neutron-openvswitch-agent log.
So we need to find a way to avoid this invocation.
In class AsyncProcess, we can get the pid when spawn the child process
to avoid getting pid every time using ps command.
** Affects: neutron
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1663465
Title:
[performance improvement] update neutron-openvswitch-agent's
AsyncProcess
Status in neutron:
New
Bug description:
neutron-openvswitch-agent' rpc_loop loops every 2 seconds by default.
In every loop, the function invocation will do every time: _agent_has_updates -> polling_manager.is_polling_required -> self._monitor.has_updates -> self.is_active() -> self.pid -> utils.get_root_helper_child_pid -> find_child_pids -> execute 'ps --ppid <pid> -o pid=' command.
The command ('ps --ppid <pid> -o pid=') execution is heavy especially for high load server, I have 800 HA vRouters in my network node. Every time I use top command to see server load, I will always find ps process with high CPU usage, and the every rpc_loop will takes 8+ seconds according to the neutron-openvswitch-agent log.
So we need to find a way to avoid this invocation.
In class AsyncProcess, we can get the pid when spawn the child process
to avoid getting pid every time using ps command.
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1663465/+subscriptions
Follow ups