> Hello Mikko, > > You are right, I looked it up and there a lot of people having the same > situation. > I'll try with other VPS providers as apparently it depends on the VPS > provider. > Do you think I can do something on my side to block this swapping, or > should I just switch provider ? > > Thanks !
uWSGI has the --never-swap option. But take in account if your VPS has few memory you can easily crash it. > > On Thu, 7 Aug 2014 00:44:48 +0300, Mikko Ohtamaa > <[email protected]> wrote : > >> Hi, >> >> I have not withnessed this on uWSGI itself, but with other virtual >> servers and Google App Engine. Basically the host reclaims all the >> resources from VPN (memory, CPU). Your virtual machine is effectively >> swapped out. >> >> When the first request hits your VPS everything must be swapped back >> to memory in order to processe the request. >> >> You can check if this is a VPS problem to see if you can repeat the >> issue on non-VPS server (or on a different hosting provider). >> >> -Mikko >> >> >> On 7 August 2014 00:08, Desktop Ready <[email protected]> wrote: >> >> > Hello, >> > >> > I am building my website with the following approach: >> > Nginx -> uWSGI -> Django -> PostgreSQL >> > >> > Everything works well but I have one odd problem: it seems that the >> > first request after a long idle time (>10-20 mn) is always very slow >> > (page load in 30 seconds instead of 1 second). >> > >> > Strangely it doesn't happen if I make a request, restart uWSGI and >> > make another request. So it is not because of Django lazy >> > loading/import. >> > >> > After some debug it is not because of Nginx or because of >> > PostgreSQL. So somewhere between them is the problem. >> > >> > Perhaps some too aggressive memory freeing ? I'm on Debian stable >> > with uWSGI 1.2.3, running on a VPS (OpenVZ). >> > >> > Can someone propose a way to identify the problem and solve this ? >> > >> > Here is my uWSGI params: >> > >> > uwsgi_param QUERY_STRING $query_string; >> > uwsgi_param REQUEST_METHOD $request_method; >> > uwsgi_param CONTENT_TYPE $content_type; >> > uwsgi_param CONTENT_LENGTH $content_length; >> > >> > uwsgi_param REQUEST_URI $request_uri; >> > uwsgi_param PATH_INFO $document_uri; >> > uwsgi_param DOCUMENT_ROOT $document_root; >> > uwsgi_param SERVER_PROTOCOL $server_protocol; >> > uwsgi_param HTTPS $https if_not_empty; >> > >> > uwsgi_param REMOTE_ADDR $remote_addr; >> > uwsgi_param REMOTE_PORT $remote_port; >> > uwsgi_param SERVER_PORT $server_port; >> > uwsgi_param SERVER_NAME $server_name; >> > >> > >> > And here is uWSGI configuration: >> > >> > [uwsgi] >> > >> > chdir = /home/user/website >> > module = website.wsgi >> > home = /home/user/.virtualenvs/website >> > plugin = python >> > master = true >> > processes = 4 >> > cpu-affinity = 1 >> > socket = /var/uwsgi/website.sock >> > chmod-socket = 664 >> > vacuum = true >> > env = HTTPS=on >> > post-buffering = 4096 >> > >> > Any hints is welcomed ! >> > >> > Thanks >> > _______________________________________________ >> > uWSGI mailing list >> > [email protected] >> > http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi >> > >> >> >> > _______________________________________________ > uWSGI mailing list > [email protected] > http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi > -- Roberto De Ioris http://unbit.it _______________________________________________ uWSGI mailing list [email protected] http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi
