MongoDB中如何强制终止正在处理中的请求
概述
本文主要介绍MongoDB中如何强制终止正在处理中的请求。
详细信息
阿里云提醒您:
- 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
- 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
- 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
MongoDB中某个请求正在被处理中且未结束,是可以强制终止该请求的,但在终止该请求前,需要分析该请求,具体信息请参考以下内容。
- 通过Mongo Shell连接实例。
说明:关于如何连接实例,详情请参见Mongo Shell连接单节点实例、Mongo Shell连接副本集实例、Mongo Shell连接分片集群实例。
- 执行
db.currentOp()
命令,查看数据库当前正在执行的操作。说明:执行该命令后,关于输出各参数的说明请参考如下:
- client:该请求是由哪个客户端发起的。
- opid:操作的唯一标识符。
- secs_running:表示该操作已经执行的时间,单位为秒。
- microsecs_running:表示该操作已经执行的时间,单位为微秒。
- ns:该操作目标集合。
- op:表示操作的类型。通常是查询、插入、更新、删除中的一种。
- locks:跟锁相关的信息。
- 针对上一步获取的各操作信息,确认异常请求的
opid
。说明:一般由于业务需要,导致实例CPU使用率上升,业务响应缓慢,此时建议重点关注secs_running和microsecs_running两个参数,如果该字段返回的值特别大,需要查看请求是否合理。
- 执行以下命令,终止异常请求。
db.killOp([$OPID])
说明:[$OPID]为需要终止请求的opid。
适用于
- 云数据库MongoDB版