Hello Roberto,

well, as my program code became more complex with more async switches and
with more io wait/reads, I got in problem - now sometimes, async requests
can never END. it's more often happened under heavy load, but also
can happen - when almost no load.

I also found, that than more processes I'am running, the more chances
to get these very long running or never finished async requests. is
there some harakiri for so requests? so I don't want to kill
process, I just want to kill asyn request if it's running more than
4-5 seconds e.g.

I tried to use nginx timeouts with buffering off, with hope that they
will terminate running request on uwsgi side - but no luck.

so right now I have very often so situations:
Time taken for tests:   12.938 seconds
Complete requests:      20000
Requests per second:    1545.80 [#/sec] (mean)

Percentage of the requests served within a certain time (ms)
  50%     79
  66%    104
  75%    129
  80%    155
  90%    307
  95%    804
  98%   3236
  99%   7709
 100%  12928 (longest request)

 as you see longest requests are almost like full benchmark running
 time.

 and more worse are so situations, when so requests never ends:
Completed 2000 requests
Completed 4000 requests
Completed 6000 requests
Completed 8000 requests
Completed 10000 requests
Completed 12000 requests
Completed 14000 requests
Completed 16000 requests
Completed 18000 requests
apr_poll: The timeout specified has expired (70007)
Total of 19986 requests completed

so any ideas Roberto how to kill them?

will repeat that it's more often with 4-8 uwsgi processes running (on 8
core machine) and with high concurrences (200-500 threads), but still exists 
when processes is fewer than 4 and
with small concurrences (like 50 simulations threads).

P.S.: also uwsgi from the trunk works 2-3 times slower



_______________________________________________
uWSGI mailing list
[email protected]
http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi

Reply via email to