我们目前正在评估 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/