> 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
