插入繁重的工作负载受CPU限制或I / O限制

时间:2014-09-03 08:55:24

标签: cassandra nosql

  

插入繁重的工作负载在成为之前在Cassandra中受CPU限制   内存限制。 (所有写入都会转到提交日志,但Cassandra就是如此   写作有效,CPU是限制因素。

有些机构可以向我解释为什么I / O不是限制因素吗?我的意思是,据我所知,它首先进入I / O然后进入CPU。

我查看了This StackOverflow questionCassndra IncubatorApache电子邮件链,但对我来说仍不明确。

1 个答案:

答案 0 :(得分:1)

Cassandra会记录项目,是的,那部分是I / O.但是这个日志会继续附加。因此Cassandra不需要等待硬盘搜索。看看HDD Burst写入速度 - 超过100MB / s这对我来说似乎不是一个限制因素。事实上,网络将是限制性的。但是因为你可能无法达到网络变得限制的写入速度,所以CPU限制开始了。

我希望现在这部分答案是有道理的:

  

要处理插入,Cassandra需要对来自客户端的消息进行反序列化,找到哪些节点应该存储数据并向这些节点发送消息。然后,这些节点将数据存储在称为Memtable的内存数据结构中。

     

这最初几乎总是受CPU限制。但是,随着插入的数据越来越多,memtables会变大并刷新到磁盘并创建新的(空)memtables。刷新的memtables存储在称为SSTables的文件中。有一个称为压缩的持续后台进程将SSTables合并为逐渐变大和变大的文件。

来自Richard

Explanation required for a statement in Cassandra documentation