Java本机内存跟踪,我应该关心保留内存吗?

时间:2019-04-10 08:16:38

标签: java docker memory

我正在尝试在Docker容器中配置Java应用程序的内存使用情况。我正在使用Java本机内存跟踪。我的问题是,我应该只关注已提交的总内存,还是应该关注总保留内存?

当我的docker内存限制为1500mb并且堆大约是它的%35时,nmt如下所示:

Total: reserved=2226606KB, committed=873262KB
-                 Java Heap (reserved=538624KB, committed=447488KB)
                            (mmap: reserved=538624KB, committed=447488KB)

-                     Class (reserved=1168642KB, committed=139334KB)
                            (classes #23623)
                            (malloc=3330KB #33812)
                            (mmap: reserved=1165312KB, committed=136004KB)

-                    Thread (reserved=90735KB, committed=90735KB)
                            (thread #89)
                            (stack: reserved=90346KB, committed=90346KB)
                            (malloc=286KB #446)
                            (arena=103KB #174)

-                      Code (reserved=253962KB, committed=25490KB)
                            (malloc=4362KB #8491)
                            (mmap: reserved=249600KB, committed=21128KB)

-                        GC (reserved=62693KB, committed=59317KB)
                            (malloc=9937KB #105744)
                            (mmap: reserved=52756KB, committed=49380KB)

-                  Compiler (reserved=234KB, committed=234KB)
                            (malloc=103KB #1032)
                            (arena=131KB #5)

-                  Internal (reserved=72800KB, committed=72800KB)
                            (malloc=72768KB #32496)
                            (mmap: reserved=32KB, committed=32KB)

-                    Symbol (reserved=30254KB, committed=30254KB)
                            (malloc=27529KB #291934)
                            (arena=2725KB #1)

-    Native Memory Tracking (reserved=7432KB, committed=7432KB)
                            (malloc=18KB #219)
                            (tracking overhead=7413KB)

-               Arena Chunk (reserved=178KB, committed=178KB)
                            (malloc=178KB)

-                   Unknown (reserved=1052KB, committed=0KB)
                            (mmap: reserved=1052KB, committed=0KB)

/ #

在这种情况下,对于450mb / 550mb的堆内存,java实际上使用的是870mb内存,据我了解,2.2gb是最大的潜在内存使用量。 在这一点上,我是否应该尝试增加docker内存以解决潜在的oom问题或查看870mb的已提交总内存,我是否应该确定自己安全?

0 个答案:

没有答案