-
Notifications
You must be signed in to change notification settings - Fork 674
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Downgrade python #288
Downgrade python #288
Conversation
* add vibora this code has been tested and it requires `SO_REUSEPORT` on Ubuntu 16.04, therefore can't guarantee anything about the code. Use it at your own risk. * Update benchmarker.cr * update for vibora * fix routing -> type not required * add vibora * use gunicorn for sanic * use http://meinheld.org/ to enable async networking with django * reuse port on tornado * use meinheld / SO_REUSEPORT on django * use meinheld / SO_REUSEPORT on flask
@waghanza From my tests, this is the best setup for Vibora if you take the average of different benchmarks. There is no science on this and never will, the optimal number of workers is always dependent on the application workload. In my own benchmarks I setup 1 worker per core for each framework to make it fair as you should keep doing. Hope it makes sense :) |
@frnkvieira I understand you use 1 worker per core on you're benchmarks, but should not it be the default ? I mean, at least having a huge workload it is enough no ? |
@waghanza there is a difference between "enough" and "optimal", as I said, this is a personal choice based on my experience but usually throwing a little more workers than CPU cores leads to better results (in average between different kinds of benchmarks, not on hello-world ones). If you look at Gunicorn they also seems to throw one "extra" worker on their formula. (http://docs.gunicorn.org/en/stable/design.html#how-many-workers). |
@frnkvieira sure default behaviour is the core team choice 😜 moreover,
|
* add vibora this code has been tested and it requires `SO_REUSEPORT` on Ubuntu 16.04, therefore can't guarantee anything about the code. Use it at your own risk. * Update benchmarker.cr * update for vibora * fix routing -> type not required * add vibora * use gunicorn for sanic * use http://meinheld.org/ to enable async networking with django * reuse port on tornado * use meinheld / SO_REUSEPORT on django * use meinheld / SO_REUSEPORT on flask
* add vibora this code has been tested and it requires `SO_REUSEPORT` on Ubuntu 16.04, therefore can't guarantee anything about the code. Use it at your own risk. * Update benchmarker.cr * update for vibora * fix routing -> type not required * add vibora * use gunicorn for sanic * use http://meinheld.org/ to enable async networking with django * reuse port on tornado * use meinheld / SO_REUSEPORT on django * use meinheld / SO_REUSEPORT on flask
* Introducing Vibora (#285) * add vibora this code has been tested and it requires `SO_REUSEPORT` on Ubuntu 16.04, therefore can't guarantee anything about the code. Use it at your own risk. * Update benchmarker.cr * update for vibora * fix routing -> type not required * add vibora * use gunicorn for sanic * use http://meinheld.org/ to enable async networking with django * reuse port on tornado * use meinheld / SO_REUSEPORT on django * use meinheld / SO_REUSEPORT on flask * use python36 to test uvloop base frameworks * do not declare extra dependencies * spread vibora on all cores * remove headers specifications on vibora implementations * use default worker numbers on vibora (more performing) * Introducing Vibora (#285) * add vibora this code has been tested and it requires `SO_REUSEPORT` on Ubuntu 16.04, therefore can't guarantee anything about the code. Use it at your own risk. * Update benchmarker.cr * update for vibora * fix routing -> type not required * add vibora * use gunicorn for sanic * use http://meinheld.org/ to enable async networking with django * reuse port on tornado * use meinheld / SO_REUSEPORT on django * use meinheld / SO_REUSEPORT on flask * Introducing Vibora (#285) * add vibora this code has been tested and it requires `SO_REUSEPORT` on Ubuntu 16.04, therefore can't guarantee anything about the code. Use it at your own risk. * Update benchmarker.cr * update for vibora * fix routing -> type not required * add vibora * use gunicorn for sanic * use http://meinheld.org/ to enable async networking with django * reuse port on tornado * use meinheld / SO_REUSEPORT on django * use meinheld / SO_REUSEPORT on flask
* Introducing Vibora (#285) * add vibora this code has been tested and it requires `SO_REUSEPORT` on Ubuntu 16.04, therefore can't guarantee anything about the code. Use it at your own risk. * Update benchmarker.cr * update for vibora * fix routing -> type not required * add vibora * use gunicorn for sanic * use http://meinheld.org/ to enable async networking with django * reuse port on tornado * use meinheld / SO_REUSEPORT on django * use meinheld / SO_REUSEPORT on flask * use python36 to test uvloop base frameworks * do not declare extra dependencies * spread vibora on all cores * remove headers specifications on vibora implementations * use default worker numbers on vibora (more performing) * Introducing Vibora (#285) * add vibora this code has been tested and it requires `SO_REUSEPORT` on Ubuntu 16.04, therefore can't guarantee anything about the code. Use it at your own risk. * Update benchmarker.cr * update for vibora * fix routing -> type not required * add vibora * use gunicorn for sanic * use http://meinheld.org/ to enable async networking with django * reuse port on tornado * use meinheld / SO_REUSEPORT on django * use meinheld / SO_REUSEPORT on flask * Introducing Vibora (#285) * add vibora this code has been tested and it requires `SO_REUSEPORT` on Ubuntu 16.04, therefore can't guarantee anything about the code. Use it at your own risk. * Update benchmarker.cr * update for vibora * fix routing -> type not required * add vibora * use gunicorn for sanic * use http://meinheld.org/ to enable async networking with django * reuse port on tornado * use meinheld / SO_REUSEPORT on django * use meinheld / SO_REUSEPORT on flask
* Introducing Vibora (#285) * add vibora this code has been tested and it requires `SO_REUSEPORT` on Ubuntu 16.04, therefore can't guarantee anything about the code. Use it at your own risk. * Update benchmarker.cr * update for vibora * fix routing -> type not required * add vibora * use gunicorn for sanic * use http://meinheld.org/ to enable async networking with django * reuse port on tornado * use meinheld / SO_REUSEPORT on django * use meinheld / SO_REUSEPORT on flask * use python36 to test uvloop base frameworks * do not declare extra dependencies * spread vibora on all cores * remove headers specifications on vibora implementations * use default worker numbers on vibora (more performing) * Introducing Vibora (#285) * add vibora this code has been tested and it requires `SO_REUSEPORT` on Ubuntu 16.04, therefore can't guarantee anything about the code. Use it at your own risk. * Update benchmarker.cr * update for vibora * fix routing -> type not required * add vibora * use gunicorn for sanic * use http://meinheld.org/ to enable async networking with django * reuse port on tornado * use meinheld / SO_REUSEPORT on django * use meinheld / SO_REUSEPORT on flask * Introducing Vibora (#285) * add vibora this code has been tested and it requires `SO_REUSEPORT` on Ubuntu 16.04, therefore can't guarantee anything about the code. Use it at your own risk. * Update benchmarker.cr * update for vibora * fix routing -> type not required * add vibora * use gunicorn for sanic * use http://meinheld.org/ to enable async networking with django * reuse port on tornado * use meinheld / SO_REUSEPORT on django * use meinheld / SO_REUSEPORT on flask
* Introducing Vibora (#285) * add vibora this code has been tested and it requires `SO_REUSEPORT` on Ubuntu 16.04, therefore can't guarantee anything about the code. Use it at your own risk. * Update benchmarker.cr * update for vibora * fix routing -> type not required * add vibora * use gunicorn for sanic * use http://meinheld.org/ to enable async networking with django * reuse port on tornado * use meinheld / SO_REUSEPORT on django * use meinheld / SO_REUSEPORT on flask * use python36 to test uvloop base frameworks * do not declare extra dependencies * spread vibora on all cores * remove headers specifications on vibora implementations * use default worker numbers on vibora (more performing) * Introducing Vibora (#285) * add vibora this code has been tested and it requires `SO_REUSEPORT` on Ubuntu 16.04, therefore can't guarantee anything about the code. Use it at your own risk. * Update benchmarker.cr * update for vibora * fix routing -> type not required * add vibora * use gunicorn for sanic * use http://meinheld.org/ to enable async networking with django * reuse port on tornado * use meinheld / SO_REUSEPORT on django * use meinheld / SO_REUSEPORT on flask * Introducing Vibora (#285) * add vibora this code has been tested and it requires `SO_REUSEPORT` on Ubuntu 16.04, therefore can't guarantee anything about the code. Use it at your own risk. * Update benchmarker.cr * update for vibora * fix routing -> type not required * add vibora * use gunicorn for sanic * use http://meinheld.org/ to enable async networking with django * reuse port on tornado * use meinheld / SO_REUSEPORT on django * use meinheld / SO_REUSEPORT on flask
* Introducing Vibora (#285) * add vibora this code has been tested and it requires `SO_REUSEPORT` on Ubuntu 16.04, therefore can't guarantee anything about the code. Use it at your own risk. * Update benchmarker.cr * update for vibora * fix routing -> type not required * add vibora * use gunicorn for sanic * use http://meinheld.org/ to enable async networking with django * reuse port on tornado * use meinheld / SO_REUSEPORT on django * use meinheld / SO_REUSEPORT on flask * use python36 to test uvloop base frameworks * do not declare extra dependencies * spread vibora on all cores * remove headers specifications on vibora implementations * use default worker numbers on vibora (more performing) * Introducing Vibora (#285) * add vibora this code has been tested and it requires `SO_REUSEPORT` on Ubuntu 16.04, therefore can't guarantee anything about the code. Use it at your own risk. * Update benchmarker.cr * update for vibora * fix routing -> type not required * add vibora * use gunicorn for sanic * use http://meinheld.org/ to enable async networking with django * reuse port on tornado * use meinheld / SO_REUSEPORT on django * use meinheld / SO_REUSEPORT on flask * Introducing Vibora (#285) * add vibora this code has been tested and it requires `SO_REUSEPORT` on Ubuntu 16.04, therefore can't guarantee anything about the code. Use it at your own risk. * Update benchmarker.cr * update for vibora * fix routing -> type not required * add vibora * use gunicorn for sanic * use http://meinheld.org/ to enable async networking with django * reuse port on tornado * use meinheld / SO_REUSEPORT on django * use meinheld / SO_REUSEPORT on flask
Hi,
This
PR
downgrade python,3.6
instead of3.7
, asuvloop
is not compatible with3.7
(yet ?)MagicStack/uvloop#178
@frnkvieira As far a I understand workers (at least for app I design) SHOULD be 1 per core. Why
vibora
spread oncpu_count() + 2
by default@see https://github.com/vibora-io/vibora/blob/master/vibora/server.py#L282
@greed2411 I can see that on the implementation, you specified headers.
Is there any idea behind that ? (there is no header in doc examples).
Regards,