[
https://issues.apache.org/jira/browse/CASSANDRA-17655?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17865486#comment-17865486
]
Brad Schoening commented on CASSANDRA-17655:
--------------------------------------------
The below code can be used to cause humongous allocations in a Java JVM.
{code:java}
public class HumongousAllocation {
public static void main(String[] args {
// Define the size of the allocation
// For example, to allocate a 1GB byte array
int size = 1024 * 1024 * 1024; // 1 GB
// Allocate the humongous object
byte[] humongousArray = new byte[size];
// Fill the array to ensure allocation
for (int i = 0; i < size; i++) {
humongousArray[i] = 1;
}
System.out.println("Humongous allocation done!");
}
}
{code}
{code:java}
java -Xmx2G HumongousAllocation
{code}
> Prevent JVM Humongous allocations
> ---------------------------------
>
> Key: CASSANDRA-17655
> URL: https://issues.apache.org/jira/browse/CASSANDRA-17655
> Project: Cassandra
> Issue Type: Bug
> Reporter: Brad Schoening
> Priority: Normal
>
> Several articles on Cassandra note that certain workloads, especially large
> partitions, can cause humongous allocations in Java, which can be reduced,
> but not always eliminated by increasing RegionSize. RegionSize max is 32MB.
> Humongous allocations are an undesirable performance issue because new
> objects get directly allocated in old space.
> Below is a sample message seen in the gc.log
> 2022-05-23T18:46:58.743+0800: 3758624.170: [GC pause (G1 Humongous
> Allocation) (young) (initial-mark) 3758624.171: [G1Ergonomics (CSet
> Construction) start choosing CSet, _pending_cards: 56725, predicted base
> time: 39.83 ms, remaining time: 160.17 ms, target pause time: 200.00 ms]
> Instead of Cassandra users tuning RegionSize manually, a better solution
> would be for Cassandra to limit the size of allocations, or consider moving
> humongous allocations off heap.
>
> References
> [https://docs.oracle.com/en/java/javase/11/gctuning/garbage-first-g1-garbage-collector1.html#GUID-D74F3CC7-CC9F-45B5-B03D-510AEEAC2DAC]
> [https://stevenlacerda.medium.com/identifying-and-fixing-humongous-allocations-in-cassandra-bf46444cec41]
> https://krzysztofslusarski.github.io/2020/11/10/humongous.html
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]