Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cassandra与读取延迟_Cassandra - Fatal编程技术网

Cassandra与读取延迟

Cassandra与读取延迟,cassandra,Cassandra,我从一台云计算机器上安装了cassandra。我克隆了这台机器,所以我得到了两台机器。一个运行cassandra服务器(1节点cassandra集群),另一个充当客户端并向第一个服务器(服务器)发出查询 我使用YCSB-来执行基准测试。我观察到的是,服务器上的读取延迟非常低,只有几微秒(第99百分位和最大值约为50/100 us),这与使用“nodetool cfhistograms”和“nodetool cfstats”观察到的结果相同——很可能所有数据都来自缓存,即所有sstables都在缓

我从一台云计算机器上安装了cassandra。我克隆了这台机器,所以我得到了两台机器。一个运行cassandra服务器(1节点cassandra集群),另一个充当客户端并向第一个服务器(服务器)发出查询

我使用YCSB-来执行基准测试。我观察到的是,服务器上的读取延迟非常低,只有几微秒(第99百分位和最大值约为50/100 us),这与使用“nodetool cfhistograms”和“nodetool cfstats”观察到的结果相同——很可能所有数据都来自缓存,即所有sstables都在缓存中


但通过YCSB基准测试从客户端(其他节点)观察到的端到端延迟很高-平均延迟=2000 us。因此,我想知道为什么端到端延迟如此之高,2000 us而不是100 us(在服务器上)。此外,网络延迟也很低,约为200 us(如使用PING所示)。我希望cassandra服务器尽快/立即响应。有人能帮上忙吗?

所以从CFG开始,直方图测量本地读取延迟,这是完成memtables与sstables合并的唯一时间。这不包括协调,检查ProxyHistogram


即使这样,您也应该期待客户时间的偏差。除了网络延迟,还有内核的延迟和客户端的反序列化时间。还不包括传入网络时间和服务器端cql反序列化。如果在该时间内发生完全/YGC,其也可能不包括在C*延迟时间内(很容易为1-500ms)。根据版本/配置,客户端还将执行一些请求合并(最多10us)。您可以很容易地期望jvm上的延迟为1ms,这仅仅是为了达到ygc的安全点或取消偏差(如果启用,则取决于版本),如果在我们记录请求的“开始时间”之前发生,则不包括偏差。tcp网络上低于1ms的延迟确实会随着naggle(如果启用)和tcp窗口而改变,因此看到平均200us可能与icmp ping和实际tcp往返时间不一致。

Hi Chris,ProxyHistogram显示的读取延迟(200us)是CFHistogram读取延迟(100us)的两倍。10美元的客户整合看起来不错。Serde确实增加了开销。您是否建议禁用tcp网络的naggle以实现低于1ms的延迟?对于tcp网络或cassandra,我可以使用/设置哪些其他可能的配置来实现低于1ms的延迟?如果您担心低于1ms的速度,我将重点调整jvm垃圾收集。从那以后,你肯定会有100毫秒的延迟。弄乱TCP只会影响吞吐量。我可以使用非java cassandra客户机/基准测试吗?我不确定cassandra(服务器)/cql本身是否是用java实现的?cassandra是用java实现的。有各种各样的司机,但我推荐那些。