Details

    • Type: Enhancement
    • Status: New
    • Priority: P3
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: tools
    • Labels:
      None

      Description

      Running large test suites with large number of TEST_JOBS instantiates and keeps lots of AgentServer JVMs. For example, with 16 test jobs tier1 has ~70 AgentServers after an hour of test run, taking 60+ GB of memory. jtreg should really flush idle AgentServers after a while, to unclutter memory during the run.

      Proof-of-concept patch:
       http://cr.openjdk.java.net/~shade/7902454/jtreg-poc.patch

      There might be better place to flush idle agents periodically. Current placement keeps stale agents alive until the next test starts, which might be too conservative.

      Experiment setup (run, rendering scripts, data) with patched jtreg running tier1 tests on Linux x86_64 fastdebug and TEST_JOBS=8 on i7-7820X are at:
       http://cr.openjdk.java.net/~shade/7902454/

      The summary is given by the picture:
       http://cr.openjdk.java.net/~shade/7902454/tier1-time-footprint.png

      Flushing on idle does improve footprint very considerably. Current behavior wastes lots of memory. 1s flush is obviously a no-go, as it defies the purpose of agentvm, notice it prolongs the run for about 10 minutes. But sensible flushes at around 30..60s give lots of memory back without slowing down tier1 all that much.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                shade Aleksey Shipilev
              • Votes:
                1 Vote for this issue
                Watchers:
                7 Start watching this issue

                Dates

                • Created:
                  Updated: