MongoDB的读书笔记

了解应用的动态

  • 了解正在进行的操作
db.currentOp();

// Result:
{
    "inprog" : [
        {
            "desc" : "conn46286",
            "threadId" : "868",
            "connectionId" : 46286,
            "client" : "192.168.0.54:26017",
            "appName" : "MongoDB Shell",
            "clientMetadata" : {
                "application" : {
                    "name" : "MongoDB Shell"
                },
                "driver" : {
                    "name" : "MongoDB Internal Client",
                    "version" : "3.4.0"
                },
                "os" : {
                    "type" : "Windows",
                    "name" : "Microsoft Windows 7",
                    "architecture" : "x86_64",
                    "version" : "6.1 SP1 (build 7601)"
                }
            },
            "active" : true,//表示该操作是否正在执行,false代表该操作已交出或等待其他操作交出锁
            "opid" : 7617093,//该操作唯一标识符,可以通过它终止一个操作
            "secs_running" : 0,
            "microsecs_running" : NumberLong(36),//该操作已运行时间
            "op" : "command",   //操作的类型
            "ns" : "admin.$cmd",
            "query" : {
                "currentOp" : 1
            },
            "numYields" : 0,//该操作交出锁,让别的操作的执行的次数
            "locks" : {

            },
            "waitingForLock" : false,
            "lockStats" : {

            }
        }
    ],
    "ok" : 1
}
  • 终止有问题的操作
通过传入opid作为参数,交出锁的进程才能被终止(更新、查找、删除可以被终止),正在占用或等待锁无法被终止
db.killOp(opid);
  • 使用系统分析器

profile来查找耗时过长的操作,感觉类似mysql的慢查询日志,都会影响性能,记录在system.profile集合,该集合是一个capped集合(固定大小的集合,可以手动删除在新建调整集合大小)

关于datasize/storeagesize/filesize

有一篇很好的文章介绍三者的区别

  • 但需要补充的是filesize只限定与mmap引擎才有,wired-tiger没有这个参数
  • storagesize 和 filesize都只针对数据相关,都不包括索引大小。storeagesize比filesize 空间理论上只多出删除文档原来占有的空间,但是在wired-tiger引擎会对storeagesize 采用snappy压缩算法,导致storagesize实际上比filesize更小(这点比较奇怪)
  • filesize其实才是数据库所有部分在磁盘上占有的空间
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值