cassandra - 如何减少 cassandra 服务器上的负载以避免 NoHostAvailable 异常
问题描述
我正在运行 5 节点 apache cassandra 集群(3.11.4),每个节点有 48 GB RAM、12 GB 堆内存和 6 个 vcpus。即使 cassandra 服务器中没有数据处理,我也可以在 cassandra 服务器节点上看到大量负载(18 GB)。我可以有很多 GC 暂停,因此当我尝试推送时我可以看到“NoHostAvailable”异常卡桑德拉的数据。
请建议我如何减少这种负载以及如何避免连接失败“NoHostAvailable”。
ID : a65c8072-636a-480d-8774-2c5704361bec
Gossip active : true
Thrift active : true
Native Transport active: true
Load : 18.07 GiB
Generation No : 1576158587
Uptime (seconds) : 205965
Heap Memory (MB) : 3729.16 / 11980.81
Off Heap Memory (MB) : 12.81
Data Center : dc1
Rack : rack1
Exceptions : 21
Key Cache : entries 2704, size 5.59 MiB, capacity 100 MiB, 1966 hits, 4715 requests, 0.417 recent hit rate, 14400 save period in seconds
Row Cache : entries 0, size 0 bytes, capacity 0 bytes, 0 hits, 0 requests, NaN recent hit
rate, 0 save period in seconds
Counter Cache : entries 0, size 0 bytes, capacity 50 MiB, 0 hits, 0 requests, NaN recent hit rate, 7200 save period in seconds
Chunk Cache : entries 25, size 1.56 MiB, capacity 480 MiB, 4207149 misses, 4342386 requests, 0.031 recent hit rate, NaN microseconds miss latency
Percent Repaired : 34.58708788430304%
Token : (invoke with -T/--tokens to see all 256 tokens)
解决方案
如果您有 48Gb RAM,我建议至少便宜 16Gb 或 20。确保您使用的是 G1 GC(Java 8 中的默认值)。
但是 NoHostAvailable 可能取决于您使用的一致性级别以及其他因素。
另一方面,您可能会考虑限制您的应用程序 - 有时推得较慢可能会导致更好的吞吐量。
推荐阅读
- scala - Spark SQL first 和 last 聚合函数——意外结果
- c - 我对变量的赋值和 While 函数有疑问
- python - 导入和名称绑定最佳实践
- ios - 将带有源的 Pod 依赖项添加到 .podspec
- azure - Use-AzureSqlJobConnection -CurrentAzureSubscription 时出错
- html - 无法将元素缩放到 100% 宽度
- javascript - Angular 2+ how to get focus to modal inputs on opening the modal?
- javascript - 自定义对话框中的按钮不起作用(Google Apps 脚本)
- sql - 驱动程序无法使用安全套接字层 (SSL) 加密建立到 SQL Server 的安全连接
- javascript - Javascript数组:删除数组内数组中包含的元素