• MongoDB 了解正在进行的操作


    1.1 查看正在进行的操作

    使用db.currentOp()函数:

    >db.currentOp()

    1、opid 这是操作的唯一标识符,可以通过它来终止操作

    2、active 表示操作是否正在进行。如果为false表示操作已交出或正在等其他操作交出锁

    3、secs_running 表示该操作已经执行的时间。可通过她判断哪些查询耗时过长,或者占用了过多的数据库资源

    4、op 表示操作类型

    5、desc 该值与日志(log)信息联系起来。日志中与此连接相关的每一天记录都会以[conn3]为前缀,因此可以

    以此来筛选相关的日志信息

    6、locks 描述该操作使用的锁的类型。其中"^"表示全局锁

    7、waitingForLock 表示该操作是否因正在等待其他操作交出锁而处于阻塞状态

    8、numYields 表示该操作交出锁(yield),而使其他操作得以运行的次数。通常进行文档搜索的操作(查询、更新和删除)可以交出锁。只有在其他操作队列等待该操作所持的锁时,它才会交出自己的锁。简单来讲,如果没有其他操作处于waitingForLock状态,则该操作不会交出锁。

    9、lockstats.timeAcquiringMicros 表示该操作需要多长时间才能取得所需的锁

    1.2 db.currentOp()中添加过滤条件

    把查询的条件作为参数传入函数来进行过滤

    >db.currentOp({"ns":"prod.users"})

    对于currentOp中的任何字段都可以查询,使用普通的查询语句即可

    1.3 寻找有问题的操作

    1.4 终止操作执行

    >db.killoP(123)

    并非所有操作都能终止。一般来讲,只有交出了锁的进程才能终止,正在占用锁,或正在等待其他操作交出锁的操作则通常无法被终止。

    如果向一个操作发出了"kill"信号,那么它在db.currentOp的输出中就会有一个killed字段。然而,只有从当前操作列表中消失后,他才真正的被终止。

    1.5 假象

    避免终止mongoDB自身进程

    1.6 避免幽灵操作

  • 相关阅读:
    F4搜索帮助 带回多个值
    ALV Tree demo(WBS元素分层显示)[引用别人的]
    WDA导出文件XLS,WORD
    采购信息记录修改[BDC]
    增强:MB1A物料价格检查
    机器学习中常见优化方法汇总
    统计模型机器学习模型领域相关知识,指标概念及问题点积累
    机器学习数学知识中令人费解的notation符号注解
    线性代数的视角理解LSR(least square regression)的参数评估算法本质
    statsmodels中的summary解读(以linear regression模型为例)
  • 原文地址:https://www.cnblogs.com/xibuhaohao/p/11275104.html
Copyright © 2020-2023  润新知