Nginx support multithread

I saw multithread support in the source code, but why multithread is not
supported in current version? And is any one know whether and when
multithread will be supported?

Posted at Nginx Forum:

On Wed, Oct 26, 2011 at 10:49:47AM -0400, wdmchaft wrote:

I saw multithread support in the source code, but why multithread is not
supported in current version?

Because threads support is broken.

And is any one know whether and when
multithread will be supported?

Probably, in 2.0.


Igor S.

On Wed, Oct 26, 2011 at 10:57 AM, Igor S. [email protected] wrote:

And is any one know whether and when
multithread will be supported?

Probably, in 2.0.

What would be the usage of multi-threads?

Multiple worker threads against worker process?

2011/10/27 Brian A. [email protected]:

As far as I understand, nginx is event driven and support a bunch of
different schedule strategies at kernel level… that should be
enough… but in any case… you can always run N nginx bounded to
different cpu’s in case you really needed

Regards

M

On Wed, Oct 26, 2011 at 7:43 PM, Brian A. [email protected] wrote:


nginx mailing list
[email protected]
nginx Info Page


Nunca hubo un amigo que hiciese un favor a un enano, ni un enemigo que
le hiciese un mal, que no se viese recompensado por entero.

On Thu, Oct 27, 2011 at 5:43 AM, Brian A. [email protected] wrote:

On Wed, Oct 26, 2011 at 10:57 AM, Igor S. [email protected] wrote:

And is any one know whether and when
multithread will be supported?

Probably, in 2.0.

What would be the usage of multi-threads?

Mostly for (blocking) disk I/O and other syscalls that have to block
the main thread of an nginx worker :slight_smile:

Regards,
-agentzh

On Oct 27, 2011, at 3:41 AM, agentzh wrote:

What would be the usage of multi-threads?

Mostly for (blocking) disk I/O and other syscalls that have to block
the main thread of an nginx worker :slight_smile:

True. I’ve seen some systems where the overhead of the thread/queue
management was more than just letting the system call block the main
thread. We generally run 2 nginx procs per CPU core.

I just worry about bloat. There is a reason nginx’s market share is
rising and Apache’s is falling.

–Brian

On Thu, Oct 27, 2011 at 03:41:24PM +0800, agentzh wrote:

Mostly for (blocking) disk I/O and other syscalls that have to block
the main thread of an nginx worker :slight_smile:

Yes. Primarily auxiliary threads to offload openning of not recently
used files, disk i/o, etc. Second goal is to make nginx internals being
thread-safe to allow experiments with different processing models.


Igor S.

On Thu, Oct 27, 2011 at 07:06:29AM -0400, Brian A. wrote:

True. I’ve seen some systems where the overhead of the thread/queue management
was more than just letting the system call block the main thread.
Could you eleborate this case ?
For example, on non-SSD disk, I/O blocking may take several
milliseconds,
while very expensive fork() syscall takes about 100-200 microseconds
on modern CPU.


Igor S.