首页 > 数据库 >MongoDB性能监控调优

MongoDB性能监控调优

时间:2023-02-07 18:11:35浏览次数:48  
标签:MongoDB cache NumberLong eviction 监控 调优 pages store history

1.分析锁

> db.serverStatus().globalLock
{
        "totalTime" : NumberLong("5011164491000"),
        "currentQueue" : {
                "total" : 0,
                "readers" : 0,
                "writers" : 0
        },
        "activeClients" : {
                "total" : 0,
                "readers" : 0,
                "writers" : 0
        }
}


> db.serverStatus().locks
{
        "ParallelBatchWriterMode" : {
                "acquireCount" : {#该类型的锁被获取的次数
                        "r" : NumberLong(36502976),
                        "W" : NumberLong(1955332)
                },
                "acquireWaitCount" : {#锁等待的次数
                        "r" : NumberLong(1082),
                        "W" : NumberLong(306)
                },
                "timeAcquiringMicros" : {#等待的累计时间,单位是微妙
                        "r" : NumberLong(1154708),
                        "W" : NumberLong(129211)
                }
        },
        "FeatureCompatibilityVersion" : {
                "acquireCount" : {
                        "r" : NumberLong(68900575),
                        "w" : NumberLong(43441060)
                }
        },
        "ReplicationStateTransition" : {
                "acquireCount" : {
                        "w" : NumberLong(87266132),
                        "W" : NumberLong(2)
                },
                "acquireWaitCount" : {
                        "w" : NumberLong(2)
                },
                "timeAcquiringMicros" : {
                        "w" : NumberLong(2959)
                }
        },
        "Global" : {#全局锁
                "acquireCount" : {
                        "r" : NumberLong(70768407),
                        "w" : NumberLong(45449430),
                        "W" : NumberLong(6)
                }
        },
        "Database" : {#数据库级别锁
                "acquireCount" : {
                        "r" : NumberLong(8803291),
                        "w" : NumberLong(43475380),
                        "W" : NumberLong(22)
                }
        },
        "Collection" : {#集合级别锁
                "acquireCount" : {
                        "r" : NumberLong(14011371),
                        "w" : NumberLong(43475285),
                        "R" : NumberLong(17),
                        "W" : NumberLong(61)
                }
        },
        "Mutex" : {
                "acquireCount" : {
                        "r" : NumberLong(28749023)
                }
        },
        "oplog" : {#oplog级别的锁
                "acquireCount" : {
                        "r" : NumberLong(5345043),
                        "w" : NumberLong(1)
                }
        }
}

MMAPv1的锁是在整个集合级别;WiredTiger的锁是在文档级别

 

2.检查内存

> db.serverStatus().mem
{ "bits" : 64, "resident" : 7291, "virtual" : 9530, "supported" : true }

WiredTiger缓存的调优

