> Hi,
>
> I'm investigating using uwsgi to run Python code in the
> FrameworkBenchmarks
> project <http://www.techempower.com/benchmarks/> which compares web
> frameworks, languages, platforms, web servers and more. I tried running
> another contributor's uwsgi command line, but I can't get uwsgi to fully
> saturate all CPU cores when under load.
>
> uwsgi command line:
>
> --master -L --http :8080 --http-keepalive -p 2 -w hello --add-header
>> "Connection: keep-alive"
>
>

in this way you are benchmarking a proxied setup with an http router on
front managing all of the requests and forwarding them to the workers.

While in term of performance it could be successfull, in terms of core
usage could be suboptimal (even if core-usage is a bit 'strange' for a
benchmark as the operating system scheduler chooses the process to give
cpu to using really complex algorithms).

The "right" command line would be:

--master -L --http-socket :8080 -p 2 -w hello

(keep-alive is useless as this is an in-process non-persistent parser)

If you want to test the http router (something lot of users use on
production) you may want to use --http-processes 2 (this time keepalives
work)

With this setup the httprouter too will use 2 processes, but again 'cpu
cores' usage could be irrelevant.

If you really want to map processes to cpu's you may want to use the
--cpu-affinity, but as you are testing it on a virtual system, the option
could be useless.

By the way, are you aware that uWSGI allows fine grained tuning of
basically everything ? if you publish some benchmark about it, be prepared
to someone suggesting the most "exotic" configuration options :)

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

Reply via email to