1、mongotop

#mongotop -h 127.0.0.1:27017 -u test -p test123 --authenticationDatabase admin

输出说明:

  • ns:包含数据库命名空间,后者结合了数据库名称和集合。
  • db:包含数据库的名称。名为 . 的数据库针对全局锁定,而非特定数据库。
  • total:mongod花费的时间工作在这个命名空间提供总额。
  • read:提供了大量的时间,这mongod花费在执行读操作,在此命名空间。
  • write:提供这个命名空间进行写操作,这mongod花了大量的时间。

2、mongostat

#mongostat -h 127.0.0.1:27017 -u test -p test123 --authenticationDatabase admin

  • inserts/s 每秒插入次数
  • query/s 每秒查询次数
  • update/s 每秒更新次数
  • delete/s 每秒删除次数
  • getmore/s 每秒执行getmore次数
  • command/s 每秒的命令数,比以上插入、查找、更新、删除的综合还多,还统计了别的命令
  • flushs/s 每秒执行fsync将数据写入硬盘的次数。
  • mapped/s 所有的被mmap的数据量,单位是MB,
  • vsize 虚拟内存使用量,单位MB
  • res 物理内存使用量,单位MB
  • faults/s 每秒访问失败数(只有Linux有),数据被交换出物理内存,放到swap。不要超过100,否则就是机器内存太小,造成频繁swap写入。此时要升级内存或者扩展
  • locked % 被锁的时间百分比,尽量控制在50%以下吧
  • idx miss % 索引不命中所占百分比。如果太高的话就要考虑索引是不是少了
  • q t|r|w 当Mongodb接收到太多的命令而数据库被锁住无法执行完成,它会将命令加入队列。这一栏显示了总共、读、写3个队列的长度,都为0的话表示mongo毫无压力。高并发时,一般队列值会升高。
  • conn 当前连接数
  • time 时间戳

3、查看当前的option

Mongodb 的命令一般很快就完成,但是在一台繁忙的机器或者有比较慢的命令时,你可以通过db.currentOp()获取当前正在执行的操作,在没有负载的机器上,该命令基本上都是返回空的  

>db.currentOp()

{ "opid" : "shard3:466404288", "active" : false, "waitingForLock" : false, "op" : "query", "ns" : "sd.usersEmails", "query" : { }, "client_s" : "10.121.13.8:34473", "desc" : "conn" },

如果发现一个操作太长,把数据库卡死的话,可以用以下命令杀死他:

>db.killOp("shard3:466404288")

4、打开profiler,类似于mysql的slow_log慢查询,默认是关闭的。

0:关闭,不收集任何数据。
1:收集慢查询数据,默认是100毫秒。
2:收集所有数据

首先切换到需要打开慢查询的库

>use  spark

>db.auth('test','test123')

>db.setProfilingLevel(2)

>db.getProfilingLevel()

可以自定义时间,单位是ms:

>db.setProfilingLevel(1,300)

查看:

>db.system.profile.find().sort({$natural:-1})

  • ts:时间戳
  • info:具体的操作
  • millis:操作所花时间,毫秒

查看profiler的数量:

>db.system.profile.count();

查看影响的行数:

>db.system.profile.explain()

5、查看副本集同步延迟

> db.printSlaveReplicationInfo()

6、3.4版本以后默认的数据库存储引擎是wiredTiger,查看当前占用的内存

> db.runCommand({ serverStatus: 1}).wiredTiger.cache["bytes currently in the cache"]

16179710118

设置cacheSize为10G,根据自己的服务器情况指定:

>db.adminCommand({setParameter: 1, wiredTigerEngineRuntimeConfig: "cache_size=10G"})

{ "was" : "", "ok" : 1 }

上面的设置重启后就失效了,可以写进配置文件

systemLog:
destination: file
logAppend: true
path: /data/log/mongodb.log
storage:
dbPath: /data/mongodata
journal:
enabled: true
engine: wiredTiger
wiredTiger:
engineConfig:
cacheSizeGB:
processManagement:
fork: true # fork and run in background
pidFilePath: /var/run/mongod.pid
net:
port:
# bindIp: 0.0.0.0 # Listen to local interface only, comment to listen on all interfaces.
replication:
replSetName: rs3
oplogSizeMB:
security:
keyFile: "/data/mongodb.key"
clusterAuthMode: "keyFile"
authorization: "enabled"