> db.serverStatus().wiredTiger.cache
{
        "application threads page read from disk to cache count" : 320058297,
        "application threads page read from disk to cache time (usecs)" : NumberLong("17826172899"),
        "application threads page write from cache to disk count" : 12247036,
        "application threads page write from cache to disk time (usecs)" : 197573446,
        "bytes allocated for updates" : 2789574,
        "bytes belonging to page images in the cache" : NumberLong("6186510750"),
        "bytes belonging to the history store table in the cache" : 571,
        "bytes currently in the cache" : NumberLong("6212412873"),#当前缓存数据的大小,不应该超过给wt分配的最大值
        "bytes dirty in the cache cumulative" : NumberLong("1734766997079"),#脏数据的大小
        "bytes not belonging to page images in the cache" : 25902122,
        "bytes read into cache" : NumberLong("18984807567903"),
        "bytes written from cache" : NumberLong("406860409338"),
        "cache overflow score" : 0,
        "checkpoint blocked page eviction" : 1717,
        "checkpoint of history store file blocked non-history store page eviction" : 0,
        "eviction calls to get a page" : 326297146,
        "eviction calls to get a page found queue empty" : 1971080,
        "eviction calls to get a page found queue empty after locking" : 3626168,
        "eviction currently operating in aggressive mode" : 0,
        "eviction empty score" : 0,
        "eviction gave up due to detecting an out of order on disk value behind the last update on the chain" : 0,
        "eviction gave up due to detecting an out of order tombstone ahead of the selected on disk update" : 0,
        "eviction gave up due to detecting an out of order tombstone ahead of the selected on disk update after validating the update chain" : 0,
        "eviction gave up due to detecting out of order timestamps on the update chain after the selected on disk update" : 0,
        "eviction passes of a file" : 9224187,
        "eviction server candidate queue empty when topping up" : 1898078,
        "eviction server candidate queue not empty when topping up" : 1729248,
        "eviction server evicting pages" : 0,
        "eviction server slept, because we did not make progress with eviction" : 6752849,
        "eviction server unable to reach eviction goal" : 0,
        "eviction server waiting for a leaf page" : 8638245,
        "eviction state" : 64,
        "eviction walk most recent sleeps for checkpoint handle gathering" : 312,
        "eviction walk target pages histogram - 0-9" : 3629155,
        "eviction walk target pages histogram - 10-31" : 1147603,
        "eviction walk target pages histogram - 128 and higher" : 0,
        "eviction walk target pages histogram - 32-63" : 1465812,
        "eviction walk target pages histogram - 64-128" : 2981617,
        "eviction walk target pages reduced due to history store cache pressure" : 0,
        "eviction walk target strategy both clean and dirty pages" : 177,
        "eviction walk target strategy only clean pages" : 9169334,
        "eviction walk target strategy only dirty pages" : 54676,
        "eviction walks abandoned" : 264369,
        "eviction walks gave up because they restarted their walk twice" : 2677780,
        "eviction walks gave up because they saw too many pages and found no candidates" : 562949,
        "eviction walks gave up because they saw too many pages and found too few candidates" : 3589,
        "eviction walks reached end of tree" : 5813050,
        "eviction walks restarted" : 0,
        "eviction walks started from root of tree" : 3345605,
        "eviction walks started from saved location in tree" : 5878582,
        "eviction worker thread active" : 4,
        "eviction worker thread created" : 0,
        "eviction worker thread evicting pages" : 320262154,
        "eviction worker thread removed" : 0,
        "eviction worker thread stable number" : 0,
        "files with active eviction walks" : 0,
        "files with new eviction walks started" : 3135270,
        "force re-tuning of eviction workers once in a while" : 0,
        "forced eviction - history store pages failed to evict while session has history store cursor open" : 4,
        "forced eviction - history store pages selected while session has history store cursor open" : 624,
        "forced eviction - history store pages successfully evicted while session has history store cursor open" : 0,
        "forced eviction - pages evicted that were clean count" : 157409,
        "forced eviction - pages evicted that were clean time (usecs)" : 368362,
        "forced eviction - pages evicted that were dirty count" : 4129,
        "forced eviction - pages evicted that were dirty time (usecs)" : 18483606,
        "forced eviction - pages selected because of a large number of updates to a single item" : 4050,
        "forced eviction - pages selected because of too many deleted items count" : 8068,
        "forced eviction - pages selected count" : 166541,
        "forced eviction - pages selected unable to be evicted count" : 805,
        "forced eviction - pages selected unable to be evicted time" : 648,
        "hazard pointer blocked page eviction" : 395989,
        "hazard pointer check calls" : 320440980,
        "hazard pointer check entries walked" : NumberLong("5277438613"),
        "hazard pointer maximum array length" : 1,
        "history store score" : 0,
        "history store table insert calls" : 6531686,
        "history store table insert calls that returned restart" : 0,
        "history store table max on-disk size" : 0,
        "history store table on-disk size" : 32768,
        "history store table out-of-order resolved updates that lose their durable timestamp" : 0,
        "history store table out-of-order updates that were fixed up by reinserting with the fixed timestamp" : 0,
        "history store table reads" : 0,
        "history store table reads missed" : 0,
        "history store table reads requiring squashed modifies" : 0,
        "history store table truncation by rollback to stable to remove an unstable update" : 0,
        "history store table truncation by rollback to stable to remove an update" : 1,
        "history store table truncation to remove an update" : 0,
        "history store table truncation to remove range of updates due to key being removed from the data page during reconciliation" : 0,
        "history store table truncation to remove range of updates due to out-of-order timestamp update on data page" : 0,
        "history store table writes requiring squashed modifies" : 41,
        "in-memory page passed criteria to be split" : 31004,
        "in-memory page splits" : 4213,
        "internal pages evicted" : 117773,
        "internal pages queued for eviction" : 117959,
        "internal pages seen by eviction walk" : 20357482,
        "internal pages seen by eviction walk that are already queued" : 16261,
        "internal pages split during eviction" : 43,
        "leaf pages split during eviction" : 22264,
        "maximum bytes configured" : NumberLong("7781482496"), #wt引擎分配的最大内存
        "maximum page size at eviction" : 360,
        "modified pages evicted" : 143987,
        "modified pages evicted by application threads" : 0,
        "operations timed out waiting for space in cache" : 0,
        "overflow pages read into cache" : 0,
        "page split during eviction deepened the tree" : 0,
        "page written requiring history store records" : 307440,
        "pages currently held in the cache" : 95035,
        "pages evicted by application threads" : 12285,
        "pages evicted in parallel with checkpoint" : 2013599,
        "pages queued for eviction" : 362322071,
        "pages queued for eviction post lru sorting" : 366892162,
        "pages queued for urgent eviction" : 16184398,
        "pages queued for urgent eviction during walk" : 1319,
        "pages queued for urgent eviction from history store due to high dirty content" : 0,
        "pages read into cache" : 320058563,
        "pages read into cache after truncate" : 12961,
        "pages read into cache after truncate in prepare state" : 0,
        "pages requested from the cache" : NumberLong("7901292705"),
        "pages seen by eviction walk" : 407035140,
        "pages seen by eviction walk that are already queued" : 2325112,
        "pages selected for eviction unable to be evicted" : 404950,
        "pages selected for eviction unable to be evicted because of active children on an internal page" : 5533,
        "pages selected for eviction unable to be evicted because of failure in reconciliation" : 4,
        "pages selected for eviction unable to be evicted because of race between checkpoint and out of order timestamps handling" : 0,
        "pages walked for eviction" : NumberLong("3782243302"),
        "pages written from cache" : 12309253,
        "pages written requiring in-memory restoration" : 10496,
        "percentage overhead" : 8,
        "the number of times full update inserted to history store" : 3048395,
        "the number of times reverse modify inserted to history store" : 3483291,
        "tracked bytes belonging to internal pages in the cache" : 18964141,
        "tracked bytes belonging to leaf pages in the cache" : NumberLong("6193448732"),
        "tracked dirty bytes in the cache" : 1451807,
        "tracked dirty pages in the cache" : 5,
        "unmodified pages evicted" : 319887864
}

 

