Welcome! Log In Create A New Profile

Advanced

Re: Identifying "Writing" connections in status stub

Vlad K.
July 30, 2017 06:14AM
On 2017-07-30 11:26, Peter Booth wrote:
> I just reread the thread and realize that you answered q2, and that
> makes the graph even more
> surprising. You say that it son FreeBSD - does this mean that you
> don’t have /proc available to you?
> Is there a procstat or other way to see the equivalent of
> /proc/<pid>/fd - a list of all open file descriptions for a specific
> pid?

procfs is technically available but I'm not enabling it. We do have
sockstat and fstat though that basically can show the same. I have
checked and I don't see any corresponding open connections, that's why I
was wondering about how to list what nginx thinks are connections being
Written to, so I could find what those connections did last in the
access log.

I ran a periodic netstat, sorted the IPs (not removing src ports), and
ran a diff from previous run, keeping only those that aren't +/-. Over
some period of time, the only connections that stayed open for long were
actively using the roundcube webmail which (especially with our
keepalive and http2 enabled) runs a request every minute. But the number
of those did not correspond to the number reported as Writing. Plus
these connections have daily highs and downs. "Writing" in the nginx
status does not correlate with the rest.


> 1. When is the last time that your production nginx was restarted?

In my first post in this thread is a link to the graph (by Munin) where
it shows a dip in Writing, that's where I restarted. Reloading doesn't
change the number of Writing reported by nginx.


> 2. Do you have regular restarts?

No, just regular reloads.


> 3. Is there an obstacle to restarting at some point?

If you're asking me if I can restart nginx to check something, I can do
that.


> 4. Is this a single instance or do you have multiple nginx hosts?

Single instance, one master and one worker thread, in a jail, and
there's no other jail running nginx on the server.


> 5. What 3rd party models are you using?

These are the options/modules ENABLED for the port:

DSO=on: Enable dynamic modules support
FILE_AIO=on: Enable file aio
HTTP=on: Enable HTTP module
HTTPV2=on: Enable HTTP/2 protocol support (SSL req.)
HTTP_ADDITION=on: Enable http_addition module
HTTP_AUTH_REQ=on: Enable http_auth_request module
HTTP_CACHE=on: Enable http_cache module
HTTP_DAV=on: Enable http_webdav module
HTTP_FLV=on: Enable http_flv module
HTTP_GUNZIP_FILTER=on: Enable http_gunzip_filter module
HTTP_GZIP_STATIC=on: Enable http_gzip_static module
HTTP_MP4=on: Enable http_mp4 module
HTTP_RANDOM_INDEX=on: Enable http_random_index module
HTTP_REALIP=on: Enable http_realip module
HTTP_REWRITE=on: Enable http_rewrite module
HTTP_SECURE_LINK=on: Enable http_secure_link module
HTTP_SLICE=on: Enable http_slice module
HTTP_SSL=on: Enable http_ssl module
HTTP_STATUS=on: Enable http_stub_status module
HTTP_SUB=on: Enable http_sub module
IPV6=on: Enable IPv6 support
MAIL=on: Enable IMAP4/POP3/SMTP proxy module
MAIL_IMAP=on: Enable IMAP4 proxy module
MAIL_POP3=on: Enable POP3 proxy module
MAIL_SMTP=on: Enable SMTP proxy module
MAIL_SSL=on: Enable mail_ssl module
STREAM=on: Enable stream module
STREAM_SSL=on: Enable stream_ssl module (SSL req.)
STREAM_SSL_PREREAD=on: Enable stream_ssl_preread module (SSL req.)
THREADS=on: Enable threads support
WWW=on: Enable html sample files

Which is all default for the port, except I also enabled MAIL_* ones as
I'll be needing some mail proxying. But at the moment I have no mail {}
blocks defined. Looking at these I guess I could trim down defaults. Who
needs FLV nowadays :)

I'm not sure which are or aren't 3rd party, but if the descriptions are
fully correct, then it looks like I'm not using any "3rd party" ones,
because we have options that explicitly state when a module id "3rd
party" (and the part I'm not sure is if all are listed as such).

However, it's also compiled with DSO=on, and with the above options, it
produces these:

/usr/local/libexec/nginx/ngx_mail_module.so
/usr/local/libexec/nginx/ngx_stream_module.so

None of which I've loaded at the moment.


> 6. Is the website in question an enterprise app or something that is
> internet visible?

The nginx jail is serving numerous PHP sites and a Python web app, each
in their own jails. Using fastcgi for php-fpm and uwsgi for python, all
over tcp connections between jails.



--
Vlad K.
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx
Subject Author Posted

Identifying "Writing" connections in status stub

Vlad K. July 26, 2017 06:16AM

Re: Identifying "Writing" connections in status stub

pbooth July 26, 2017 07:38AM

Re: Identifying "Writing" connections in status stub

Vlad K. July 26, 2017 12:08PM

Re: Identifying "Writing" connections in status stub

Maxim Dounin July 29, 2017 07:50PM

Re: Identifying "Writing" connections in status stub

Vlad K. July 30, 2017 04:12AM

Re: Identifying "Writing" connections in status stub

pbooth July 30, 2017 05:18AM

Re: Identifying "Writing" connections in status stub

pbooth July 30, 2017 05:28AM

Re: Identifying "Writing" connections in status stub

Vlad K. July 30, 2017 06:14AM

Re: Identifying "Writing" connections in status stub

pbooth July 30, 2017 07:32AM

Re: Identifying "Writing" connections in status stub

Vlad K. July 30, 2017 09:34AM

Re: Identifying "Writing" connections in status stub

pbooth July 30, 2017 02:04PM

Re: Identifying "Writing" connections in status stub

Vlad K. July 31, 2017 04:02AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 215
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready