第四部分 性能篇 第十一章 MongoDB 性能监控

声明:该文章主要来自《MongoDB实战》一书内容,主要想通过该书学习MongoDB的相应知识,加深理解,故写在自己的博文当中,作为记录在最后的章节中,会有一个自己集合MongoDB数据库应用的JavaEE的web应用。

1、MongoStat

此工具可以快速的查看某组运行中的MongoDB实例的统计信息,用法如下:

[[email protected] bin]# ./mongostat
connected to: 127.0.0.1
insert  query update delete getmore command flushes mapped  vsize    res faults     locked db idx miss %     qr|qw   ar|aw  netIn netOut  conn       time
    *0     *0     *0     *0       0     1|0       0   320m   939m    37m      1 zhangsan:0.1%          0       0|0     0|0    62b     3k     2   21:49:23
    *0     *0     *0     *0       0     1|0       0   320m   939m    37m      0 zhangsan:0.0%          0       0|0     0|0    62b     3k     2   21:49:24
    *0     *0     *0     *0       0     1|0       0   320m   939m    37m      0 zhangsan:0.0%          0       0|0     0|0    62b     3k     2   21:49:25
    *0     *0     *0     *0       0     1|0       0   320m   939m    37m      0 zhangsan:0.0%          0       0|0     0|0    62b     3k     2   21:49:26 

字段说明:

  • insert每秒插入量
  • query每秒查询量
  • update每秒更新量
  • delete每秒删除量
  • locked锁定量
  • qr|qw客户端查询排队长度(读|写)
  • ar|aw活跃客户端量(读|写)
  • conn连接数
  • time当前时间

它每秒中刷新一次状态值,提供良好的可读性,通过这些参数可以观察到一个整体的性能情况。

2、db.serverStatus

这个命令是最常用也是最基础的查看实例运行状态的命令之一,下面我们看一下它的输出:

