I shall do that. Thanks. With the knowledge about "processes=", I've tuned my actual Linux server to eliminate the 10x slowdown. As it turns out, for my 2.4GHz quad-core Xeon with 4GB RAM, "processes=2" works best. I found that any other value (3, 4, 5) gave very inconsistent results–sometimes I would get 1x (the ideal) and sometimes I would get 10x. Very bizarre.
"processes=2" is counter-intuitive. After all, I have 4 cores. Why shouldn't "processes=4" be good? Anyway, not only is the shipping code fast, but I find that my overall web2py app feels a lot snappier. Is it just my imagination? If "processes=2" is boosting the speed of Python in general, then you would expect all of web2py to benefit. So maybe it's not my imagination. Anyway, the takeaway, I think, is that you must tune the Apache configuration for the particular server hardware that you have. The default "processes=1" is not good enough. On Tuesday, 18 March 2014 22:37:58 UTC-4, Massimo Di Pierro wrote: > > Thank you for all your tests. You should write a summary of your results > with recommendations for Apache users. > > On Tuesday, 18 March 2014 19:44:29 UTC-5, horridohobbyist wrote: >> >> Done. With processes=3, the 10x discrepancy is eliminated! (And this is >> in a Linux VM configured for 1 CPU.) >> >> >> On Tuesday, 18 March 2014 16:26:24 UTC-4, Michele Comitini wrote: >>> >>> > WSGIDaemonProcess hello user=www-data group=www-data threads=5 >>> >>> with web2py try the following instead: >>> WSGIDaemonProcess hello user=www-data group=www-data processes=<number >>> of cores + 1> threads=(0 or 1) >>> >>> If it's faster, then the GIL must be the cause. flask by default has >>> much less features active (session for instance) >>> >>> >>> >>> 2014-03-18 21:04 GMT+01:00 horridohobbyist <horrido...@gmail.com>: >>> > I took the shipping code that I ran in Flask (without Apache) and >>> adapted it >>> > to run under Apache as a Flask app. That way, I'm comparing apples to >>> > apples. I'm comparing the performance of the shipping code between >>> Flask and >>> > web2py. >>> > >>> > Below, I've included the 'default' file from Apache2/sites-available >>> for >>> > Flask. >>> > >>> > Basically, the code in Flask executes 10x faster than the same code in >>> > web2py. So my question is: if Apache is at fault for the web2py app's >>> slow >>> > performance, why doesn't Apache hurt the Flask app's performance? >>> (This >>> > doesn't seem to be related to GIL or WSGI.) >>> > >>> > >>> > <VirtualHost *:80> >>> > ServerName 10.211.55.7 >>> > WSGIDaemonProcess hello user=www-data group=www-data threads=5 >>> > WSGIScriptAlias / /home/richard/welcome/hello.wsgi >>> > >>> > <Directory /home/richard/welcome> >>> > Order Allow,Deny >>> > Allow from all >>> > </Directory> >>> > </VirtualHost> >>> > >>> > -- >>> > Resources: >>> > - http://web2py.com >>> > - http://web2py.com/book (Documentation) >>> > - http://github.com/web2py/web2py (Source code) >>> > - https://code.google.com/p/web2py/issues/list (Report Issues) >>> > --- >>> > You received this message because you are subscribed to the Google >>> Groups >>> > "web2py-users" group. >>> > To unsubscribe from this group and stop receiving emails from it, send >>> an >>> > email to web2py+un...@googlegroups.com. >>> > For more options, visit https://groups.google.com/d/optout. >>> >> -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.