我们的Couchbase群集上出现CPU峰值问题。有没有人知道有什么好的技巧可以追踪造成这种情况的原因?
我到目前为止最好的是轮询admin / vitals,如果CPU超过某个阈值,则转出admin / active_requests。这将为我们提供一些指示,说明造成这种情况的原因。
有没有办法找到哪个用户与昂贵的查询相关联?
答案 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中找到来自某个源的所有查询,或者找出活动查询的来源。