中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mongodb的內存總結

發布時間:2020-07-06 05:23:29 來源:網絡 閱讀:8845 作者:布拉君君 欄目:MongoDB數據庫

純手打,只是總結了通過多種方式查看mongodb的內存使用情況,并沒能提出有效的減少mongodb的內存的方法。


都說mongodb吃內存比較厲害,確實很厲害,我的數據級別到達了 4千萬,數據量大概是140G,幾天下來的話,130G的內存盤,到了60%,沒有找到很好的辦法前,每次都是重啟mongodb,新手,我也不太清楚這個數據量是處于一個怎樣的位置,有怎樣的優良的解決辦法,知道的麻煩告知一下,跪謝。


為啥這么吃內存呢,mongodb使用的是內存映射存儲引擎,即Memory Mapped Storage Engine,簡稱MMAP,MMAP可以把磁盤文件的一部分或全部內容直接映射到內存,這樣文件中的信息位置就會在內存中有對應的地址空間,把磁盤IO操作轉換成內存操作,

但壞處是你沒有方法很方便的控制MongoDB占多大內存,事實上MongoDB會占用所有能用的內存,所以最好不要把別的服務和MongoDB放一起。之所以會有這個總結,就是因為曾經將web服務與mongodb放在一起,導致負載間歇性的劇增,web服務直接被服務器自動重啟了,當然這是后話。


如果想知道mongodb的內存使用情況,可以有一些幾個操作:

  1. top

mongodb的內存總結

shift+m,如果不出意外的話,mongodb應該居于首位了,

VIRT:虛擬內存

RES:實際使用內存

%MEM:內存使用比

剛重啟過,內存占用還不算多



2.mongostat

mongodb的內存總結

mapped:映射到內存的數據大小,

vsize:虛擬內存,是mapped的2倍

res: 實際使用的內存,如果res經常突然下降,去查查是否有別的程序狂吃內存

conn:當前的連接數

這里的vsize,res與top的一致,conn如果一直都很高的話,也是有問題的,lockedb如果很高的話(經常超過),說明有問題很大了,曾經因為很多python腳本規定時間跑不完,導致連接一個接著一個,最終lockdb到了50% 


3.db.stats()

mongodb的內存總結

db:當前數據庫

collections:當前數據多少張表

objects:當前數據庫所有表多少條數據

dataSize:所有數據的總大小

storageSize:所有數據占的磁盤大小

indexes:索引數

indexSize:索引大小

fileSize:預分配給數據庫的文件大小


其實這個并不能說顯示內存的什么情況,只能說能顯示整個數據庫的一個狀態status



4.db.serverStatus()

mongodb的內存總結



這個命令在單獨的個別db中,并不能顯示出任何結果,需要在admin 這個db中才有效,測試可以看到很多信息顯示,如connections,current為當前的連接,available為可用的連接

我們常用的話,不會顯示這么多的信息,一般需要什么就顯示什么。如內存使用情況


5.db.serverStatus().mem

mongodb的內存總結

virtual:虛擬內存的大小

mapped:映射到內存的數據大小


這里虛擬內存是mapped的兩倍,是因為我們開啟了Journal日志,需要在內存中多映射一次,大概就是它的兩倍了。如果關閉Journal日志,虛擬內存大小將和mapped大小相當


我常用的大概就是top和mongostat,每次看到內存比較大的時候,采用的辦法就是重啟服務,但是這并不能解決問題,只是暫緩問題,有解決辦法的麻煩告知一聲,跪謝。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

天津市| 哈巴河县| 星座| 襄城县| 临城县| 乌拉特前旗| 延庆县| 大兴区| 太白县| 梁平县| 丰城市| 台中市| 秭归县| 阿克| 南丰县| 太白县| 巍山| 尤溪县| 新宁县| 五指山市| 克山县| 平舆县| 琼海市| 都匀市| 陇南市| 甘肃省| 嘉黎县| 兴安县| 嘉鱼县| 杭锦后旗| 黑山县| 岱山县| 承德市| 贵德县| 五莲县| 东丰县| 惠水县| 盱眙县| 英德市| 长丰县| 宝丰县|