亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MongoDB數(shù)據(jù)庫(kù)性能監(jiān)控詳解

 更新時(shí)間:2023年03月31日 17:13:48   作者:哪 吒  
MongoDB作為圖片和文檔的存儲(chǔ)數(shù)據(jù)庫(kù),為啥不直接存MySQL里,還要搭個(gè)MongoDB集群,麻不麻煩?這篇文章就帶你介紹MongoDB數(shù)據(jù)庫(kù)性能監(jiān)控,感興趣的同學(xué)可以參考閱讀

一、MongoDB啟動(dòng)超慢

1、啟動(dòng)日??ㄗ。静挥脼榱私仄炼焖俨僮?,MongoDB啟動(dòng)真的超級(jí)慢~~

2、啟動(dòng)MongoDB配置服務(wù)器,間歇性失敗。

3、查看MongoDB日志,分析“MongoDB啟動(dòng)慢”的原因。

4、耗時(shí)“一小時(shí)”,MongoDB啟動(dòng)成功!

二、原因分析

在MongoDB關(guān)閉之前,有較大的索引建立的操作沒(méi)有完成,MongoDB就直接shutdown了,等MongoDB再次啟動(dòng)的時(shí)候,MongoDB默認(rèn)會(huì)將這個(gè)index重建好,重建期間處于startup狀態(tài)。

由于不清楚重建索引需要多久,因此可以通過(guò)重啟mongod時(shí)加上–noIndexBuildRetry參數(shù)來(lái)跳過(guò)索引重建。等啟動(dòng)完成后,再創(chuàng)建這個(gè)索引。

下面從幾方面,監(jiān)控一下MongoDB的性能問(wèn)題。

三、監(jiān)控MongoDB內(nèi)存使用情況

  • 常駐內(nèi)存: 是MongoDB在RAM中顯式擁有的內(nèi)存。如果查詢一個(gè)集合數(shù)據(jù),MongoDB會(huì)將其放入常駐內(nèi)存中,MongoDB會(huì)獲得其地址,這個(gè)地址不是RAM中數(shù)據(jù)的真實(shí)地址,而是一個(gè)虛擬地址。MongoDB可以將它傳遞給內(nèi)核,內(nèi)核會(huì)查找出數(shù)據(jù)的真實(shí)位置。如果內(nèi)核需要從內(nèi)存中清理緩存,MongoDB仍然可以通過(guò)該地址對(duì)其進(jìn)行訪問(wèn)。MongoDB會(huì)向內(nèi)核請(qǐng)求內(nèi)存,然后內(nèi)核會(huì)查看數(shù)據(jù)緩存,如果發(fā)現(xiàn)數(shù)據(jù)不存在,就會(huì)產(chǎn)生缺頁(yè)錯(cuò)誤并將數(shù)據(jù)復(fù)制到內(nèi)存中,最后再返給MongoDB。
  • MongoDB的虛擬內(nèi)存: 是操作系統(tǒng)提供的一種抽象,它對(duì)軟件進(jìn)程隱藏了物理存儲(chǔ)的細(xì)節(jié)。每個(gè)進(jìn)程都可以看到一個(gè)連續(xù)的內(nèi)存地址空間。在Ops Manager中,MongoDB的虛擬內(nèi)存是映射內(nèi)存的兩倍。
  • MongoDB的映射內(nèi)存: 包含MongoDB曾經(jīng)訪問(wèn)過(guò)的所有數(shù)據(jù)。

四、監(jiān)控MongoDB磁盤(pán)空間

當(dāng)磁盤(pán)空間不足時(shí),可以進(jìn)行如下操作:

可以添加一個(gè)分片;
刪除未使用的索引;
可以執(zhí)行壓縮操作;
關(guān)閉副本集成員,將其數(shù)據(jù)復(fù)制到更大的磁盤(pán)中掛載;
用較大驅(qū)動(dòng)器的成員替換副本集中的成員;

