最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

一、MongoDB啟動超慢

1、啟動日??ㄗ?,根本不用為了截屏而快速操作,MongoDB啟動真的超級慢~~

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

3、查看MongoDB日志,分析“MongoDB啟動慢”的原因。

4、耗時“一小時”,MongoDB啟動成功!

二、原因分析

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

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

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

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

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

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

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

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

五、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)計計數(shù)器

db.serverStatus().opcounters

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

db.stats()

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

比如項目中遇到的MongoSocketReadTimeoutException:

六、MongoDB持久性

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

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

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

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

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

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

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

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

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

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

相關(guān)文章

  • MongoDB 使用Skip和limit分頁

    MongoDB 使用Skip和limit分頁

    本文章先來給大家簡單介紹關(guān)于MongoDB 數(shù)據(jù)分頁和排序 limit,skip用戶的一些基礎(chǔ)語句,然后用一個實例詳細(xì)介紹MongoDB 數(shù)據(jù)分頁和排序?qū)嵗椒ā?/div> 2014-08-08
  • MongoDB在系統(tǒng)數(shù)據(jù)庫local中無法創(chuàng)建用戶的解決辦法

    MongoDB在系統(tǒng)數(shù)據(jù)庫local中無法創(chuàng)建用戶的解決辦法

    這篇文章主要給大家介紹了關(guān)于MongoDB在系統(tǒng)數(shù)據(jù)庫local中無法創(chuàng)建用戶的解決辦法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • mongodb數(shù)據(jù)庫基礎(chǔ)知識之連表查詢

    mongodb數(shù)據(jù)庫基礎(chǔ)知識之連表查詢

    這篇文章主要給大家介紹了關(guān)于mongodb數(shù)據(jù)庫基礎(chǔ)知識之連表查詢的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用mongodb具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • MongoDB簡單操作示例【連接、增刪改查等】

    MongoDB簡單操作示例【連接、增刪改查等】

    這篇文章主要介紹了MongoDB簡單操作,涉及命令行窗口下使用MongoDB進(jìn)行簡單的連接、增刪改查等相關(guān)操作技巧,需要的朋友可以參考下
    2019-07-07
  • Mongodb?刪除集合數(shù)據(jù)后釋放磁盤空間的操作步驟

    Mongodb?刪除集合數(shù)據(jù)后釋放磁盤空間的操作步驟

    Mongodb當(dāng)集合數(shù)據(jù)占用比較多,對其進(jìn)行清理后,集合存儲空間下降,但磁盤空間并沒釋放,對于具有活動更新的集合來說,有一些可重用的空間是正常的,過多的可重用空間通常是刪除大量數(shù)據(jù)的結(jié)果,這篇文章主要介紹了Mongodb?刪除集合數(shù)據(jù)后如何釋放磁盤空間,需要的朋友可以參考下
    2023-11-11
  • MongoDb的

    MongoDb的"not master and slaveok=false"錯誤及解決方法

    今天小編就為大家分享一篇關(guān)于MongoDb的"not master and slaveok=false"錯誤及解決方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • MongoDB通過查詢與游標(biāo)徹底玩轉(zhuǎn)分布式文件存儲

    MongoDB通過查詢與游標(biāo)徹底玩轉(zhuǎn)分布式文件存儲

    MongoDB最大的特點是它支持的查詢語言非常強大,其語法有點類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對數(shù)據(jù)建立索引,這篇文章主要介紹了MongoDB查詢與游標(biāo),徹底玩轉(zhuǎn)分布式文件存儲,需要的朋友可以參考下
    2023-01-01
  • MongoDB與MySQL的操作對比表及區(qū)別介紹

    MongoDB與MySQL的操作對比表及區(qū)別介紹

    這篇文章主要介紹了MongoDB與MySQL的操作對比表及區(qū)別介紹,本文著重講解了Mongodb與Mysql的操作命令的對比,需要的朋友可以參考下
    2015-05-05
  • 淺析MongoDB之安全認(rèn)證

    淺析MongoDB之安全認(rèn)證

    MongoDB是基于分布式文件存儲的數(shù)據(jù)庫。由C++語言編寫。旨在為WEB應(yīng)用提供可擴展的高性能數(shù)據(jù)存儲解決方案。默認(rèn)情況下,MongoDB實例啟動運行時是沒有啟用用戶訪問權(quán)限控制的,在實例本機服務(wù)器上都可以隨意連接到實例進(jìn)行各種操作,MongoDB不會對連接客戶端進(jìn)行用戶驗證
    2021-06-06
  • MongoDB如何正確中斷正在創(chuàng)建的索引詳解

    MongoDB如何正確中斷正在創(chuàng)建的索引詳解

    這篇文章主要給大家介紹了關(guān)于MongoDB如何正確中斷正在創(chuàng)建的索引的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12

最新評論

和田县| 彰化市| 兴宁市| 乌兰察布市| 班戈县| 东乡族自治县| 洪洞县| 大关县| 鄂尔多斯市| 方山县| 漳浦县| 高州市| 建昌县| 博兴县| 武强县| 南京市| 云浮市| 东乌珠穆沁旗| 麟游县| 台南市| 泰安市| 互助| 繁昌县| 西城区| 忻州市| 霍林郭勒市| 六枝特区| 东乡| 抚松县| 盘山县| 井陉县| 库尔勒市| 饶河县| 抚松县| 集安市| 安国市| 通榆县| 兴隆县| 巩留县| 旺苍县| 怀宁县|