c# - 来自 C# 的 Cassandra 压力测试消耗所有网络资源,并在插入 ~100K 后失败

标签 c# cassandra fluentcassandra

我们目前正在评估 Windows Cassandra 部署,我已经设法编写了一个非常简单的压力测试。该测试尝试将包含各种数据的 100 万行插入到单个本地节点(到/从本地主机,无复制,集群上只有一个节点)。

这个测试对于前 100k 行工作正常(或者,它并不总是阻塞在完全相同的行上)。可以从数据库中正确读取插入的行,一切正常。然后测试似乎消耗了机器上所有可用的套接字/缓冲区/一些网络资源,并且测试无法连接到 Cassandra 并停止插入行。即使从浏览器刷新一个完全独立的网页也会有一段时间失败。

我先控诉了测试,杀了重启也没用。我需要等待大约一分钟才能建立新连接(超时?)。然后我可以恢复测试并继续抽取数据。我使用 Fluent Cassandra 和 Cassandra-Sharp 客户端编写了测试,结果相同。

是否需要在 Cassandra 或 C# 客户端中设置某些设置,例如最大并发连接数?

或者,是否有人链接到工作压力测试的来源,该测试从 C# 中插入了几百万行,以便我可以将其与我的测试进行比较并找出我的错误?

最佳答案

我的猜测是您没有让套接字连接保持打开状态。您可以通过将上下文包装在 session 中,使连接在 FluentCassandra 中保持打开状态。如果不这样做,每个执行的请求都会在一个新的套接字上。

关于c# - 来自 C# 的 Cassandra 压力测试消耗所有网络资源,并在插入 ~100K 后失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11909897/

相关文章:

c# - 如何使用 C#/IHTMLDocument2 设置文本字段的值

c# - 将系统类作为构造函数参数传递

cassandra - 使用 Cassandra 获取最新的独特结果

c# - ASP.net 图表控件

c# - 使用 InteractiveDataDisplay.WPF 导出图形

mongodb - 文档数据库中的继承?

cassandra - Cassandra 是否会阻止现有数据中心在重新加入集群时为读取请求提供服务?

c# - Fluentcassandra 过滤器问题

exception - 流畅的 Cassandra : What does "Apache.Cassandra.UnavailableException" mean?

c# - FluentCassandra 范围选择问题