文档数据库服务 DDS-实例CPU使用率高问题排查:分析DDS数据库正在执行的请求
时间:2025-04-24 18:40:18
分析DDS数据库正在执行的请求
- 通过Mongo Shell连接DDS实例。
未开通公网访问的实例,具体请参见:
- 执行以下命令,查看数据库当前正在执行的操作。
回显如下:
{ "raw" : { "shard0001" : { "inprog" : [ { "desc" : "StatisticsCollector", "threadId" : "140323686905600", "active" : true, "opid" : 9037713, "op" : "none", "ns" : "", "query" : { }, "numYields" : 0, "locks" : { }, "waitingForLock" : false, "lockStats" : { } }, { "desc" : "conn2607", "threadId" : "140323415066368", "connectionId" : 2607, "client" : "172.16.36.87:37804", "appName" : "MongoDB Shell", "active" : true, "opid" : 9039588, "secs_running" : 0, "microsecs_running" : NumberLong(63), "op" : "command", "ns" : "admin.", "query" : { "currentOp" : 1 }, "numYields" : 0, "locks" : { }, "waitingForLock" : false, "lockStats" : { } } ], "ok" : 1 }, ... }
- client:发起请求的客户端。
- opid:操作的唯一标识符。
- secs_running:该操作已经执行的时间,单位:秒。如果该字段返回的值特别大,需要查看请求是否合理。
- microsecs_running:该操作已经执行的时间,单位:微秒。如果该字段返回的值特别大,需要查看请求是否合理。
- op:操作类型。通常是query、insert、update、delete、command中的一种。
- ns:操作目标集合。
- 其他参数详见db.currentOp()命令官方文档。
- 根据命令执行结果,分析是否有异常耗时的请求正在执行。
如果业务日常运行的CPU使用率不高,由于执行某一操作使得CPU使用率过高,导致业务运行缓慢,该场景下,您需要关注执行耗时久的请求。
如果发现异常请求,您可以找到该请求对应的opid,执行db.killOp(opid)命令终止该请求。
support.huaweicloud.com/usermanual-dds/dds_01_0054.html