Hello, Mark,

Thanks for your attention.

Could you take a look at the class histogram from today's OOME heap dump?
Maybe it could provide some details.
I see a spike in CPU usage at the approximate time the dump was
generated but that might be caused by the garbage collector's futile
attempt to free up memory.

Class Name                                             |   Objects |
Shallow Heap |  Retained Heap
---------------------------------------------------------------------------------------------------
                                                       |           |
           |
org.apache.coyote.RequestInfo                          |     1 118 |
    98 384 | >= 169 690 688
org.apache.coyote.Request                              |     1 118 |
   187 824 | >= 169 564 168
byte[]                                                 |    70 337 |
120 141 712 | >= 120 141 712
org.apache.tomcat.util.net.SecureNioChannel            |       985 |
    47 280 |  >= 59 649 592
char[]                                                 |   128 612 |
55 092 504 |  >= 55 092 504
org.apache.tomcat.util.buf.CharChunk                   |    89 026 |
 4 273 248 |  >= 41 134 168
java.nio.HeapByteBuffer                                |     4 256 |
   204 288 |  >= 33 834 864
org.apache.tomcat.util.net.NioEndpoint$NioBufferHandler|       985 |
    23 640 |  >= 33 482 120
org.apache.catalina.connector.Request                  |     1 118 |
   187 824 |  >= 33 452 000
org.apache.catalina.connector.Response                 |     1 118 |
    71 552 |  >= 28 233 912
org.apache.catalina.connector.OutputBuffer             |     1 118 |
    89 440 |  >= 27 898 496
org.apache.catalina.connector.InputBuffer              |     1 118 |
    80 496 |  >= 27 270 448
sun.security.ssl.SSLEngineImpl                         |       985 |
   133 960 |  >= 25 596 024
sun.security.ssl.EngineInputRecord                     |       985 |
    63 040 |  >= 20 648 288
org.apache.tomcat.util.buf.ByteChunk                   |    99 093 |
 4 756 464 |  >= 15 422 384
java.lang.String                                       |   108 196 |
 2 596 704 |  >= 14 737 456
org.apache.tomcat.util.buf.MessageBytes                |    84 554 |
 4 058 592 |  >= 12 960 440
java.util.HashMap$Node[]                               |     9 139 |
 1 156 352 |  >= 12 864 216
java.util.HashMap                                      |    10 997 |
   527 856 |  >= 12 817 352
java.util.HashMap$Node                                 |    56 583 |
 1 810 656 |  >= 11 484 248
org.apache.catalina.loader.WebappClassLoader           |         2 |
       272 |  >= 10 199 128
org.apache.coyote.http11.InternalNioOutputBuffer       |     1 118 |
    89 440 |   >= 9 811 568
java.util.concurrent.ConcurrentHashMap                 |     3 823 |
   244 672 |   >= 9 646 384
java.util.concurrent.ConcurrentHashMap$Node[]          |     1 295 |
   260 664 |   >= 9 404 616
java.lang.Class                                        |     9 901 |
    85 176 |   >= 9 233 664
java.util.concurrent.ConcurrentHashMap$Node            |    15 554 |
   497 728 |   >= 9 111 176
org.apache.tomcat.util.http.MimeHeaders                |     2 236 |
    53 664 |   >= 7 119 880
org.apache.tomcat.util.http.MimeHeaderField[]          |     2 236 |
   141 248 |   >= 7 066 208
org.apache.tomcat.util.http.MimeHeaderField            |    20 201 |
   484 824 |   >= 6 924 960
org.apache.catalina.loader.ResourceEntry               |     5 133 |
   246 384 |   >= 5 414 616
java.lang.Object[]                                     |    17 925 |
 1 249 176 |   >= 5 046 960
java.io.ByteArrayOutputStream                          |     3 857 |
    92 568 |   >= 4 603 096
org.apache.catalina.webresources.JarResourceSet        |        46 |
     3 312 |   >= 4 576 680
java.text.SimpleDateFormat                             |     3 413 |
   218 432 |   >= 4 236 656
java.text.SimpleDateFormat[]                           |     1 126 |
    36 032 |   >= 4 227 008
sun.security.ssl.HandshakeHash                         |       985 |
    39 400 |   >= 3 895 560
Total: 36 of 9 892 entries; 9 856 more                 | 1 227 954 |
219 995 336 |
---------------------------------------------------------------------------------------------------

2018-03-05 16:59 GMT+02:00 Mark Thomas <ma...@apache.org>:
> That strikes me as odd. The RequestInfo objects are fairly small. They
> are usually part of a much large group of objects but they should appear
> separately in any analysis.
>
> The number of RequestInfo is limited by maxConnections.

Do you think I should try setting maxConnections to a lower limit
instead of the default 10000?

I have configured the executor to maxThreads="20" but that did not help.

Thank you.

>
>> Could you tell me what are these objects for?
>
> Take a look at the Javadoc for the version you are using.
>
>> Should not they be recycled or disposed of?
>
> No. They are re-used across multiple requests allocated to the same
> Processor.
>
> Mark
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to