The installation of nginx + uwsgi went suprisingly smooth, web2py is 
running with my app now. But unfortunately the issue persists... in this 
setup a single client occupies 50% CPU (~5 times more than lighttpd + 
fastcgi, but better than apache 2 with wsgi). Closing the client-side 
browsers results in a low idle CPU usage, while Apache didn't recover in 
this scenario. I am going to test another database in the next step.

Yes, I developed that app on my Ubuntu VirtualBox with an apache 2.4.18 + 
mysql. It runs very stable and fast in this environment (10 clients => 5% 
CPU).


Am Mittwoch, 15. Februar 2017 06:09:25 UTC+1 schrieb Kiran Subbaraman:
>
> Took a look at the rsn (profile), and yes, almost 99% of the time is spent 
> in `select.select` . This happens to be: 
> https://docs.python.org/2/library/select.html#select.select . Guessing 
> something to do with the network setup ... not sure though.
> The issue doesn't seem to be with your application's code.
>
> Btw, did you try this setup on a VirtualBox / VM , before replicating it 
> on the Pi?
> Maybe a nginx+web2py setup should circumvent this issue. 
>
> Do keep us posted on what you find.
>
> ________________________________________
> Kiran Subbaramanhttp://subbaraman.wordpress.com/about/
>
> On Wed, 15-02-2017 1:12 AM, 'Andy Key' via web2py-users wrote:
>
> Good evening everyone,
> thanks for the kind responses! I was able to check out some of your ideas. 
> All this fixes have been carried out within the mentiond Lighty environmend 
> (Lighttpd 1.4.35 + web2py Raspbian 4.4.38-v7+):
>
> - I turned off migrations and set reload=false in the db.py file
> - I haven't removed all the auth and mail stuff, cause I'am planning to 
> use these features. But for now session.forget() was applied to my scripts
> - I tried Pre-Compilation already before, but did it again yesterday: no 
> impact.
> - It was not possible to use response.json(ret) directly, for any reason 
> my jquery script doesn't accept the header of the returned json file. I 
> haven't analyzed that problem in detail why this happens, but I think thats 
> not the point. The python process shows the same behaviour with or without 
> this change.
> - I installed RunSnakeRun and started the fcgi process via 
> sudo -u www-data python -m cProfile -o rsn fcgihandler.py
> I attached the resulting output file, which I was able to open the rsn 
> file in my Ubuntu 16.10 VirtualBox machine. I can't guess what 
> this<select.select> entry means? Python seems to spend a lot of time there, 
> right?
>
> A new error showed up in the console with the fcgi process started 
> ("broken pipe"). I think it's a result of the not-responding python 
> process: http://pastebin.com/j9pZAWU2
>
> The next step is to try nginx and gdb... I hope I can start to implement 
> this scenario tomorrow evening.
>
>
>
> Am Montag, 13. Februar 2017 17:58:13 UTC+1 schrieb Leonel Câmara: 
>>
>> raspberry pi 3 should be more than enough to run web2py I have it running 
>> an N64 emulator.  
>>
>> I do recommend you go with nginx/uwsgi instead of apache or lighthttpd.   
>>
>> Looking at your code I find nothing that could cause this but I do have a 
>> few recommendations:
>>
>> You could add session.forget() to your controllers since you don't care 
>> about session. You could also simplify things, so:
>>
>> def get_overview_values():
>>     from gluon.serializers import json
>>     livedata = db(db.ec_livedata.id >0).select(orderby=~db.ec_livedata.id
>> , limitby=(0,1)).first() # get last entry of ec_livedata
>>
>>
>>     ret = {
>>         'V_ist':livedata['V_ist'],
>>         'f_fu':livedata['f_fu'],
>>         'dp_4':livedata['dp_4'],
>>         'fuellstand':livedata['fuellstand'],
>>         }
>>     return json(ret)
>>
>>
>> Would become:
>>
>> def get_overview_values():
>>     session.forget()
>>     livedata = db(db.ec_livedata.id >0).select(orderby=~db.ec_livedata.id
>> , limitby=(0,1)).first() # get last entry of ec_livedata
>>     return response.json(livedata)
>>   
>> Another big improvement you could make would be to turn off migrations in 
>> your appconfig.ini and then set reload=False for AppConfig.
>>
>> Then remove all Auth and Mail stuff from db.py since you don't use them 
>> anyway.   
>>
>> Then compile your app.
>>
>> If you make all these changes you application should be extremely fast.  
>>
>> That said this is probably a bug with the way you're running things and I 
>> think you will only fix it by going the nginx/uwsgi-emperor route.
>>
> -- 
> 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 <javascript:>.
> 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.

Reply via email to