请通过浏览器功能收藏网页

mongodb的运行状态查看及内存使用查看 mongodb

发布时间:2018-09-11 14:50:01  作者:本站编辑  来源:本站原创  浏览次数:
我有话说 | 分享 |
www.javainfo.com.cn 上干货 欢迎收藏

查看正在进行的操作   

使用db.currentOp()命令,该函数会列出数据库正在进行的所有操作,其中一些字段:

    命令详解:https://docs.mongodb.com/manual/reference/method/db.currentOp/index.html

1:opid:操作的唯一标识符

2:active:该操作是否正在运行

3:secs_running:该操作已经执行的时间

4:op:操作的类型

5:desc:日志中与此连接相关的每一条记录都会以[conn3]为前缀,因此可以此来筛选日志

6:locs:描述该操作使用的锁的类型,其中“^”表示全局锁

7:waitingForLock:表示该操作是否因正在等待锁而处于阻塞状态

8:numYields:表示该操作交出锁,而使其他操作得以运行的次数

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

    在执行db.currentOp的时候,还可以加入过滤条件,从而只显示符合条件的结果,比如:b.currentOp({“ns”:”mydb.users”});


只查询该命名空间的操作通常用这个命令来查找耗时的操作,但是,所有跟复制、分片等相关的操作,都应该忽略掉,即使慢也不要去动,更不要去终止他们


终止操作的执行

可以用db.killOp(opid);,其中的opid可以通过上面的命令来查看。


系统分析器可记录特殊集合system.profile中的操作,并提供大量有关耗时过长的操作信息,系统的整体性能会有所下降,因此默认是关闭的。

    Changed in version 3.4.

currentOp and the database profiler report the same basic diagnostic information for all CRUD operations

3.4版本后  此命令返回的数据与currentOP返回的数据一致

          https://docs.mongodb.com/manual/reference/database-profiler/index.html

1:开启系统分析器:db.setProfilingLevel(级别,自定义耗时长);

   https://docs.mongodb.com/manual/reference/method/db.setProfilingLevel/index.html

命令已经修改 

设置为1级,默认会记录耗时大于100ms的操作,也可以自定义时长

设置为2级,分析器就会记录所有内容 ;

设置为0级,将会关闭系统分析器

2:通过查看system.profile集合的内容,在那个数据库上开启,就在那个数据库里面查看

获取服务器统计信息:db.serverStatus();

计算空间消耗

1:使用Object.bsonsize()来计算文档的大小,比如:

Object.bsonsize(db.users.findOne(可以加条件));

2:使用stats函数来显示一个集合的信息,比如:

db.users.stats(比例因子); 可以传入比例因子,如1024表示k,1024*1024表示M

3:使用stats函数显示数据库的信息,跟上面一个类似


mongotop和mongostat

    MongoDB自带的命令行工具,通过每隔几秒输出当前状态,以监控数据库



如有疑问 请留言 欢迎提供建议
  • 0

    开心

  • 0

    板砖

  • 0

    感动

  • 0

    有用

  • 0

    疑问

  • 0

    难过

  • 0

    无聊

  • 0

    震惊

评论已有 0