> db.serverStatus()
{
        "host" : "localhost.localdomain",
        "version" : "2.6.6", --服务器版本
        "process" : "mongod",
        "pid" : NumberLong(29293),
        "uptime" : 23180,--启动时间(秒)
        "uptimeMillis" : NumberLong(23179942),
        "uptimeEstimate" : 21041,
        "localTime" : ISODate("2015-01-04T13:53:03.792Z"),
        "asserts" : {
                "regular" : 0,
                "warning" : 0,
                "msg" : 0,
                "user" : 0,
                "rollovers" : 0
        },
        "backgroundFlushing" : {
                "flushes" : 386,
                "total_ms" : 99,
                "average_ms" : 0.25647668393782386,
                "last_ms" : 0,
                "last_finished" : ISODate("2015-01-04T13:52:44.259Z")
        },
        "connections" : {
                "current" : 2,--当前活动连接量
                "available" : 817,--剩余空闲连接量
                "totalCreated" : NumberLong(19)
        },
        "cursors" : {
                "note" : "deprecated, use server status metrics",
                "clientCursors_size" : 0,
                "totalOpen" : 0,
                "pinned" : 0,
                "totalNoTimeout" : 0,
                "timedOut" : 0
        },
        "dur" : {
                "commits" : 29,
                "journaledMB" : 0,
                "writeToDataFilesMB" : 0,
                "compression" : 0,
                "commitsInWriteLock" : 0,
                "earlyCommits" : 0,
                "timeMs" : {
                        "dt" : 3038,
                        "prepLogBuffer" : 0,
                        "writeToJournal" : 0,
                        "writeToDataFiles" : 0,
                        "remapPrivateView" : 0
                }
        },
        "extra_info" : {
                "note" : "fields vary by platform",
                "heap_usage_bytes" : 62803792,
                "page_faults" : 36
        },
        "globalLock" : {
                "totalTime" : NumberLong("23179943000"),
                "lockTime" : NumberLong(3334379),
                "currentQueue" : {
                        "total" : 0,--当前全部队列量
                        "readers" : 0,--读请求队列量
                        "writers" : 0--写请求队列量
                },
                "activeClients" : {
                        "total" : 0,--当前全部客户端连接量
                        "readers" : 0,--客户端读请求量
                        "writers" : 0--客户端写请求量
                }
        },
        "indexCounters" : {
                "accesses" : 38,--索引被访问量
                "hits" : 38,--索引命中量
                "misses" : 0,--索引偏差两
                "resets" : 0,
                "missRatio" : 0--索引偏差率(未命中率)
        },
        "locks" : {
                "." : {
                        "timeLockedMicros" : {
                                "R" : NumberLong(954466),
                                "W" : NumberLong(3334379)
                        },
                        "timeAcquiringMicros" : {
                                "R" : NumberLong(5652043),
                                "W" : NumberLong(133798)
                        }
                },
                "admin" : {
                        "timeLockedMicros" : {
                                "r" : NumberLong(255071),
                                "w" : NumberLong(0)
                        },
                        "timeAcquiringMicros" : {
                                "r" : NumberLong(67318),
                                "w" : NumberLong(0)
                        }
                },
                "local" : {
                        "timeLockedMicros" : {
                                "r" : NumberLong(82150),
                                "w" : NumberLong(17)
                        },
                        "timeAcquiringMicros" : {
                                "r" : NumberLong(18964),
                                "w" : NumberLong(1)
                        }
                },
                "zhangsan" : {
                        "timeLockedMicros" : {
                                "r" : NumberLong(8788),
                                "w" : NumberLong(1673999)
                        },
                        "timeAcquiringMicros" : {
                                "r" : NumberLong(1409),
                                "w" : NumberLong(55)
                        }
                },
                "temp" : {
                        "timeLockedMicros" : {
                                "r" : NumberLong(340424),
                                "w" : NumberLong(2765621)
                        },
                        "timeAcquiringMicros" : {
                                "r" : NumberLong(111659),
                                "w" : NumberLong(6212)
                        }
                },
                "test" : {
                        "timeLockedMicros" : {
                                "r" : NumberLong(602182),
                                "w" : NumberLong(437948)
                        },
                        "timeAcquiringMicros" : {
                                "r" : NumberLong(73084),
                                "w" : NumberLong(85)
                        }
                }
        },
        "network" : {
                "bytesIn" : 66494,--发给此服务器的数据量(单位:byte)
                "bytesOut" : 865147,--此服务器发出的数据量(单位:byte)
                "numRequests" : 851--发给此服务器的请求量
        },
        "opcounters" : {
                "insert" : 9,--插入操作的量
                "query" : 1928,--查询操作的量
                "update" : 8,--更新操作的量
                "delete" : 2,
                "getmore" : 0,
                "command" : 812--其他操作的量
        },
        "opcountersRepl" : {
                "insert" : 0,
                "query" : 0,
                "update" : 0,
                "delete" : 0,
                "getmore" : 0,
                "command" : 0
        },
        "recordStats" : {
                "accessesNotInMemory" : 0,
                "pageFaultExceptionsThrown" : 0,
                "admin" : {
                        "accessesNotInMemory" : 0,
                        "pageFaultExceptionsThrown" : 0
                },
                "local" : {
                        "accessesNotInMemory" : 0,
                        "pageFaultExceptionsThrown" : 0
                },
                "temp" : {
                        "accessesNotInMemory" : 0,
                        "pageFaultExceptionsThrown" : 0
                },
                "test" : {
                        "accessesNotInMemory" : 0,
                        "pageFaultExceptionsThrown" : 0
                },
                "zhangsan" : {
                        "accessesNotInMemory" : 0,
                        "pageFaultExceptionsThrown" : 0
                }
        },
        "writeBacksQueued" : false,
        "mem" : {
                "bits" : 64,--64位系统
                "resident" : 37,--占用物理内存量
                "virtual" : 939,--虚拟内存量
                "supported" : true,--是否支持扩展内存
                "mapped" : 320,
                "mappedWithJournal" : 640
        },
        "metrics" : {
                "cursor" : {
                        "timedOut" : NumberLong(0),
                        "open" : {
                                "noTimeout" : NumberLong(0),
                                "pinned" : NumberLong(0),
                                "total" : NumberLong(0)
                        }
                },
                "document" : {
                        "deleted" : NumberLong(1),
                        "inserted" : NumberLong(9),
                        "returned" : NumberLong(428),
                        "updated" : NumberLong(8)
                },
                "getLastError" : {
                        "wtime" : {
                                "num" : 0,
                                "totalMillis" : 0
                        },
                        "wtimeouts" : NumberLong(0)
                },
                "operation" : {
                        "fastmod" : NumberLong(1),
                        "idhack" : NumberLong(0),
                        "scanAndOrder" : NumberLong(0)
                },
                "queryExecutor" : {
                        "scanned" : NumberLong(2),
                        "scannedObjects" : NumberLong(2)
                },
                "record" : {
                        "moves" : NumberLong(0)
                },
                "repl" : {
                        "apply" : {
                                "batches" : {
                                        "num" : 0,
                                        "totalMillis" : 0
                                },
                                "ops" : NumberLong(0)
                        },
                        "buffer" : {
                                "count" : NumberLong(0),
                                "maxSizeBytes" : 268435456,
                                "sizeBytes" : NumberLong(0)
                        },
                        "network" : {
                                "bytes" : NumberLong(0),
                                "getmores" : {
                                        "num" : 0,
                                        "totalMillis" : 0
                                },
                                "ops" : NumberLong(0),
                                "readersCreated" : NumberLong(0)
                        },
                        "preload" : {
                                "docs" : {
                                        "num" : 0,
                                        "totalMillis" : 0
                                },
                                "indexes" : {
                                        "num" : 0,
                                        "totalMillis" : 0
                                }
                        }
                },
                "storage" : {
                        "freelist" : {
                                "search" : {
                                        "bucketExhausted" : NumberLong(0),
                                        "requests" : NumberLong(399),
                                        "scanned" : NumberLong(731)
                                }
                        }
                },
                "ttl" : {
                        "deletedDocuments" : NumberLong(0),
                        "passes" : NumberLong(386)
                }
        },
        "ok" : 1
}
> 

