Uploaded image for project: 'Nuxeo Platform'
  1. Nuxeo Platform
  2. NXP-14993

Fix excessive Full GC caused by SoftRef when launching full ES indexing

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 5.8, 5.9.4
    • Fix Version/s: None
    • Component/s: Elasticsearch

      Description

      When launching full ES indexation with real-world data, all the database content is browsed and the VCS cache is overused, as a result, the Garbage Collector has to full GC all the time. This significantly slowdown the indexation.

      Here is how looks like the gc.log:

      646.173: [Full GC [PSYoungGen: 505856K->65251K(598016K)] [ParOldGen: 1397675K->1397623K(1397760K)] 1903531K->1462875K(1995776K) [PSPermGen: 129054K->129054K(139776K)], 4.4218370 secs] [Times: user=14.72 sys=0.00, real=4.42 secs] 
      652.256: [Full GC [PSYoungGen: 505856K->113632K(598016K)] [ParOldGen: 1397623K->1397559K(1397760K)] 1903479K->1511192K(1995776K) [PSPermGen: 129063K->129063K(138240K)], 4.0342710 secs] [Times: user=14.32 sys=0.00, real=4.04 secs] 
      658.167: [Full GC [PSYoungGen: 505856K->78078K(598016K)] [ParOldGen: 1397559K->1397397K(1397760K)] 1903415K->1475475K(1995776K) [PSPermGen: 129063K->128604K(136192K)], 4.6278360 secs] [Times: user=14.93 sys=0.00, real=4.62 secs] 
      664.528: [Full GC [PSYoungGen: 505856K->86608K(598016K)] [ParOldGen: 1397397K->1397267K(1397760K)] 1903253K->1483875K(1995776K) [PSPermGen: 128613K->128613K(135168K)], 4.6996920 secs] [Times: user=17.17 sys=0.01, real=4.70 secs] 
      670.903: [Full GC [PSYoungGen: 505856K->97029K(598016K)] [ParOldGen: 1397267K->1397722K(1397760K)] 1903123K->1494752K(1995776K) [PSPermGen: 128613K->128613K(134144K)], 4.1210080 secs] [Times: user=15.16 sys=0.02, real=4.13 secs] 
      676.806: [Full GC [PSYoungGen: 505856K->108978K(598016K)] [ParOldGen: 1397722K->1397613K(1397760K)] 1903578K->1506592K(1995776K) [PSPermGen: 128615K->128615K(133120K)], 3.9363180 secs] [Times: user=13.53 sys=0.01, real=3.93 secs] 
      682.294: [Full GC [PSYoungGen: 505856K->108807K(598016K)] [ParOldGen: 1397613K->1397517K(1397760K)] 1903469K->1506325K(1995776K) [PSPermGen: 128615K->128615K(132608K)], 3.3656530 secs] [Times: user=12.21 sys=0.00, real=3.36 secs] 
      687.652: [Full GC [PSYoungGen: 505856K->103465K(598016K)] [ParOldGen: 1397517K->1397386K(1397760K)] 1903373K->1500851K(1995776K) [PSPermGen: 128616K->128588K(131584K)], 3.5368910 secs] [Times: user=12.55 sys=0.00, real=3.53 secs] 
      

      A workaround is to temporary disable softref by uncommnenting:

      #JAVA_OPTS=$JAVA_OPTS -XX:SoftRefLRUPolicyMSPerMB=0
      

      in nuxeo.conf.

      Also still in nuxeo conf, setting vcs max pool size could help:

      nuxeo.vcs.max-pool-size=10
      

      But ideally, if really neede, we would like to be able to do that dynamically before Full ES Indexing.

      Note that this workaround might just not be needed with sufficient HEAP size (>4g?)

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                grenard Guillaume Renard
                Reporter:
                grenard Guillaume Renard
                Participants:
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: