RFR: 8324995: Shenandoah: Skip to full gc for humongous allocation failures [v3]

Kelvin Nilsen kdnilsen at openjdk.org
Thu Feb 8 18:37:04 UTC 2024


On Wed, 31 Jan 2024 21:50:06 GMT, William Kemper <wkemper at openjdk.org> wrote:

>> Shenandoah degenerated cycles do not compact regions. When a humongous allocation fails, it is likely due to fragmentation which is better addressed by a full gc.
>
> William Kemper has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Fix typo in comment

Meanwhile, I've done some analysis of the attached GC log to better understand tradeoffs between doing degenerated GC vs. Full GC when mutator experiences out-of-memory during allocation request.  The command used for this run is:

echo Run TradiShen tip with memory size $i with 4s customer period
>&2 echo Run TradiShen tip with memory size $i with 4s customer period
~/github/jdk.2-1-2024/build/linux-x86_64-server-release/jdk/bin/java \
  -XX:+UnlockExperimentalVMOptions \
  -XX:+UseTransparentHugePages \
  -XX:-ShenandoahPacing \
  -XX:+AlwaysPreTouch -XX:+DisableExplicitGC -Xms$i -Xmx$i \
  -XX:+UseShenandoahGC \
  -Xlog:"gc*=info,ergo" \
  -Xlog:safepoint=trace -Xlog:safepoint=debug -Xlog:safepoint=info \
  -XX:+UnlockDiagnosticVMOptions \
  -jar ~/github/heapothesys/Extremem/target/extremem-1.0-SNAPSHOT.jar \
  -dInitializationDelay=45s -dDictionarySize=16000000 -dNumCustomers=28000000 \
  -dNumProducts=64000 -dCustomerThreads=2000 -dCustomerPeriod=4s -dCustomerThinkTime=1s \
  -dKeywordSearchCount=4 -dServerThreads=5 -dServerPeriod=5s -dProductNameLength=10 \
  -dBrowsingHistoryQueueCount=5 \
  -dSalesTransactionQueueCount=5 \
  -dProductDescriptionLength=64 -dProductReplacementPeriod=25s -dProductReplacementCount=5 \
  -dCustomerReplacementPeriod=30s -dCustomerReplacementCount=1000 -dBrowsingExpiration=1m \
  -dPhasedUpdates=true \
  -dPhasedUpdateInterval=60s \
  -dSimulationDuration=20m -dResponseTimeMeasurements=100000

with $i equal to 27g
[capture.27g.tradishen.log](https://github.com/openjdk/jdk/files/14213319/capture.27g.tradishen.log)

-------------

PR Comment: https://git.openjdk.org/jdk/pull/17638#issuecomment-1934715864


More information about the hotspot-gc-dev mailing list