我正在尝试使用cassandra-stress工具在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 $@请注意,cassandra本身没有显示任何错误。
我有一台32 GB的四核机器,运行Ubuntu12.04.3LTS(GNU/Linux3.2.0-55-generic x86_64)。
发布于 2013-12-04 16:57:01
如果你有32 GB的内存,我会尝试一些接近你的内存容量的内存。我也会试一试更大的伊甸园尺寸。对于高负载系统,我会使用这样的东西。
-Xmn8g -Xmx24g如果愿意,您也可以设置最小值,但这可能无济于事。
如果您使用这些设置监控系统,您可能会发现您不需要那么多内存,并且可以减少内存。如果这仍然太多,你需要减少你的压力测试或得到一个更大的盒子。
发布于 2013-12-05 14:04:14
看起来你的堆不足以满足你的使用需求。所以一定要听从彼得的建议。但以防万一,您可以尝试使用Plumbr运行cassandra-stress,以确保它不会泄漏内存。
https://stackoverflow.com/questions/20370857
复制相似问题