On 8 November 2011 08:31, Evgeny Turnaev <[email protected]> wrote:

> 2011/11/7 Xi Chen <[email protected]>:
> > I have checked my uwsgi process strace again, and found too many this:
> > send(19, "POST /v1/alternative.cgi HTTP/1.1"..., 198, 0) = 198
> > poll([{fd=19, events=POLLOUT}], 1, 1000) = 1 ([{fd=19, revents=POLLOUT}])
> > send(19, "{\"visitor\": \"82d6d2b773b9eab8bdd7"..., 123, 0) = 123
> > poll([{fd=19, events=POLLIN}], 1, 1000) = 1 ([{fd=19, revents=POLLIN}])
> > recv(19, "H"..., 1, 0)                  = 1
> > poll([{fd=19, events=POLLIN}], 1, 1000) = 1 ([{fd=19, revents=POLLIN}])
> > recv(19, "T"..., 1, 0)                  = 1
> > poll([{fd=19, events=POLLIN}], 1, 1000) = 1 ([{fd=19, revents=POLLIN}])
> > recv(19, "T"..., 1, 0)                  = 1
> > poll([{fd=19, events=POLLIN}], 1, 1000) = 1 ([{fd=19, revents=POLLIN}])
> > recv(19, "P"..., 1, 0)                  = 1
> >
> > Looks like instead of recieve entire http header, but receive only one
> byte
> > at a time. Because I call many other external webservices, this could
> cause
> > tons of recv syscalls.
> > Really no clue why it only recv 1 byte. I have checked sysctl and seems
> > pretty fine.
> > Any ideas?
>
> I heard python urllib reads http headers by 1 byte. That will be a lot
> of recv(1)
> if one have a lot of connections. Don`t know if this fixed/not fixed
> but searching in google confirms rumors.
> Althrough i can`t find recv(1) in python urllib. You can confirm this
> doing just urllib fetching without uwsgi and stracing.
>
>
I have just tried on my ubuntu desktop using urllib, urllib2. HTTP headers
can be recv'd:
recv(3, "HTTP/1.1 200 OK\r\nContent-Type: a"..., 8192, 0) = 277

But the same code (same python ver also) I move to Debian lenny production
server, it becomes
recv(19, "H"..., 1, 0)                  = 1
recv(19, "T"..., 1, 0)                  = 1
recv(19, "T"..., 1, 0)                  = 1

It seems only occur when I make a POST request to external webservice, and
only http header cannot be read entirely. Really frustrating.
_______________________________________________
uWSGI mailing list
[email protected]
http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi

Reply via email to