a problem in CPU affinity

Maxim Dounin mdounin at mdounin.ru
Tue Sep 18 08:07:09 UTC 2012


On Mon, Sep 17, 2012 at 03:11:33PM +0800, chen cw wrote:

> Hi,
> When a worker is down, the master will spawn a new one. However, in case
> that we enable CPU affinity, the newly created workers will be bound to the
> same CPU, as the CPU which was bound to by the latest worker spawn at the
> startup or during the reload. This problem still exists in the latest
> version 1.3.6.

Yes, thank you for report.  Quick and dirty fix would be:

--- a/src/os/unix/ngx_process_cycle.c
+++ b/src/os/unix/ngx_process_cycle.c
@@ -371,6 +371,8 @@ ngx_start_worker_processes(ngx_cycle_t *
         ngx_pass_open_channel(cycle, &ch);
+    cpu_affinity = 0;
With this patch workers respawn after crashes won't have cpu 
affinity set, which is probably better.  It's still not ideal, but 
after all real problem is a worker crash, respawn is just an 
emergency mechanism.

Maxim Dounin

More information about the nginx-devel mailing list