Project

General

Profile

Actions

task #9268

open

Check cdm for GC G1 humongous objects problem

Added by Andreas Kohlbecker over 3 years ago. Updated over 1 year ago.

Status:
New
Priority:
New
Category:
cdmlib
Target version:
Start date:
Due date:
% Done:

10%

Estimated time:
Severity:
normal
Tags:

Description

problems of the G1 when there are Objects >= 1MB in the heap:

https://dzone.com/articles/whats-wrong-with-big-objects-in-java

bei Exporten oder Importen betreffen, oder beim Indizieren.

If it turns out that the cdm is affected it might be a good idea to upgrade to java 11

I found this page on diagnosing humongous object allocation which seems to be of great help:

https://plumbr.io/handbook/gc-tuning-in-practice/other-examples/humongous-allocations


Files

g1-humongous-allocations.txt (33.6 KB) g1-humongous-allocations.txt Andreas Kohlbecker, 11/04/2020 11:28 AM

Related issues

Related to EDIT - task #6981: Migrate to Java 11NewAndreas Müller05/04/202205/13/2022

Actions
Actions #1

Updated by Andreas Kohlbecker over 3 years ago

Actions #2

Updated by Andreas Kohlbecker over 3 years ago

  • Tags changed from performance to performance, java
  • Description updated (diff)
Actions #4

Updated by Andreas Müller over 3 years ago

I can't see that we have objects of size in CDM real data

Actions #5

Updated by Andreas Kohlbecker over 3 years ago

  • Description updated (diff)
Actions #6

Updated by Andreas Kohlbecker over 3 years ago

I enabled G1 GC logging as described in https://plumbr.io/handbook/gc-tuning-in-practice/other-examples/humongous-allocations the to search for humongous object allocations on the test server. A couple of minutes after rebooting, the server still is starting instances, G1 Humongous Allocation are being reported:

 213.066: [G1Ergonomics (Concurrent Cycles) request concurrent cycle initiation, reason: requested by GC cause, GC cause: G1 Humongous Allocation]
213.067: [GC pause (G1 Humongous Allocation) (young) (initial-mark) 213.067: [G1Ergonomics (CSet Construction) start choosing CSet, _pending_cards: 31247, predicted base time: 83.62 ms, remaining time: 116.38 ms, target pause time: 200.00 ms]
 220.232: [G1Ergonomics (Concurrent Cycles) request concurrent cycle initiation, reason: requested by GC cause, GC cause: G1 Humongous Allocation]
 220.416: [G1Ergonomics (Concurrent Cycles) do not request concurrent cycle initiation, reason: concurrent cycle already in progress, GC cause: G1 Humongous Allocation]
 374.271: [G1Ergonomics (Concurrent Cycles) request concurrent cycle initiation, reason: requested by GC cause, GC cause: G1 Humongous Allocation]
 374.324: [G1Ergonomics (Concurrent Cycles) do not request concurrent cycle initiation, reason: concurrent cycle already in progress, GC cause: G1 Humongous Allocation]
 385.183: [G1Ergonomics (Concurrent Cycles) request concurrent cycle initiation, reason: requested by GC cause, GC cause: G1 Humongous Allocation]
 385.183: [G1Ergonomics (Concurrent Cycles) request concurrent cycle initiation, reason: requested by GC cause, GC cause: G1 Humongous Allocation]
385.183: [GC pause (G1 Humongous Allocation) (young) (initial-mark) 385.183: [G1Ergonomics (CSet Construction) start choosing CSet, _pending_cards: 40507, predicted base time: 76.38 ms, remaining time: 123.62 ms, target pause time: 200.00 ms]
 392.099: [G1Ergonomics (Concurrent Cycles) request concurrent cycle initiation, reason: requested by GC cause, GC cause: G1 Humongous Allocation]
 392.219: [G1Ergonomics (Concurrent Cycles) do not request concurrent cycle initiation, reason: concurrent cycle already in progress, GC cause: G1 Humongous Allocation]

so there is strong evidence that we in deed have big sized objects!

Actions #7

Updated by Andreas Kohlbecker over 3 years ago

  • Assignee changed from Andreas Müller to Andreas Kohlbecker
  • Target version changed from Unassigned CDM tickets to Release 5.19
  • % Done changed from 0 to 10
Actions #8

Updated by Andreas Kohlbecker over 3 years ago

  • Status changed from New to In Progress
Actions #9

Updated by Andreas Kohlbecker over 3 years ago

further results from the test server after startup and running the Data Portal Cacher for E+M by 8,5% (g1-humongous-allocations.txt). 176 G1 Humongous Allocations have been reported.

These big objects may be result sets from database queries, but other cases are also possible.

Actions #10

Updated by Andreas Kohlbecker over 3 years ago

  • Status changed from In Progress to Feedback
  • Assignee changed from Andreas Kohlbecker to Andreas Müller
  • % Done changed from 20 to 10

this finding can be especially relevant for imports and exports, therefore we should examine I/O functionalities which have been reported to cause problems in the near past. Isn't it that Walter had Problems a couple of weeks ago?

Do you remember anything like this Andreas & Katja?

Actions #11

Updated by Katja Luther over 3 years ago

Andreas Kohlbecker wrote:

this finding can be especially relevant for imports and exports, therefore we should examine I/O functionalities which have been reported to cause problems in the near past. Isn't it that Walter had Problems a couple of weeks ago?

Do you remember anything like this Andreas & Katja?

Yes the cdmlight export for larger subtrees or a whole classification can cause memory problems.

Actions #12

Updated by Andreas Müller about 3 years ago

  • Target version changed from Release 5.19 to Release 5.21
Actions #13

Updated by Andreas Müller about 3 years ago

  • Target version changed from Release 5.21 to Release 5.22
Actions #14

Updated by Andreas Müller about 3 years ago

  • Status changed from Feedback to New
  • Target version changed from Release 5.22 to Release 5.46
Actions #15

Updated by Andreas Müller almost 3 years ago

  • Tracker changed from report to task
Actions #16

Updated by Andreas Müller about 2 years ago

  • Target version changed from Release 5.46 to Release 5.44
Actions #17

Updated by Andreas Müller over 1 year ago

  • Tags changed from performance, java to performance
Actions

Also available in: Atom PDF