MongoDB 常用故障排查工具

1.profile

profiling
levels:

0,关闭profile;1,只抓取slow查询;2,抓取所有数据。

启动profile并且设置Profile级别:

可以通过mongo shell启动,也可以通过驱动中的profile命令启动,启动后记录会被保存在system.profile collection下,可以使用db.setProfilingLevel来启动。默认slow为100   毫秒。db.setProfilingLevel可以有2个参数,第一个参数指定Profiling 级别,第二个参     数指定slow阀值。

         检查当前Profiling 级别:可以通过db.getProfilingStatus()获取当前profiling级别,slowms      标记慢查询阀值。

         关闭Profiling还是使用db.setProfilingLevel(0)来关闭profiling

         整个实例开启Profiling:mongod
--prifile=1 --slowms=15

        
shard
的Profiling:对shard的profiling要对每一个实例进行profiling

查看Profiling数据

可以直接在system.profile的collection上查看如:db.systen.profile.find()。或者使用show
       profile,会显示最近至少1ms时间运行的前5条记录。

Profiler概述

要修改system.profile collection的大小必须:1.关闭profiling,2.删除system.profile,3.然后重新创建system.profile,4.重启profile。

shell如下:db.setProfilingLevel(0)

,db.system.profile.drop()

,db.createCollect("system.profile",{cappedLtrue,size:4000000})

,db.setProfilingLevel(1)

2.Mongostat

mongostat n n:刷新秒数 反应当前mongod的负荷

http://docs.mongodb.org/manual/reference/program/mongostat/

 

inserts      - #
of inserts per second (* means replicated
op)
query        - # of
queries per
second
update       - # of
updates per
second
delete       - # of
deletes per second
getmore      -
# of get mores (cursor batch) per
second
command      - # of
commands per second, on a slave its
local|replicated
flushes      - #
of fsync flushes per
second
mapped       - amount
of data mmaped (total data size)
megabytes
vsize       
- virtual size of process in
megabytes
res         
- resident size of process in
megabytes
faults       - #
of pages faults per
sec
locked       - name of
and percent time for most locked database
idx
miss     - percent of btree page misses
(sampled)
qr|qw       
- queue lengths for clients waiting
(read|write)
ar|aw       
- active clients
(read|write)
netIn       
- network traffic in -
bits
netOut       - network
traffic out -
bits
conn        
- number of open
connections
set         
- replica set
name
repl        
- replication
type
                 
PRI - primary
(master)
                 
SEC -
secondary
                 
REC -
recovering
                 
UNK -
unknown
                 
SLV -
slave
                 
RTR - mongos process ("router")

3.Mongoop

collection级别反应,读写的时间

http://docs.mongodb.org/manual/reference/program/mongotop/

mongotop -h 192.168.10.69
2,每间隔2秒返回一次结果

ns      
total       
read      
write             
2014-05-09T14:00:55
   
ub1405.system.users        
0ms        
0ms         0ms
 
ub1405.system.profile        
0ms        
0ms         0ms

b1405.system.namespaces        
0ms        
0ms         0ms
 
ub1405.system.indexes        
0ms        
0ms         0ms

   
ub1405.WapRecommend        
0ms        
0ms         0ms
  
ub1405.VisitPageInfo        
0ms        
0ms         0ms

      
ub1405.UsageInfo        
0ms        
0ms         0ms

    
ub1405.UpgradeInfo        
0ms        
0ms         0ms

         
ub1405.Switch        
0ms        
0ms         0ms

 


4.mongoperf

用来测试io性能,可以用来做mongo的io压力测试,和sql
server的
SQLIOSim

http://docs.mongodb.org/manual/reference/program/mongoperf/

 

5. ServerStatus db.serverStatus()

 

包含了很多信息

1.实例信息

2.锁

3.全局锁

4.内存使用

5.连接

6.额外信息

7.索引计数器

8.cursors

9.网络

10.复制集

11.复制集操作集数

12.操作计数器

13.断言

14.writeBackQueued

15.Journal(dur)持久性

16.recordStats

17.工作集(workingSet)

18.指标(metrics)

 

6.db.stats()

 

反应数据库所占用的存储

{
        "db" : "ub1405",

        "collections" : 17,

        "objects" : 9939344,

        "avgObjSize" :
336.2453477815035,
       
"dataSize" : 3342058180,
       
"storageSize" : 4501643264,
       
"numExtents" : 111,
       
"indexes" : 15,
        "indexSize"
: 322633136,
        "fileSize" :
8519680000,
        "nsSizeMB" :
16,
        "dataFileVersion" :
{

               
"major" : 4,

               
"minor" : 5
        },

        "ok" : 1
}

7.db.collection.stats()

返回collection的一些信息:

{
        "ns" :
"ub1405.WapRecommend",
       
"count" : 514,
        "size" :
174416,
        "avgObjSize" :
339.3307392996109,
       
"storageSize" : 430080,
       
"numExtents" : 3,
        "nindexes"
: 1,
        "lastExtentSize" :
327680,
        "paddingFactor" :
1,
        "systemFlags" : 1,

        "userFlags" : 0,

        "totalIndexSize" : 24528,

        "indexSizes" : {

               
"_id_" : 24528
        },

        "ok" : 1
}

时间: 2024-10-06 06:13:31

MongoDB 常用故障排查工具的相关文章

