Native memory leak in StringTable::intern using G1
Will Bertelsen
willb at eero.com
Wed Feb 22 21:35:01 UTC 2017
My application doesn't explicitly intern anything, though our libraries
might. However, when running jmap as you suggested no interned strings are
reported.
And no. Full GC never occurred in the 2 or so days we ran G1 before the OS
killed our proc due to system memory exhaustion.
Here is the output of jmap:
JVM version is 25.45-b02
using thread-local object allocation.
Garbage-First (G1) GC with 13 thread(s)
Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 17179869184 (16384.0MB)
NewSize = 1363144 (1.2999954223632812MB)
MaxNewSize = 13740539904 (13104.0MB)
OldSize = 5452592 (5.1999969482421875MB)
NewRatio = 2
SurvivorRatio = 8
MetaspaceSize = 21807104 (20.796875MB)
CompressedClassSpaceSize = 1073741824 (1024.0MB)
MaxMetaspaceSize = 1073741824 (1024.0MB)
G1HeapRegionSize = 8388608 (8.0MB)
Heap Usage:
G1 Heap:
regions = 2048
capacity = 17179869184 (16384.0MB)
used = 7899518456 (7533.5678634643555MB)
free = 9280350728 (8850.432136535645MB)
45.98124916665256% used
G1 Young Generation:
Eden Space:
regions = 518
capacity = 7700742144 (7344.0MB)
used = 4345298944 (4144.0MB)
free = 3355443200 (3200.0MB)
56.42701525054466% used
Survivor Space:
regions = 58
capacity = 486539264 (464.0MB)
used = 486539264 (464.0MB)
free = 0 (0.0MB)
100.0% used
G1 Old Generation:
regions = 367
capacity = 8992587776 (8576.0MB)
used = 3067680248 (2925.5678634643555MB)
free = 5924907528 (5650.4321365356445MB)
34.11343124375414% used
On Wed, Feb 22, 2017 at 11:04 AM, yu.zhang at oracle.com <yu.zhang at oracle.com>
wrote:
> Will,
>
> Does your application generate a lot of interned string?
>
> Another way to confirm is with jmap -heap <pid> 'interned Stings' should
> be printed. Did full gc happen during the run?
>
> Thanks
>
> Jenny
>
> On 02/21/2017 10:52 AM, Will Bertelsen wrote:
>
> Hi All,
>
> I've been experimenting with G1 in production and have noticed a large
> native memory leak that eventually exhausts all memory on the system. I ran
> it overnight with NMT enabled and this was the biggest offender:
>
> [0x00007f86c31cf205] Hashtable<oopDesc*, (MemoryType)9>::new_entry(unsigned
> int, oopDesc*)+0x165
> [0x00007f86c35dd263] StringTable::basic_add(int, Handle, unsigned short*,
> int, unsigned int, Thread*)+0xd3
> [0x00007f86c35dd452] StringTable::intern(Handle, unsigned short*, int,
> Thread*)+0x182
> [0x00007f86c35dd921] StringTable::intern(oopDesc*, Thread*)+0x131
> (malloc=2628520KB +2601784KB #328565 +325223)
>
> Has anyone seen this before?
>
> Here is my java version and gc settings:
>
> java version "1.8.0_45"
> Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
> Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
>
> -Xmx16384M
> -Xms16384M
> -XX:+AggressiveOpts
> -XX:+UnlockExperimentalVMOptions
>
> -XX:+UseG1GC
> -XX:G1HeapRegionSize=8M
> -XX:G1NewSizePercent=20
> -XX:G1MaxNewSizePercent=80
>
> -XX:MaxGCPauseMillis=250
> -XX:MaxMetaspaceSize=1G
>
>
> _______________________________________________
> hotspot-gc-use mailing listhotspot-gc-use at openjdk.java.nethttp://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-gc-use/attachments/20170222/419cd1ae/attachment.html>
More information about the hotspot-gc-use
mailing list