3、db.stats

db.stats查看数据库状态信息,使用样例如下:

> db.stats()
{
        "db" : "test",
        "collections" : 16,--collection数量
        "objects" : 152,--对象数量
        "avgObjSize" : 72.42105263157895,--对象平均大小
        "dataSize" : 11008,--数据大小
        "storageSize" : 131072,--数据大小(含预分配空间)
        "numExtents" : 16,--事件数量
        "indexes" : 20,--索引数量
        "indexSize" : 163520,--索引文件大小
        "fileSize" : 67108864,--文件大小
        "nsSizeMB" : 16,
        "dataFileVersion" : {
                "major" : 4,
                "minor" : 5
        },
        "extentFreeList" : {
                "num" : 1,
                "totalSize" : 131072
        },
        "ok" : 1--本次取stats是否正常
}
> 

通过这个工具,可以查看当前数据库的基本信息。

4、第三方工具

MongoDB从一面世就得到了众多开源爱好者和团队的重视,在常用的监控框架如cacti、Nagios、Zabbix等基础上进行扩展,进行MongoDB的监控都是非常方便的。

---------------------------------MongoDB系列文章更新-----------------------------------------------------------------------------------------

第一部分 基础篇 第一章 走进MongoDB

第一部分 基础篇 第二章 安装MongoDB

第一部分 基础篇 第三章 MongoDB体系结构

第一部分 基础篇 第四章 MongoDB快速入门

第一部分 基础篇 第四章 MongoDB查询

第二部分 应用篇 第五章 MongoDB高级查询

第二部分 应用篇 第六章 MongoDB GridFS

第二部分 应用篇 第七章 MongoDB MapReduce

第三部分 管理篇 第八章 MongoDB服务管理

第三部分 管理篇 第九章 MongoDB shell之系统命令、用户命令

第三部分 管理篇 第九章 MongoDB shell之eval、进程

第四部分 性能篇 第十章 MongoDB 索引

时间: 2024-10-11 03:24:16

第四部分 性能篇 第十一章 MongoDB 性能监控的相关文章

第五部分 架构篇 第二十一章 MongoDB Sharding 架构(实践)

这是一种将海量的数据水平扩展的数据库集群系统,数据分别存储在sharding的各个节点上,使用者通过简单的配置就可以很方便地构建一个分布式MongoDB集群. MongoDB的数据分块成为chunk,每个chunk都是Collection中一段连续的数据记录,通常最大尺寸是200MB,超出则生成新的数据块. 要构建一个MongoDB Sharding Cluster需要以下三个角色: Shard Server 即存储实际数据的分片,每个Shard可以使一个mongod实例,也可以使一组mongo

第二篇第十一章灭火救援设施

2019/1/4 [录播]2018一消精华班-实务-一级消防工程师-环球网校 http://v.edu24ol.com/?type=lesson&id=178944&gid=16157 1/7 1.第二篇第十一章灭火救援设施 第十一章 灭火救援设施 学习要求:了解消防车道.消防登高面.救援窗及直升机停机坪的设置目的,熟悉其设置的作用,掌握消防车道.消防登高 面.救援窗及直升机停机坪及消防电梯的设置范围.数量.要求. 第一节消防车道 街区内的道路应考虑消防车的通行,室外消火栓的保护半径在15