查看mongodb的状态的更多相关文章

  1. mongostat查看mongodb运行状态使用命令介绍

    mongostat是mongodb自带的一个用来查看mongodb运行状态的工具 使用说明 mongostat -h   字段说明 启用后的状况是这样的 insert query update del ...

  2. 使用MegaCli工具查看Raid磁盘阵列状态

    转载自:http://home.51.com/chenjianghui1987/diary/item/10051836.html 文章本身我不做过多修改了,在这里我就把自己在安装时候碰到的难点跟大家提 ...

  3. MySql状态查看方法 MySql如何查看连接数和状态?

    原文:MySql状态查看方法 MySql如何查看连接数和状态? 如果是root帐号,你能看到所有用户的当前连接.如果是其它普通帐号,只能看到自己占用的连接 怎么进入mysql命令行呢? mysql的安 ...

  4. IE调试网页之三:使用 F12 工具控制台查看错误和状态 (Windows)

    IE调试网页之三:使用 F12 工具控制台查看错误和状态 (Windows)  等 请见博客园的  我的收藏

  5. 【mongodb系统学习之四】查看mongodb进程

    四.查看mongodb进程(可以配合启动和关闭使用): 1).方法一:直接查看mongodb进程是否已经存在(用上面的方式启动后,需要另开一个窗口操作):ps –ef|grep mongodb, 如图 ...

  6. 如何查看cisco 生成树状态

    如何查看cisco 生成树状态  Role(角色): 1.Desg(指定端口)   2.Root(根端口)    3.Altn(替换端口) Sts(状态): 1.FWD(转发)      2.BLK( ...

  7. MySQL优化:使用show status查看MySQL服务器状态信息

    在网站开发过程中,有些时候我们需要了解MySQL的服务器状态信息,譬如当前MySQL启动后的运行时间,当前MySQL的客户端会话连接数,当前MySQL服务器执行的慢查询数,当前MySQL执行了多少SE ...

  8. linux中查看http各种状态数量

    转自: http://www.cnblogs.com/wayne173/p/5652043.html 我们的网站部署在linux的服务器上,特别是web服务器,我们可能有时候做为运维人员,肯定是要查看 ...

  9. 使用 SHOW STATUS 查看mysql 服务器状态信息

    在LAMP架构的网站开发过程中,有些时候我们需要了解MySQL的服务器状态信息,譬如当前MySQL启动后的运行时间,当前MySQL的客户端会话连接数,当前MySQL服务器执行的慢查询数,当前MySQL ...

随机推荐

  1. js跳转页面方法实现汇总

    一.页面之间的跳转传参 1.在页面之间跳转的方式有两种: window.location.href=”test.html?num=10”   地址会改变参数也会被传递但是不会打开新窗口 window. ...

  2. bootstrap 图片切换

    <!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title> ...

  3. 冲刺博客NO.6

    今天做了什么:通过自学已经掌握对多控件的使用并学会使用进度条 遇到的困难:Handler使用错误,对其理解错误,导致很多误会后来百度发现 Handler是Android系统消息机制抽象出来的一个类(并 ...

  4. MySql字段类型说明

    bigint 从 -^ (-) 到 ^- () 的整型数据(所有数字).存储大小为 个字节. P.S. bigint已经有长度了,在mysql建表中的length,只是用于显示的位数 int 从 -^ ...

  5. SpringCloud实现集群和负载均衡

    Spring cloud是一个基于Spring Boot实现的服务治理工具包,在微服务架构中用于管理和协调服务的. 组成部分 spingcloud的五大神兽 服务发现——Netflix Eureka ...

  6. delphi char数组、string和Pchar的相互转换

    因为要调用windows的api或者给vc++写接口,很多地方都要用到pchar,现在将char数组.string和pchar之间的相互转换都列出来,都是网上找的资料,我总结一下,先直接上代码,再讲原 ...

  7. python3 os.path.realpath(__file__) 和 os.path.cwd() 方法的区别

    python3 os.path.realpath(__file__) 和 os.path.cwd() 方法的区别 os.path.realpath 获取当前执行脚本的绝对路径. os.path.rea ...

  8. Android逆向进阶—— 脱壳的奥义(基ART模式下的dump)

    本文作者:i春秋作家HAI_ZHU 0×00 前言 市面上的资料大多都是基于Dalvik模式的dump,所以这此准备搞一个ART模式下的dump.HAI_的使用手册(各种好东西) Dalvik模式是A ...

  9. [JavaScript] Nginx实现跨域设置

    假如跨域请求的接口为:http://xxx.cn/was5/web/search Nginx配置: 在conf/nginx.conf文件中 location / { root html; index ...

  10. js中cookie,localStorage(sessionStorage)的存取

    一.cookie (原生的不好用,自己简单封装) 1. 存cookie的方法: function setCookie(c_name,value,expiredays) { var exdate=new ...