--- mod_fastcgi.c.old 2008-10-14 23:19:49.000000000 +0800 +++ mod_fastcgi.c 2008-10-14 23:19:55.000000000 +0800 @@ -2876,9 +2876,14 @@ /* check the other procs if they have a lower load */ for (proc = proc->next; proc; proc = proc->next) { if (proc->state != PROC_STATE_RUNNING) continue; - if (proc->load < hctx->proc->load) hctx->proc = proc; + /* to be more fair distributed */ + if ((proc->load <= hctx->proc->load) && + (proc->requests < hctx->proc->requests)) + hctx->proc = proc; } + hctx->proc->requests ++; + ret = host->unixsocket->used ? AF_UNIX : AF_INET; if (-1 == (hctx->fd = socket(ret, SOCK_STREAM, 0))) {