We have an Artemis broker setup running as stateful set with 2 replicas in K8s. 
Each replica runs with 6000 MB of heap and 9000 MB of container memory limit. 
We have some 300K pending messages on a given address and total persistent size 
of it is 1.5 GB on ss-0. Due to some unforeseen issue, we need to purge these 
messages. Whenever we try to purge the messages using broker GUI via operations 
with a flush limit of 10 or 100 or 1000, ss-0 container gets restarted. While 
browsing and purging works fine but it has limited utility as we can't delete 
300k messages that way. But using operations to purge is making ss-0 restart.

We have captured following stat from ss-0 pod before starting purge via 
operations. Any suggestion to fix this issue? Is it a known issue? If we need 
to review or tweak any memory setting?

Memory utilization from broker GUI JMX --> java.lang --> Memory
Heap memory usage    { "init": 6291456000, "committed": 6291456000, "max": 
6291456000, "used": 4304010768 }
Non heap memory usage           { "init": 7667712, "committed": 134938624, 
"max": 1224736768, "used": 130441792 }
Object name     java.lang:type=Memory

Direct memory utilization from broker GUI JMX --> java.nio --> BufferPool
Count   Memory used    Name   Total capacity   Object name
0             0             mapped - 'non-volatile memory'             0        
     java.nio:name=mapped - 'non-volatile memory',type=BufferPool
163        46903209          direct    46903208          
java.nio:name=direct,type=BufferPool
26          274632 mapped              274632 
java.nio:name=mapped,type=BufferPool

Container memory capture via k8s top pod command
> kubectl -n xxx top pod xxxx-ss-0 --containers
POD                NAME                    CPU(cores)   MEMORY(bytes)
xxxx-ss-0          abcd                     2998m        8322Mi

Native memory summary of broker pod
> kubectl -n xxx exec xxxx-ss-0 -- jcmd 1 VM.native_memory summary
Native Memory Tracking:
(Omitting categories weighting less than 1KB)
Total: reserved=7354797KB, committed=6646793KB
       malloc: 99469KB #456441
       mmap:   reserved=7255328KB, committed=6547324KB
-                 Java Heap (reserved=6144000KB, committed=6144000KB)
                            (mmap: reserved=6144000KB, committed=6144000KB)
-                     Class (reserved=427709KB, committed=9213KB)
                            (classes #12081)
                            (  instance classes #11254, array classes #827)
                            (malloc=1725KB #39470) (at peak)
                            (mmap: reserved=425984KB, committed=7488KB)
                            (  Metadata:   )
                            (    reserved=65536KB, committed=59648KB)
                            (    used=59166KB)
                            (    waste=482KB =0.81%)
                            (  Class space:)
                            (    reserved=425984KB, committed=7488KB)
                            (    used=7092KB)
                            (    waste=396KB =5.29%)
-                    Thread (reserved=95220KB, committed=18452KB)
                            (thread #172)
                            (stack: reserved=94724KB, committed=17956KB)
                            (malloc=298KB #1032) (peak=319KB #1075)
                            (arena=198KB #340) (peak=757KB #256)
-                      Code (reserved=251264KB, committed=48728KB)
                            (malloc=3576KB #16397) (peak=3576KB #16398)
                            (mmap: reserved=247688KB, committed=45152KB)
-                        GC (reserved=282161KB, committed=282161KB)
                            (malloc=21193KB #31118) (peak=22768KB #31692)
                            (mmap: reserved=260968KB, committed=260968KB)
-                  Compiler (reserved=1470KB, committed=1470KB)
                            (malloc=1306KB #1820) (peak=1321KB #1814)
                            (arena=165KB #5) (peak=45072KB #14)
-                  Internal (reserved=1059KB, committed=1059KB)
                            (malloc=1023KB #23952) (at peak)
                            (mmap: reserved=36KB, committed=36KB)
-                     Other (reserved=44711KB, committed=44711KB)
                            (malloc=44711KB #204) (peak=45370KB #195)
-                    Symbol (reserved=12165KB, committed=12165KB)
                            (malloc=10175KB #299383) (peak=10199KB #299791)
                            (arena=1990KB #1) (at peak)
-    Native Memory Tracking (reserved=7234KB, committed=7234KB)
                            (malloc=102KB #1764) (peak=103KB #1769)
                            (tracking overhead=7132KB)
-        Shared class space (reserved=16384KB, committed=12068KB)
                            (mmap: reserved=16384KB, committed=12068KB)
-               Arena Chunk (reserved=179KB, committed=179KB)
                            (malloc=179KB #411) (peak=47415KB #1421)
-                    Module (reserved=275KB, committed=275KB)
                            (malloc=275KB #1894) (at peak)
-                 Safepoint (reserved=8KB, committed=8KB)
                            (mmap: reserved=8KB, committed=8KB)
-           Synchronization (reserved=167KB, committed=167KB)
                            (malloc=167KB #1578) (peak=171KB #1588)
-            Serviceability (reserved=1KB, committed=1KB)
                            (malloc=1KB #6) (at peak)
-                 Metaspace (reserved=65911KB, committed=60023KB)
                            (malloc=375KB #355) (at peak)
                            (mmap: reserved=65536KB, committed=59648KB)
-      String Deduplication (reserved=4381KB, committed=4381KB)
                            (malloc=4381KB #34592) (peak=6551KB #38671)
-           Object Monitors (reserved=497KB, committed=497KB)
                            (malloc=497KB #2448) (peak=572KB #2814)

Thanks
Shiv

Reply via email to