3.连接的监控

> db.serverStatus().connections
{
        "current" : 78,
        "available" : 51122,
        "totalCreated" : 1011819,
        "active" : 23,
        "threaded" : 78,
        "exhaustIsMaster" : 4,
        "exhaustHello" : 16,
        "awaitingTopologyChanges" : 12371
}

 

4.复制延迟监控

abce:PRIMARY> db.printSlaveReplicationInfo() 
WARNING: printSlaveReplicationInfo is deprecated and may be removed in the next major release. Please use printSecondaryReplicationInfo instead.
source: 192.16.12.24:27017
        syncedTo: Tue Feb 07 2023 13:41:39 GMT+0800 (CST)
        0 secs (0 hrs) behind the primary 
source: 192.16.12.25:27017
        syncedTo: Tue Feb 07 2023 13:41:39 GMT+0800 (CST)
        0 secs (0 hrs) behind the primary 
abce:PRIMARY> rs.printSlaveReplicationInfo()
WARNING: printSlaveReplicationInfo is deprecated and may be removed in the next major release. Please use printSecondaryReplicationInfo instead.
source: 192.16.12.24:27017
        syncedTo: Tue Feb 07 2023 13:41:49 GMT+0800 (CST)
        0 secs (0 hrs) behind the primary 
source: 192.16.12.25:27017
        syncedTo: Tue Feb 07 2023 13:41:49 GMT+0800 (CST)
        0 secs (0 hrs) behind the primary 
abce:PRIMARY> 

标签:MongoDB,cache,NumberLong,eviction,监控,调优,pages,store,history
From: https://www.cnblogs.com/abclife/p/17098120.html

相关文章

  • 开心档-软件开发入门之MongoDB 覆盖索引查询
     作者简介:每天分享​​MongoDB教程​的学习经验、和学习笔记。  座右铭:有自制力,做事有始有终;学习能力强,愿意不断地接触学习新知识。个人主页:​​雪奈椰子的主页​​ 前......
  • 开心档-软件开发入门之MongoDB 创建集合
    作者简介:每天分享​​MongoDB教程​​的学习经验、和学习笔记。  座右铭:有自制力,做事有始有终;学习能力强,愿意不断地接触学习新知识。​个人主页:​​雪奈椰子的主页​​​......
  • MongoDB--字符串长度计算
    MongoDB--字符串长度计算db.event_coll.aggregate([{$project:{"road":1,"length_Bytes":{$strLenBytes:"$road"},"length_CP":{$strLen......
  • 开心档-软件开发入门之MongoDB 覆盖索引查询
    作者简介:每天分享MongoDB教程的学习经验、和学习笔记。  座右铭:有自制力,做事有始有终;学习能力强,愿意不断地接触学习新知识。个人主页:iOS开发上架的主页​​​......
  • mongodb对内存的使用
    1.默认的分配策略Startingin3.4,theWiredTigerinternalcache,bydefault,willusethelargerofeither:50%ofRAMminus1GB,or256MB.即(总内存×50%-......
  • 智慧工地、雪亮工程、明厨亮灶等各类视项目通过GB28181汇聚视频监控到LiveGBS流媒体管
    目前市面上各类监控设备(摄像头、录像机、监控管理平台)等基本都支持GB28181协议。当设备通过GB28181统一汇聚到LiveGBS流媒体视频平台后,LiveGBS管理页面会管理所有接入进来......
  • 第六十八章 使用 Web 服务监控 IRIS - 监控网络客户端
    第六十八章使用Web服务监控IRIS-监控网络客户端SYS.WSMon.Client类和相关类是一个IRIS网络服务客户端,可以在同一个IRIS实例或另一个IRIS实例中调用SYS.......
  • Zabbix监控docker
    1、zabbixagent2监控docker容器原理zabbixagent2监控docker插件的实现原理,其实就是通过调用docker的API来获取数据,插件目录位于zabbix-agent2/src/go/plugins/docker其......
  • 值得收藏|三种经典的指标监控模型
    标准化做得好,监控就会变得更简单。这样既能快速实施部署,也能减少培训难度,遇到特定场景时识别和处置也变得更轻松,同时无形中还能够简化监控逻辑,降低监控自动化实施难度。关于......
  • Redis性能调优基础
    Redis架构分析              计算交集和并集          命令执行流程            RDB快照机制......