2017-02-20 27 views
2

我们在Couchbase集群上遇到CPU峰值问题。有没有人知道有什么好的技术来追踪谁造成的?查找Couchbase所有者的昂贵查询(CPU)

到目前为止我所得到的最好是轮询admin/vitals,如果CPU超过某个阈值,则转储出admin/active_requests。这会给我们一些迹象,说明造成这种情况的原因。

有什么方法可以找到哪个用户与昂贵的查询相关联吗?

回答

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,或找出活动查询的来源。

+0

感谢大卫的想法。 – jimhooker2002