Status module, OS difference


I’m using nginx stub_status module to get graphs on cacti.
I’m also using it on various platforms, like Linux/Solaris/FreeBSD
(someone will say that such a zoo is a bad idea, but still).

Graphs on my cacti looks different for these systems. The graphs
themselves will probably add more distraction so I will show pure

Solaris (this one runs php-fpm plus it serves the distros repository,
most of connections are distro downloads; /dev/poll, multi_accept):

Active connections: 104
server accepts handled requests
58558789 58558789 58528647
Reading: 4 Writing: 100 Waiting: 0

Linux (php-fpm, epoll, multi_accept):

Active connections: 326
server accepts handled requests
1013 1013 1812
Reading: 31 Writing: 2 Waiting: 293

FreeBSD (php-fpm, kqueue, multi_accept):

Active connections: 5
server accepts handled requests
1659837 1659837 1659799
Reading: 0 Writing: 5 Waiting: 0

Notice that everywhere except Linux the number of waiting connections is
0, and on Linux the number of reading connections is significant. That
really looks weird to me, because (I will probably get another wave of
‘man, you really should get rid of this zoo’, and I promise I will)
these servers serve the same backend pool (in the same time the
difference between the total number of connection is normal and I can
explain this). Why is that ? Is that because of the difference in the
way these systems handle connections or is that because of the
difference in platform-specific code (including the code that counts
connections) ?


Posted at Nginx Forum: