Jeffrey Janner wrote:
-----Original Message-----
From: Harris, Jeffrey E. [mailto:jeffrey.har...@mantech.com]
Sent: Thursday, April 04, 2013 10:45 AM
To: Tomcat Users List
Subject: RE: Tomcat and Window nonpaged pool
-----Original Message-----
From: Jeffrey Janner [mailto:jeffrey.jan...@polydyne.com]
Sent: Thursday, April 04, 2013 11:04 AM
To: 'Tomcat Users List'
Subject: Tomcat and Window nonpaged pool
Tomcat 6.0.x (unsure but 33+) with Java 1.6 and Windows 2008 Server.
I've got a customer who is monitoring his system using the Windows
Performance Monitor and is concerned about Tomcat usage of the
nonpaged pool. When monitoring just the Tomcat service, it shows the
line for the pool to slowly rise over time, with hardly ever a drop
that cannot be attributed to a restart of the service (I think).
I know that the nonpaged pool contains structures that should not be
paged out by Windows per this quote:
"Nonpaged pool is therefore always kept present in physical memory
and nonpaged pool virtual memory is assigned physical memory. Common
system data structures stored in nonpaged pool include the kernel and
objects that represent processes and threads, synchronization objects
like mutexes, semaphores and events, references to files, which are
represented as file objects, and I/O request packets (IRPs), which
represent I/O operations."
I am struggling with how this relates to internal workings of Tomcat
&
Java. Obviously, as more processing threads, in this case connectors
not executors, are opened, I would expect to see a rise in this pool
to support all the items it uses. I would expect to see a drop as
usage dropped and connectors were returned (or are they permanent at
6).
Also, I assume processing threads for the Oracle connection pool will
cause this to increase as well, and should drop as the pool size drop
back to normal. Any app-based threads would also cause a rise, but
should drop if the thread is properly terminated.
I guess that this shows a potential memory leak somewhere, I'm just
wondering if there are other things I should look at that could
determine if this is normal behavior or indicative of a real issue.
I do most of my Tomcat app monitoring using jconsole, jvisualvm, and
the Oracle OEM for looking for connection pool leaks there (not an
easy task).
Any help is appreciated.
Jeff
You might try the procedure in this URL to further isolate the issue:
https://www.simple-talk.com/sysadmin/general/troubleshooting-nonpaged-
and-paged-pool-errors-in-windows/
If you have the ability, you might also try disconnecting your Webapps
and Oracle and see if simply running Tomcat by itself still displays
the same behavior; if so, then the issue is probably Tomcat, rather
than a Webapp or Oracle.
If you are not using the latest version of Tomcat 6.0, you might also
want to try upgrading and see if the behavior changes, as it is
possible there are memory leaks in earlier versions of Tomcat (some of
the Tomcat developers can speak to that).
Jeffrey Harris
Oh, I fully expect any problems to be with our webapp and not Tomcat.
The end user should be on a version of Tomcat6 very near the latest release, at
least if they are following our usage recommendations.
Unfortunately, it's at a customer site and I have not access to it. I'm
totally dependent on their willingness to research the issue on their end and
any information about how they are using the app vs. our other customers. I
think they are using a specific feature that is little used by 90% of our
customer base causing the issue.
I ran the same monitor against two of my hosted Tomcat instances, with several
virtual hosts each, meaning a diverse user base. It does not appear to show the
pattern. However, I may need to do a longer run to see if I replicate their
results. My results were over a 15 minute period. Theirs was several days.
Mine remained flat, or nearly so. In fact, I saw a nice little random rise and
fall in the graph right around a central value for both Tomcats. One actually
ended lower than it started.
So, I'm pretty sure it's our app and how it's being used. Just trying to
understand what objects might be getting tossed into this pool, so I know what
to go after.
Does you app connect to anything by itself ?
If so, does it close these connections properly ?
"netstat -pan" might show something.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org