【JAVA】 Java 项目常用故障排查

JAVA 项目常用故障排查 常用命令 1.pidstat 查看进程的 cpu.memory.disk 使用情况,已定时轮询的方式 # 安装 $ yum install sysstat $ apt-get install sysstat # 每一秒钟采样一次 一共采样3次 采样进程为13084 # -p 指定进程号 # memory 情况 $ pidstat -r -p 13084 1 3 # cpu 情况 $ pidstat -u -p 13787 1 3 # disk 情况 $ pidstat

虚拟机性能监控与故障排查工具介绍

本文来读书籍<深入理解java虚拟机-JVM高级特性与最佳实践>的阅读笔记,并且对虚拟机性能监控与故障排查一节做了内容整理. 关于导图中的两部分内容还是希望大家能够亲自测试体验下,在网上也有不少的文章介绍,这里摘录几篇个人认为不错的文章,供参考: jstat/jinfo/jstack/jmap命令行工具使用详细介绍 VisualVM 官网介绍及使用说明 使用 VisualVM 进行性能分析及调优 使用VisualVm监控远程Linux服务器java进程 由于在 linux 服务器上面,使用远程

erlang 故障排查工具

系统级别perf top, dstat -tam, vtune 都能很好分析beam 瓶颈,本文主要erlang 级别排查: 1. 反编译 确认线上运行代码是否正确,reltools没掌握好,升级偶尔出现问题 decompile(Mod) -> {ok,{_,[{abstract_code,{_,AC}}]}} = beam_lib:chunks(code:which(Mod), [abstract_code]), io:format("~s~n", [erl_prettypr:

SQL Server 2008性能故障排查(一)——概论

原文:SQL Server 2008性能故障排查(一)--概论 备注:本人花了大量下班时间翻译,绝无抄袭,允许转载,但请注明出处.由于篇幅长,无法一篇博文全部说完,同时也没那么快全部翻译完,所以按章节发布.由于本人水平有限,翻译结果肯定存在问题,为了不造成误导,在每篇结尾处都附上原文,供大家参考,也希望能指出我的问题,以便改进.谢谢. 另外,本文写给稍微有经验的数据库开发人员或者DBA看,初学者可能会看不懂.在此请见谅 作者:Sunil Agarwal, Boris Baryshnikov, K

Kubernetes之kubectl常用命令使用指南:2:故障排查

kubectl是一个用于操作kubernetes集群的命令行接口,通过利用kubectl的各种命令可以实现各种功能,是在使用kubernetes中非常常用的工具.这里我们会通过一些简单的实例来展现其中一些高频命令的使用方法. 更为重要的是这些命令使用的场景以及能够解决什么样的问题.上篇文章我们介绍了创建和删除相关的几条命令,这篇文章我们来看一下出现问题时最常用的另外九条命令. 常用命令 kubectl故障排查相关,本文将会简单介绍一下如下命令 项番 命令 说明 No.1 version 显示客户

51CTO学习笔记--Linux运维故障排查思路与系统调优技巧视频课程(高俊峰)

51CTO学习笔记--Linux运维故障排查思路与系统调优技巧视频课程 第一课 Linux运维经验分享与思路 1.一般把主机名,写到hosts下    127.0.0.1    hostname,因为很多应用要解析到本地.oracle没有这个解析可能启动不了. 2.注释掉UUID以及MAC地址,需要绑定网卡的时候,这个可能会有影响. 3.磁盘满了无法启动,  var下木有空间,无法创创建PID等文件,导致文件无法启动,按e   进入single  然后b  重启进入单用户模式. 4.ssh登陆系

线上应用故障排查之二:高内存占用

搞Java开发的,经常会碰到下面两种异常: 1.java.lang.OutOfMemoryError: PermGen space 2.java.lang.OutOfMemoryError: Java heap space 要详细解释这两种异常,需要简单重提下Java内存模型. Java内存模型是描述Java程序中各变量(实例域.静态域和数组元素)之间的关系,以及在实际计算机系统中将变量存储到内存和从内存取出变量这样的低层细节. 在Java虚拟机中,内存分为三个代:新生代(New).老生代(Ol

JVM 线上故障排查基本操作

# 前言 对于后端程序员,特别是 Java 程序员来讲,排查线上问题是不可避免的.各种 CPU 飚高,内存溢出,频繁 GC 等等,这些都是令人头疼的问题.楼主同样也遇到过这些问题,那么,遇到这些问题该如何解决呢? 首先,出现问题,肯定要先定位问题所在,然后分析问题原因,再然后解决问题,最后进行总结,防止下次再次出现. 今天的文章,就如我们的题目一样,讲的是基本操作,也就是一些排查线上问题的基本方法.为什么这么说呢?因为线上问题千奇百怪,就算是身经百战的专家也会遇到棘手的问题,因此不可能在一篇文章

线上应用故障排查之二:高内存占用(转)

搞Java开发的,经常会碰到下面两种异常: 1.java.lang.OutOfMemoryError: PermGen space 2.java.lang.OutOfMemoryError: Java heap space 要详细解释这两种异常,需要简单重提下Java内存模型. (友情提示:本博文章转载,出处:hankchen,http://www.blogjava.net/hankchen) Java内存模型是描述Java程序中各变量(实例域.静态域和数组元素)之间的关系,以及在实际计算机系统