最近使用couchbase,发现它很占cpu,开启一个连接已经到了120%,开两个连接cpu直接被占满了。使用了jprofiler查到了原因,原来是在ViewConnection.java中有一段
@Override
public void run() {
while (running) {
if (!reconfiguring) {
try {
handleIO();
} catch (IllegalStateException e) {
logRunException(e);
} catch (Exception e) {
logRunException(e);
}
}
}
getLogger().info("Shut down Couchbase client");
}
这里开启了一相线程专门用来轮询处理io,貌似是用来处理多个servernode的问题。所以在try里面加句sleep(100);就可以了,让它每次轮询一遍就休息100ms。
做了这样的配置后测试了下,插入10w条数据,没什么问题。当用到couchbase的分布式的时候,再测下吧。