MongoDB性能监控调优
2023-02-07 18:03 abce 阅读(233) 评论(0) 收藏 举报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>

浙公网安备 33010602011771号