五、MongoDB常用命令

1、MongoDB獲取系統(tǒng)信息

db.hostInfo()

2、MongoDB獲取系統(tǒng)內(nèi)存情況

db.serverStatus().mem

3、MongoDB獲取連接數(shù)信息

db.serverStatus().connections

4、MongoDB獲取全局鎖信息

db.serverStatus().globalLock

5、MongoDB獲取操作統(tǒng)計(jì)計(jì)數(shù)器

db.serverStatus().opcounters

6、MongoDB獲取數(shù)據(jù)庫(kù)狀態(tài)信息

db.stats()

以上是MongoDB的重要指標(biāo),通過(guò)這些指標(biāo)我們可以了解到MongoDB的運(yùn)行狀態(tài),評(píng)估數(shù)據(jù)庫(kù)的健康程度,并快速確定實(shí)際項(xiàng)目中遇到的性能瓶頸。

比如項(xiàng)目中遇到的MongoSocketReadTimeoutException:

六、MongoDB持久性

復(fù)制延遲是指從節(jié)點(diǎn)無(wú)法跟上主節(jié)點(diǎn)的速度。

從節(jié)點(diǎn)一個(gè)操作的時(shí)間減去主節(jié)點(diǎn)此操作的時(shí)間,就是復(fù)制延遲。延遲應(yīng)該盡可能的接近0,并且通常是毫秒級(jí)的。

備份操作通常會(huì)將所有數(shù)據(jù)讀入內(nèi)存,因此,備份操作通常應(yīng)該在副本集從節(jié)點(diǎn)而不是主節(jié)點(diǎn)進(jìn)行,如果是單機(jī)MongoDB,則應(yīng)該在空間時(shí)間進(jìn)行備份,比如深夜凌晨。

持久性是數(shù)據(jù)庫(kù)必備的一種特性,想象一下,如果數(shù)據(jù)庫(kù)不具備持久性,如果數(shù)據(jù)庫(kù)重啟,數(shù)據(jù)全部丟失,太可怕了,不敢想。

為了在服務(wù)器發(fā)生故障時(shí)提供持久性,MongoDB使用預(yù)寫(xiě)式日志機(jī)制,英文簡(jiǎn)稱 WAL。WAL是數(shù)據(jù)庫(kù)系統(tǒng)中一種常見(jiàn)的持久性技術(shù)。在數(shù)據(jù)存入數(shù)據(jù)庫(kù)之前,將這些更改操作寫(xiě)到磁盤(pán)上。

從MongoDB4.0開(kāi)始,執(zhí)行寫(xiě)操作時(shí),MongoDB會(huì)使用與oplog相同的格式創(chuàng)建日志。oplog語(yǔ)句具有冪等性,不管執(zhí)行多少次,結(jié)果都是一樣的。

MongoDB還維護(hù)了日志和數(shù)據(jù)庫(kù)數(shù)據(jù)文件的內(nèi)存視圖。默認(rèn)情況,每50毫秒會(huì)將日志條目刷新到磁盤(pán)上,每60秒會(huì)將數(shù)據(jù)庫(kù)文件刷新到磁盤(pán)上。刷新數(shù)據(jù)的時(shí)間60秒間隔被稱為檢查點(diǎn)。日志用于將上一個(gè)檢查點(diǎn)之后的數(shù)據(jù)提供持久性。MongoDB的持久性就是在發(fā)生故障時(shí),重啟之后,將日志中的語(yǔ)句重新執(zhí)行一遍,以保證在關(guān)閉前丟失的數(shù)據(jù)重新刷新到MongoDB中。

MongoDB會(huì)在data目錄下創(chuàng)建一個(gè)journal的子目錄,WiredTiger日志文件的名稱為WiredTigerLog.<sequence>。sequence是一個(gè)從0 000 000 001開(kāi)始的數(shù)字。

