当前位置: 首页 > 知识库问答 >
问题:

卡桑德拉 --JVM 调谐 G1GC

缪远航
2023-03-14

由于GC,我的突变率下降了。我的年轻一代GC花费了很长时间

G1年轻一代GC在1804ms.G1伊甸园空间:771751936 -

在最后5000毫秒内丢弃了变异消息:814表示内部超时,0表示跨节点超时。平均内部丢弃延迟:2874毫秒,平均跨节点丢弃延迟:0毫秒

为了避免这种情况,我应该减少MaxGCPauseMillis选项Cassandra-env.sh.

我们的默认值是500毫秒(JVM_OPTS=“$JVM_OPTS -XX:最大容量=500)

调整此设置是否会减少丢弃的突变消息。我需要增加还是减少该值。

共有1个答案

郤玉书
2023-03-14

如果突变需要超过5s才能处理,1.8s GC可能不是唯一的问题。在 tpstats 中是否有大量待处理?CPU 负载看起来如何?您的写作速度可能是卡桑德拉无法用您的硬件和数据模型维持的。

您可能想先尝试增加堆大小。16gb以下的空间很难使用G1进行调整。如果您包含从1.8秒开始的gc日志,则更容易提供帮助,如果没有日志,则很难判断到底发生了什么。您可以尝试减少gc时间目标,但如果这个长GC是异常值,则可能无济于事。如果更新记住集花费太长时间,您可能需要增加区域大小。检查巨型对象等,这可能是数据建模问题(增加区域大小会有所帮助)。如果您从分配尖峰中获得疏散失败,请增加堆大小或将GCCapvePercent设置为25而不是10,以便为其提供更多空间来处理尖峰。

 类似资料:
  • 我使用的是spring数据cassandra,需要使用jpa映射一个字段,在cassandra中,该字段的类型为

  • 我们运行的cassandra集群有3个节点,复制因子为2。 我们的nodejs服务器是查询这个集群的唯一地方。 是否有其他任何地方的参数设置可能导致不一致的查询? cassandra v2.2.4 nodejs驱动程序v3.0.0 编辑-添加我正在做的事情的示例: 1)检查用户名是否被占用 2)创建用户

  • 我们一直在使用Spark RDD API(Spark 2.0)来处理在Cassandra.Note中建模的数据,这些数据在Cassandra中建模以实现高效的读写。 然而,现在还有SparkSQLAPI,Spark DataFrame API,它也是一种替代的数据访问方法-http://spark.apache.org/docs/latest/sql-programming-guide.html

  • 我用Spring Data Cassandra 2.2.1开发了一个新的应用程序,想在Cassandra 2.1.9服务器上运行它(旧的,我知道)。但是我们得到了错误 Spring数据卡桑德拉手册声称Spring数据2.2.1至少需要卡桑德拉2.1,所以这应该有效,但它没有。我们包含的唯一特定于卡桑德拉的依赖项是 我怎样才能让这个工作?

  • 我有这个代码: 我得到以下异常: 所有主机尝试查询失败(已尝试:/127.0.0.1:9042(com.datastax.driver.core.TransportException:[/127.0.0.1:9042]无法连接)),堆栈跟踪:com.datastax.driver.core.exceptions.NoHostAvailableException:所有主机尝试查询失败(已尝试:/12

  • 我有一个必须添加到采购订单的产品列表。采购订单具有序列号,添加产品后,应更改其状态以指示这些产品已出货。 1 个采购订单中处理的典型产品数为 500。 在DB上-我有2张桌子- 各方面的建议告诉我应该使用多个异步查询。然而,我关心的是整个操作的原子性。鉴于我的要求,请建议什么是最好的前进方式。 先谢谢你。