On Sat, Jan 04, 2014 at 12:21:30PM +0100, Manlio Perillo wrote: > On 03/01/2014 12:50, Roberto De Ioris wrote: > >[...] > >provate a ridurre a 3 secondi il proxy_connect_timeout di nginx, > > Dato che Linux ignora l'hint sulla backlog, il parametro su cui agire è > proxy_send_timeout. > > Sul wiki di Nginx c'è un commento appropriato riguardo > proxy_connect_timeout: > http://wiki.nginx.org/HttpProxyModule#proxy_connect_timeout > http://wiki.nginx.org/HttpProxyModule#proxy_read_timeout > > Impostare proxy_send_timeout potrebbe non essere efficace, a causa > del buffering effettuato dal kernel. In questo caso occorre > modificare proxy_read_timeout, ma va fatto con cautela per evitare > di mandare in timeout richieste legittime (ma semplicemente lente). > In alternativa si può provare a modificare, dall'applicazione > Python, SO_RCVBUF.
Purtroppo anche la modifica del send_timeout non ha sortito alcun effetto. Non ho provato a modifcare SO_RCVBUF. Ho alla fine preso una strada completamente differente che però in concreto ha dati i risultati desiderati. Ho deciso di creare 2 pool di processi (upstream) differenti uno per i processi lenti ed uno per gli altri. Dal momento che le chiamate lente hanno URL ben definiti, ho deciso di redirigere queste chiamate su un pool di processi differente. In questo modo so per certo che una chiamata veloce non sarà mai rallentata da una lenta e, semplicemnete aumentando i processi lenti posso arrivare a sincerarmi che nessun processo lento abbia una probabilità significativa di trovarsi in coda ad un altro processo lento (da momento che sono relativamente pochi al giorno). Ora possiamo dedicarci a capire cosa hanno di sbagliato i processi lenti... Grazie a Manlio e Roberto per l'aiuto offerto sandro -- Sandro Dentella *:-) http://www.reteisi.org Soluzioni libere per le scuole http://sqlkit.argolinux.org SQLkit home page - PyGTK/python/sqlalchemy _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python