MongoDB會(huì)對(duì)寫(xiě)入的日志進(jìn)行壓縮,日志文件限制的最大大小為100MB。如果大于100MB,MongoDB就會(huì)自動(dòng)創(chuàng)建一個(gè)新的日志文件,由于日志文件只需在上次檢查點(diǎn)之后恢復(fù)數(shù)據(jù),因此在新的檢查點(diǎn)寫(xiě)入完成時(shí),舊的日志文件就會(huì)被刪除。

以上就是MongoDB數(shù)據(jù)庫(kù)性能監(jiān)控詳解的詳細(xì)內(nèi)容,更多關(guān)于MongoDB數(shù)據(jù)庫(kù)性能監(jiān)控的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • MongoDB簡(jiǎn)介 MongoDB五大特色

    MongoDB簡(jiǎn)介 MongoDB五大特色

    這篇文章主要介紹了MongoDB簡(jiǎn)介,MongoDB五大特色,本文講解了豐富的數(shù)據(jù)模型、容易擴(kuò)展、豐富的功能、高性能、簡(jiǎn)便的管理等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • mongodb權(quán)限設(shè)置之添加管理員、普通用戶的方法

    mongodb權(quán)限設(shè)置之添加管理員、普通用戶的方法

    這篇文章主要介紹了mongodb添加管理員、普通用戶的方法,同時(shí)介紹了mongodb開(kāi)啟權(quán)限認(rèn)證后PHP客戶端的兩種連接方法,需要的朋友可以參考下
    2014-06-06
  • Mongodb 忘記密碼的解決辦法

    Mongodb 忘記密碼的解決辦法

    這篇文章主要介紹了Mongodb數(shù)據(jù)庫(kù)忘記密碼的解決辦法,需要的朋友可以參考下
    2014-03-03
  • MongoDB學(xué)習(xí)以及集群搭建的實(shí)踐全紀(jì)錄

    MongoDB學(xué)習(xí)以及集群搭建的實(shí)踐全紀(jì)錄

    這篇文章主要給大家介紹了關(guān)于MongoDB學(xué)習(xí)以及集群搭建的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09
  • MongoDB分片集群部署詳解

    MongoDB分片集群部署詳解

    這篇文章主要介紹了MongoDB分片集群部署詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • MongoDB中多表關(guān)聯(lián)查詢($lookup)的深入講解

    MongoDB中多表關(guān)聯(lián)查詢($lookup)的深入講解

    NoSql的多表關(guān)聯(lián)一直是比較復(fù)雜的問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于MongoDB中多表關(guān)聯(lián)查詢($lookup)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-12-12
  • Mongodb增加、移除Arbiter節(jié)點(diǎn)實(shí)例

    Mongodb增加、移除Arbiter節(jié)點(diǎn)實(shí)例

    這篇文章主要介紹了Mongodb增加、移除Arbiter節(jié)點(diǎn)實(shí)例,Arbiter是搭建Mongodb集群的一個(gè)必備節(jié)點(diǎn),需要的朋友可以參考下
    2015-01-01
  • MongoDB為什么比Mysql快原理解析

    MongoDB為什么比Mysql快原理解析

    這篇文章主要為大家介紹了MongoDB為什么比Mysql快原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • MongoDB集合中的文檔管理

    MongoDB集合中的文檔管理

    這篇文章介紹了MongoDB集合中文檔的管理方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • MongoDB模糊查詢操作案例詳解(類關(guān)系型數(shù)據(jù)庫(kù)的 like 和 not like)

    MongoDB模糊查詢操作案例詳解(類關(guān)系型數(shù)據(jù)庫(kù)的 like 和 not like)

    這篇文章主要介紹了MongoDB的模糊查詢操作(類關(guān)系型數(shù)據(jù)庫(kù)的 like 和 not like) ,本文通過(guò)代碼案例分析給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,,需要的朋友可以參考下
    2019-07-07

最新評(píng)論