Re: [openstack-dev] design question : green thread model

2015-01-29 Thread Belmiro Moreira
Hi,
nova-conductor starts multiple processes as well.

Belmiro


On Wednesday, January 28, 2015, Johannes Erdfelt johan...@erdfelt.com
wrote:

 On Wed, Jan 28, 2015, murali reddy muralimmre...@gmail.com javascript:;
 wrote:
  On hosts with multi-core processors, it does not seem optimal to run a
  single service instance with just green thread. I understand that on
  controller node, we can run one or more nova services but still it does
 not
  seem to utilize multi-core processors.
 
  Is it not a nova scaling concern?

 It certainly depends on the service.

 nova-compute isn't CPU limited for instance, so utilizing multiple cores
 isn't necessary.

 nova-scheduler generally isn't CPU limited either in our usage (at
 Rackspace), but we use cells and as a result, we run multiple independent
 nova-scheduler services.

 If you've seen some scaling problems, I know the Nova team is open to
 reports. In some cases, patches wouldn't be hard to develop to start
 multiple processes, but no one has ever reported a need beyond nova-api.

 JE


 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


[openstack-dev] design question : green thread model

2015-01-28 Thread murali reddy
Hello,

I am trying to understand how a nova component can be run parallely on a
host. From the developer reference documentation it seems to indicate that
all the openstack services use green thread model of threading. Is it the
only model of parallelism for all the components or multiple processes can
be used for a nova service on a host. Does nova.service which seems to do
os.fork is being used to fork multiple processes for a nova service?

I am newbie so pardon me if the question is asked before.

Thanks
Murali
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] design question : green thread model

2015-01-28 Thread murali reddy
Thanks JE.

On hosts with multi-core processors, it does not seem optimal to run a
single service instance with just green thread. I understand that on
controller node, we can run one or more nova services but still it does not
seem to utilize multi-core processors.

Is it not a nova scaling concern?

On Wed, Jan 28, 2015 at 10:38 PM, Johannes Erdfelt johan...@erdfelt.com
wrote:

 On Wed, Jan 28, 2015, murali reddy muralimmre...@gmail.com wrote:
  I am trying to understand how a nova component can be run parallely on a
  host. From the developer reference documentation it seems to indicate
 that
  all the openstack services use green thread model of threading. Is it the
  only model of parallelism for all the components or multiple processes
 can
  be used for a nova service on a host. Does nova.service which seems to do
  os.fork is being used to fork multiple processes for a nova service?

 Multiple processes are used in some places, for instance, nova-api can
 fork multiple processes. Each process would also use greenthreads as
 well.

 However, most services don't use multiple processes (at least in Nova).

 JE


 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] design question : green thread model

2015-01-28 Thread Johannes Erdfelt
On Wed, Jan 28, 2015, murali reddy muralimmre...@gmail.com wrote:
 I am trying to understand how a nova component can be run parallely on a
 host. From the developer reference documentation it seems to indicate that
 all the openstack services use green thread model of threading. Is it the
 only model of parallelism for all the components or multiple processes can
 be used for a nova service on a host. Does nova.service which seems to do
 os.fork is being used to fork multiple processes for a nova service?

Multiple processes are used in some places, for instance, nova-api can
fork multiple processes. Each process would also use greenthreads as
well.

However, most services don't use multiple processes (at least in Nova).

JE


__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] design question : green thread model

2015-01-28 Thread Johannes Erdfelt
On Wed, Jan 28, 2015, murali reddy muralimmre...@gmail.com wrote:
 On hosts with multi-core processors, it does not seem optimal to run a
 single service instance with just green thread. I understand that on
 controller node, we can run one or more nova services but still it does not
 seem to utilize multi-core processors.
 
 Is it not a nova scaling concern?

It certainly depends on the service.

nova-compute isn't CPU limited for instance, so utilizing multiple cores
isn't necessary.

nova-scheduler generally isn't CPU limited either in our usage (at
Rackspace), but we use cells and as a result, we run multiple independent
nova-scheduler services.

If you've seen some scaling problems, I know the Nova team is open to
reports. In some cases, patches wouldn't be hard to develop to start
multiple processes, but no one has ever reported a need beyond nova-api.

JE


__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] design question : green thread model

2015-01-28 Thread Kevin L. Mitchell
On Wed, 2015-01-28 at 22:48 +0530, murali reddy wrote:
 On hosts with multi-core processors, it does not seem optimal to run a
 single service instance with just green thread. I understand that on
 controller node, we can run one or more nova services but still it
 does not seem to utilize multi-core processors.

It's also worth pointing out that Python itself isn't all that
parallelizable, even using the core threading packages.  (See [1] for a
write-up about the main block for multiple core utilization in Python,
namely the GIL.)  The upshot is that this is why some components like
nova-api have the capability to fork; but the other components that use
green threads are largely IO-bound, so threading based on IO call
blocking makes sense there.

[1] https://wiki.python.org/moin/GlobalInterpreterLock
-- 
Kevin L. Mitchell kevin.mitch...@rackspace.com
Rackspace


__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev