У меня проблема с тем, что мое приложение lucene index работает с -Xmx17G, но после непродолжительного времени запуска процесса поднять более 40G - память машины завершена, и процесс будет уничтожен.
- Никаких исключений не было.
- Когда я беру дамп кучи - это только 4G.
- Когда я анализирую кучу, я не вижу, что может занять больше 40G.
Приложение создает индексные файлы Lucene. Запуск действителен без исключений.
Если у кого-то есть идея:
- как я могу уловить эту проблему (не jmap, не помощь в анализе кучи, потому что куча имеет действительный размер и размер объектов)
- Как увидеть, что вынимает из кучи памяти
- почему jvm не вызывает исключение.
В настоящее время я делаю cron каждые 5 минут, чтобы перезапустить приложение ..
Я думаю что это какая-то люценовая ошибка, но не может доказать это.
-Xmx17000m
top -p 10668
top - 17:56:45 up 22 days, 14:36, 13 users, load average: 2.68, 2.63, 2.58
Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
%Cpu(s): 33.9 us, 18.0 sy, 0.0 ni, 48.0 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 st
KiB Mem : 49294264 total, 19862152 free, 28476600 used, 955512 buff/cache
KiB Swap: 1048572 total, 617848 free, 430724 used. 20393904 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10668 primo 20 0 **41.3g** 26.2g 34468 S 102.7 55.7 13:54.74 java
primo@se0207(p4_1)(sandb):~/p4_1/primom$jstat -gcutil -t 10668 10000
Timestamp S0 S1 E O M CCS YGC YGCT FGC FGCT CGC CGCT GCT
436.3 0.00 100.00 33.67 32.01 97.47 92.38 100 3.530 0 0.000 6 0.026 3.556
446.4 0.00 100.00 95.06 27.85 97.50 92.38 101 3.554 0 0.000 6 0.026 3.580
456.3 0.00 100.00 21.05 29.85 97.50 92.38 103 3.610 0 0.000 6 0.026 3.636
466.3 0.00 100.00 10.62 27.89 97.51 92.38 105 3.665 0 0.000 6 0.026 3.690
primo@se0207(p4_1)(sandb):~/p4_1/primom$jstat -gc -t 10668 10000
Timestamp S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT CGC CGCT GCT
108.1 0.0 28672.0 0.0 28672.0 2613248.0 925696.0 3735552.0 729780.1 44800.0 43736.5 4864.0 4479.0 45 1.999 0 0.000 6 0.026 2.025
118.1 0.0 53248.0 0.0 53248.0 3436544.0 1753088.0 2887680.0 776473.5 44800.0 43754.3 4864.0 4479.0 48 2.103 0 0.000 6 0.026 2.129
128.1 0.0 53248.0 0.0 53248.0 3854336.0 1282048.0 2469888.0 647449.5 45056.0 43793.2 4864.0 4480.7 50 2.204 0 0.000 6 0.026 2.230
138.1 0.0 53248.0 0.0 53248.0 3964928.0 2244608.0 2359296.0 776473.5 45056.0 43881.4 4864.0 4485.8 51 2.246 0 0.000 6 0.026 2.272
1378.3 0.0 4096.0 0.0 4096.0 499712.0 413696.0 397312.0 310738.5 46592.0 45220.4 4864.0 4488.4 203 5.572 3 1.274 6 0.026 6.871
1388.3 0.0 8192.0 0.0 8192.0 495616.0 106496.0 397312.0 308706.3 46592.0 45220.4 4864.0 4488.4 204 5.575 3 1.274 6 0.026 6.875
1398.3 0.0 4096.0 0.0 4096.0 495616.0 45056.0 401408.0 312874.2 46592.0 45220.4 4864.0 4488.4 206 5.647 3 1.274 6 0.026 6.946
1408.3 0.0 4096.0 0.0 4096.0 495616.0 331776.0 401408.0 312863.9 46592.0 45220.4 4864.0 4488.4 208 5.651 3 1.274 6 0.026 6.950
jhsdb jmap --heap --pid 10668
Attaching to process ID 10668, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 11.0.4+11
using thread-local object allocation.
Garbage-First (G1) GC with 4 thread(s)
Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 17825792000 (17000.0MB)
NewSize = 1363144 (1.2999954223632812MB)
MaxNewSize = 10695475200 (10200.0MB)
OldSize = 5452592 (5.1999969482421875MB)
NewRatio = 2
SurvivorRatio = 8
MetaspaceSize = 21807104 (20.796875MB)
CompressedClassSpaceSize = 1073741824 (1024.0MB)
MaxMetaspaceSize = 17592186044415 MB
G1HeapRegionSize = 4194304 (4.0MB)
Heap Usage:
G1 Heap:
regions = 4250
capacity = 17825792000 (17000.0MB)
used = 2559615216 (2441.039291381836MB)
free = 15266176784 (14558.960708618164MB)
14.35905465518727% used
G1 Young Generation:
Eden Space:
regions = 409
capacity = 2185232384 (2084.0MB)
used = 1715470336 (1636.0MB)
free = 469762048 (448.0MB)
78.50287907869482% used
Survivor Space:
regions = 11
capacity = 46137344 (44.0MB)
used = 46137344 (44.0MB)
free = 0 (0.0MB)
100.0% used
G1 Old Generation:
regions = 192
capacity = 1308622848 (1248.0MB)
used = 793813232 (757.0392913818359MB)
free = 514809616 (490.96070861816406MB)
60.6601996299548% used