第二部分 应用篇 第七章 MongoDB MapReduce

1.简介 MongoDB的MapReduce相当于MySQL中的group by,所以在MongoDB上使用Map/Reduce进行统计很容易,使用MapReduce要实现两个函数Map函数和Reduce函数,Map函数调用emit(key,value),遍历collection中所有的记录,将key与value传递给Reduce函数进行处理,Map函数和Reduce函数可以使用JavaScript来实现,可以通过db.runCommand或者mapReduce命令来执行一个MapReduce的

[大数据性能调优] 第一章:性能调优的本质、Spark资源使用原理和调优要点分析

本課主題 大数据性能调优的本质 Spark 性能调优要点分析 Spark 资源使用原理流程 Spark 资源调优最佳实战 Spark 更高性能的算子 引言 我们谈大数据性能调优,到底在谈什么,它的本质是什么,以及 Spark 在性能调优部份的要点,这两点让直式进入性能调优都是一个至关重要的问题,它的本质限制了我们调优到底要达到一个什么样的目标或者说我们是从什么本源上进行调优.希望这篇文章能为读者带出以下的启发: 了解大数据性能调优的本质 了解 Spark 性能调优要点分析 了解 Spark 在资

第五部分 架构篇 第十七章 MongoDB Sharding 架构(理解块)

1.如何创建块 在前面的已经了解MongoDB分片架构中块的基本概念,那么在此来讲述如何创建块?当你决定分配数据时,必须为块区间选择一个键(前面我们一直在用username)这个键叫做片键(shard key),片键可以是任意字段或者字段的组合,比如如下文档中: <pre name="code" class="java"><pre name="code" class="java">{"user

第二部分 应用篇 第五章 MongoDB高级查询

声明:该文章主要来自<MongoDB实战>一书内容,主要想通过该书学习MongoDB的相应知识,加深理解,故写在自己的博文当中,作为记录,在最后的章节中,会有一个自己集合MongoDB数据库应用的JavaEE的web应用. 本章将结合实际应用,重点阐述一些实际工作中最常用的方法. 面向文档的NoSQL数据库主要解决的问题不是高性能的并发读写,而是保证海量数据存储的同时,具有良好的查询性能. MongoDB最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似

第五部分 架构篇 第十三章 MongoDB Replica Sets 架构(成员深入理解)

在学习复制的概念之前,首先接着前面一章节的还有点未完结的内容做个简单的介绍,主要是自动故障转移.异步复制.以及附加功能,这些在此只做简单的介绍,在以后的相关章节中会专门深入学习. 1.自动故障转移 当Primary服务和架构中其他成员中断通信超过10秒,Replica Set将尝试选举其他成员成为一个新的Primary服务,获得多票数的Scondary将成为Primary. 架构如下: 说明: 在一个Replica Set架构中,如果Primary不可达,则会在除Primary之外的其他成员中自

第一部分 基础篇 第三章 MongoDB体系结构

声明:该文章主要来自<MongoDB实战>一书内容,主要想通过该书学习MongoDB的相应知识,加深理解,故写在自己的博文当中,作为记录,在最后的章节中,会有一个自己集合MongoDB数据库应用的JavaEE的web应用. MongoDB是一个可移植的数据库,它在流行的每一个平台上都可以使用,即所谓的跨平台性,在不同的操作系统上虽然略有差别,但是从整体架构上来看,MongoDB在不同的平台上是一样的,如数据逻辑结构和数据存储等等. 一个运行着的MongoDB数据库就可以看成是一个MongoDB

第二部分 应用篇 第六章 MongoDB GridFS

声明:该文章主要来自<MongoDB实战>一书内容,主要想通过该书学习MongoDB的相应知识,加深理解,故写在自己的博文当中,作为记录,在最后的章节中,会有一个自己集合MongoDB数据库应用的JavaEE的web应用. 1.简介 GridFS是一种将大型文件存储在MongoDB数据库中的文件规范,所有官方支持的驱动均实现了GridFS规范. 1.1.为什么要用GirdFS 由于MongoDB中BSON对象大小是有限制的,所有GridFS规范提供了一种透明的机制,可以将一个大文件分割成为多个