Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“卡桑德拉压力体验”;java.lang.OutOfMemoryError:java堆空间;错误_Java_Cassandra_Out Of Memory_Cassandra 2.0 - Fatal编程技术网

“卡桑德拉压力体验”;java.lang.OutOfMemoryError:java堆空间;错误

“卡桑德拉压力体验”;java.lang.OutOfMemoryError:java堆空间;错误,java,cassandra,out-of-memory,cassandra-2.0,Java,Cassandra,Out Of Memory,Cassandra 2.0,我正在尝试使用cassandra压力工具在cassandra中插入记录 cassandra-stress -d xx.xx.xx.xx -t 500 -c 1 -S 10240000 但我一直遇到以下错误: Exception in thread "Thread-159" java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Unknown Source) at java.l

我正在尝试使用cassandra压力工具在cassandra中插入记录

cassandra-stress -d xx.xx.xx.xx -t 500 -c 1 -S 10240000
但我一直遇到以下错误:

Exception in thread "Thread-159" java.lang.OutOfMemoryError: Java heap space
        at java.util.Arrays.copyOf(Unknown Source)
        at java.lang.AbstractStringBuilder.expandCapacity(Unknown Source)
        at java.lang.AbstractStringBuilder.ensureCapacityInternal(Unknown Source)
        at java.lang.AbstractStringBuilder.append(Unknown Source)
        at java.lang.StringBuilder.append(Unknown Source)
        at org.apache.cassandra.stress.util.Operation.multiplyString(Operation.java:211)
        at org.apache.cassandra.stress.util.Operation.generateValues(Operation.java:92)
        at org.apache.cassandra.stress.operations.Inserter.run(Inserter.java:45)
        at org.apache.cassandra.stress.StressAction$Consumer.run(StressAction.java:275)
我尝试通过在/usr/bin/cassandra-stress中更改java调用来增加堆:

$JAVA -server -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Xms8033M -Xmx8033M -Xmn400M -cp $CLASSPATH org.apache.cassandra.stress.Stress $@
请注意,卡桑德拉本身没有显示任何错误


我有一台运行Ubuntu12.04.3 LTS(GNU/Linux3.2.0-55-generic x86_64)的32GB四核机器。

如果你有32GB的内存,我会尝试接近你的内存量。我也会尝试一个更大的伊甸园大小。对于高负载系统,我会使用类似的东西

-Xmn8g -Xmx24g
如果愿意,也可以设置最小值,但这可能没有帮助


如果使用这些设置监视系统,您可能会发现不需要那么多内存,并且可以减少内存。如果这仍然太多,你需要减少你的压力测试或得到一个更大的盒子。

如果你有32 GB,我会尝试一些接近你的内存量的东西。我也会尝试一个更大的伊甸园大小。对于高负载系统,我会使用类似的东西

-Xmn8g -Xmx24g
如果愿意,也可以设置最小值,但这可能没有帮助


如果使用这些设置监视系统,您可能会发现不需要那么多内存,并且可以减少内存。如果这仍然太多,您需要减少压力测试或得到一个更大的箱子。

看起来您的堆确实不适合您的使用。所以一定要听从彼得的建议。但为了以防万一,您可以尝试使用运行cassandra stress,以确保它不会泄漏内存。

实际上,堆似乎不适合您的使用。所以一定要听从彼得的建议。但以防万一,您可以尝试运行cassandra stress,以确保它不会泄漏内存。

谢谢您的回复。这些设置将增加物理内存的使用,而不是java堆。我正在使用jconsole监视使用情况,而java堆的使用情况没有改变。@BhaskarSinghal这些选项将显著改变堆的大小。如果您没有看到更改,则说明它们没有正确应用。你看到的年轻一代有多大?它应该是8GB。谢谢@Peter更改堆大小等操作不起作用。我刚刚更改了应用程序代码以减少所需的堆。@BhaskarSinghal减少内存需求始终是最好的选择,但如果您使用的是无法控制的应用程序,则可能会更困难。谢谢您的回复。这些设置将增加物理内存的使用,而不是java堆。我正在使用jconsole监视使用情况,而java堆的使用情况没有改变。@BhaskarSinghal这些选项将显著改变堆的大小。如果您没有看到更改,则说明它们没有正确应用。你看到的年轻一代有多大?它应该是8GB。谢谢@Peter更改堆大小等操作不起作用。我刚刚更改了应用程序代码以减少所需堆。@BhaskarSinghal减少内存需求始终是最好的选择,但如果您使用的应用程序超出了您的控制范围,则可能会更加困难。谢谢@Nikem更改堆大小等没有用。我刚刚更改了应用程序代码以减少所需堆。感谢@Nikem更改堆大小等操作无效。我只是更改了应用程序代码以减少所需的堆。