Does Nginx have separate queuing mechanism for requests?
Maxim Dounin
mdounin at mdounin.ru
Wed Oct 2 15:41:17 UTC 2013
Hello!
On Wed, Oct 02, 2013 at 10:04:23AM -0400, amehzenin wrote:
> Hello.
>
> Consider the following situation: you are deploying application that can
> serve 1 req./sec. What would happen if I send 10 request in 1 second? I
> wrote simple app to test that:
> https://github.com/amezhenin/nginx_slow_upstream .
> This test shows that your requests will be served _in_exact_same_order_
> they were sent.
>
> For now, this looks like Nginx have some kind of queue for requests, but my
> colleague(administrator) sayd that there is no any queues in Nginx. So I
> wrote another question about epoll here:
> http://stackoverflow.com/questions/19114001/does-epoll-preserve-the-order-in-which-fds-was-registered
> . From that discussion I figured that epoll does preserves the order of
> requests.
>
> I have two questions:
> 1) Is there any mistakes in reasoning/code above?
> 2) Does Nginx have some sort of queue for requests on top of epoll? Or Nginx
> uses pure epoll functionality?
There is no queue in nginx, but there is queue in a listen socket
of your backend app. It's called "listen queue" or "backlog" and
likely it's what preserves a request order for you.
--
Maxim Dounin
http://nginx.org/en/donation.html
More information about the nginx
mailing list