查找昂贵查询(CPU)的Couchbase所有者

时间:2017-02-20 17:52:24

标签: couchbase

我们的Couchbase群集上出现CPU峰值问题。有没有人知道有什么好的技巧可以追踪造成这种情况的原因?

我到目前为止最好的是轮询admin / vitals,如果CPU超过某个阈值,则转出admin / active_requests。这将为我们提供一些指示,说明造成这种情况的原因。

有没有办法找到哪个用户与昂贵的查询相关联?

1 个答案:

答案 0 :(得分:0)

现在(Couchbase 4.6.0),completed_requests / active_requests日志没有显示查询的来源,因此无法正常获取该信息。一种愚蠢但可行的跟踪方法是为每个查询添加一个虚拟参数,以保存一些识别信息,如应用程序或用户ID。

E.g。 SELECT * FROM bucket WHERE field="value" AND "myapp"="myapp" 或参数化查询,其中虚拟参数名称标识源,并评估为true,如下所示: SELECT * FROM bucket WHERE field="value" AND $myapp并将true传递给$myapp

现在,您可以在completed_requests中找到来自某个源的所有查询,或者找出活动查询的来源。