欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

OpenStack Ceilometer用MongoDB解決占用磁盤空間過大問題

 更新時間:2016年12月04日 15:02:37   作者:heaven619  
這篇文章主要介紹了OpenStack Ceilometer用MongoDB解決占用磁盤空間過大問題的相關(guān)資料,Ceilometer使用MongoDB作為數(shù)據(jù)庫,不斷進(jìn)行采樣,導(dǎo)致數(shù)據(jù)量膨脹,占用過多的磁盤空間,這里提供解決辦法,需要的朋友可以參考下

OpenStack Ceilometer用MongoDB解決占用磁盤空間過大問題

背景:Ceilometer使用MongoDB作為數(shù)據(jù)庫,不斷進(jìn)行采樣,導(dǎo)致數(shù)據(jù)量膨脹,占用過多的磁盤空間。

知識背景

1.數(shù)據(jù)庫文件類型

1.1. journal 日志文件

跟一些傳統(tǒng)數(shù)據(jù)庫不同,MongoDB的日志文件只是用來在系統(tǒng)出現(xiàn)宕機(jī)時候恢復(fù)尚未來得及同步到硬盤的內(nèi)存數(shù)據(jù)。日志文件會存放在一個分開的目錄下面。啟動時候MongoDB會自動預(yù)先創(chuàng)建3個每個為1G的日志文件(初始為空)。

1.2. namespace 表名文件 dbname.ns

這個文件用來存儲整個數(shù)據(jù)庫的集合以及索引的名字。這個文件不大,默認(rèn)16M,可以存儲24000個集合或者索引名以及那些集合和索引在數(shù)據(jù)文件中得具體位置。通過這個文件MongoDB可以知道從哪里去開始尋找或插入集合的數(shù)據(jù)或者索引數(shù)據(jù)。

1.3. 數(shù)據(jù)文件 dbname.0, dbname.1,… dbname.n

MongoDB的數(shù)據(jù)以及索引都存放在一個或者多個MongoDB數(shù)據(jù)文件里。第一個數(shù)據(jù)文件會以“數(shù)據(jù)庫名.0”命名,如 my-db.0。這個文件默認(rèn)大小是64M,在接近用完這個64M之前,MongoDB 會提前生成下一個數(shù)據(jù)文件如my-db.1。數(shù)據(jù)文件的大小會2倍遞增。第二個數(shù)據(jù)文件的大小為128M,第三個為256M。一直到了2G以后就會停止,一直按這個2G這個大小增加新的文件。

2.數(shù)據(jù)庫大小參數(shù)

2.1. dataSize

dataSize是最接近真實數(shù)據(jù)大小的一個參數(shù)。你可以用來檢查你的數(shù)據(jù)有多少。這個大小包括了數(shù)據(jù)庫(或者集合)的每條記錄的總和。注意每條記錄除了BSON文檔外還有header及padding這些額外開銷。所以實際大小會比真正數(shù)據(jù)所占空間會稍大。

2.2. storageSize

這個參數(shù)等于數(shù)據(jù)庫或者某個集合所有用到的Data Extents的總和。注意這個數(shù)字會大于dataSize因為Extent里面會有一些刪除文檔之后留下來的碎片。如果有新插入的文檔小于或等于碎片的大小,MongoDB會重新利用這個碎片來存儲新的文檔。不過在這之前這些碎片將一直會被保留在那里占用空間。由于這個原因,你刪除文檔的時候這個參數(shù)不會變小。

2.3. fileSize

這個參數(shù)只在數(shù)據(jù)庫上有效,指的是實際文件系統(tǒng)中用到的文件的大小。它包括所有的數(shù)據(jù)Extents的總和,索引Extent的總和,以及一些未被分配的空間。之前提到MongoDB會對數(shù)據(jù)庫文件創(chuàng)建時候進(jìn)行預(yù)分配,例如最小就是64M,哪怕你只有幾百個KB的數(shù)據(jù)。所以這個參數(shù)可能會比實際的數(shù)據(jù)大小會大不少。 這些額外未用空間是用來保證MongoDB可以在新的數(shù)據(jù)寫入時候快速的分配新的Extent,避免引起磁盤空間分配引起的延遲。

解決方案

1.減少預(yù)分配的大?。ɑ蚪妙A(yù)分配)

從MongoDB的預(yù)分配機(jī)制考慮,可以減少預(yù)分配的大小,或者禁用預(yù)分配。但是這種方案是會影響數(shù)據(jù)庫行為的。如果數(shù)據(jù)庫沒有頻繁的大數(shù)據(jù)寫入動作,可以采取這種方案。

2.數(shù)據(jù)壓縮

conpact命令可以對collection進(jìn)行壓縮,從而減少數(shù)據(jù)量的大小。

db.runCommand({compact:'CollectionName'})

這里需要注意的是:

1)操作進(jìn)行時,會鎖住當(dāng)前操作的collection;
2)compact命令不會釋放磁盤空間的,但新的磁盤請求會使用整理出來的空間;

3.將數(shù)據(jù)導(dǎo)出再導(dǎo)入

mongodump作用是將數(shù)據(jù)庫導(dǎo)出,mongorestore是將導(dǎo)出的數(shù)據(jù)庫再導(dǎo)入,這個過程中會重建索引,所以如果數(shù)據(jù)庫之前進(jìn)行過刪除操作,空間沒有釋放,那么導(dǎo)入后,刪除的空間會被釋放。

4.定期刪除不用的數(shù)據(jù)

結(jié)合實際情況,ceilometer采取的sample在有效期過后是可以被消除的。

步驟:

1)通過改變/etc/ceilometer/ceilometer.conf的time_to_live參數(shù)指定sample的有效期;
2)運(yùn)行ceilometer-expirer刪除過期的sample;
3)重啟openstack-ceilometer-collector服務(wù);
4)刪除后,使用repairDatabase修復(fù)數(shù)據(jù)庫。

注意,repairDatabase操作所需要磁盤的空余空間為當(dāng)前數(shù)據(jù)總量再加上2G。如果當(dāng)前磁盤分區(qū)空間不足,可以嘗試用 –repairpath 參數(shù)指定一個空間足夠的分區(qū)路徑。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • 簡單談?wù)凮penStack中的網(wǎng)絡(luò)隔離

    簡單談?wù)凮penStack中的網(wǎng)絡(luò)隔離

    這篇文章主要介紹了簡單談?wù)凮penStack中的網(wǎng)絡(luò)隔離的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • Openstack各組件邏輯關(guān)系及運(yùn)行流程解析

    Openstack各組件邏輯關(guān)系及運(yùn)行流程解析

    這篇文章主要為大家介紹了Openstack各組件邏輯關(guān)系及運(yùn)行流程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04
  • OpenStack簡介與OpenStack核心組件功能

    OpenStack簡介與OpenStack核心組件功能

    這篇文章主要介紹了OpenStack與OpenStack核心組件功能,OpenStack用于部署公有云、私有云,并實現(xiàn)對云項目管理,需要的朋友可以參考下
    2023-03-03
  • Openstack安裝過程中遇到的問題匯總

    Openstack安裝過程中遇到的問題匯總

    本文給大家分享的是作者在Centos7中安裝openstack過程中出現(xiàn)的一些問題的匯總,以及解決的方法,有需要的小伙伴可以參考下
    2017-04-04
  • openstack云計算組件glance功能鏡像及版本介紹

    openstack云計算組件glance功能鏡像及版本介紹

    這篇文章主要為大家介紹了openstack云計算組件glance功能鏡像及版本介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • OpenStack Ceilometer用MongoDB解決占用磁盤空間過大問題

    OpenStack Ceilometer用MongoDB解決占用磁盤空間過大問題

    這篇文章主要介紹了OpenStack Ceilometer用MongoDB解決占用磁盤空間過大問題的相關(guān)資料,Ceilometer使用MongoDB作為數(shù)據(jù)庫,不斷進(jìn)行采樣,導(dǎo)致數(shù)據(jù)量膨脹,占用過多的磁盤空間,這里提供解決辦法,需要的朋友可以參考下
    2016-12-12
  • Openstack 使用migrate進(jìn)行數(shù)據(jù)庫升級實現(xiàn)方案詳細(xì)介紹

    Openstack 使用migrate進(jìn)行數(shù)據(jù)庫升級實現(xiàn)方案詳細(xì)介紹

    這篇文章主要介紹了Openstack 使用migrate進(jìn)行數(shù)據(jù)庫升級詳細(xì)介紹的相關(guān)資料,數(shù)據(jù)庫表或者增加字段等是必然的事情,如何比較容易的進(jìn)行這些數(shù)據(jù)庫升級的適配和管理,這里提供實現(xiàn)方法,需要的朋友可以參考下
    2016-12-12
  • 什么是OpenStack 開源的云計算管理平臺項目

    什么是OpenStack 開源的云計算管理平臺項目

    OpenStack是一個開源的云計算管理平臺項目,由幾個主要的組件組合起來完成具體工作。OpenStack支持幾乎所有類型的云環(huán)境,項目目標(biāo)是提供實施簡單、可大規(guī)模擴(kuò)展、豐富、標(biāo)準(zhǔn)統(tǒng)一的云計算管理平臺
    2016-11-11
  • openstack 重啟的服務(wù)命令整理總結(jié)

    openstack 重啟的服務(wù)命令整理總結(jié)

    這篇文章主要介紹了openstack 重啟的服務(wù)命令整理總結(jié)的相關(guān)資料,這里對 openstack 的服務(wù)命令進(jìn)行了詳細(xì)的介紹,openstack 的服務(wù)命令比較多,需要的朋友可以參考下
    2016-11-11
  • OpenStack API的使用套路分享

    OpenStack API的使用套路分享

    近期有openstack和vmware相關(guān)的開發(fā)需求,N年前從事虛擬化運(yùn)維的時候玩過了,所以對它倆的API使用套路早忘得一干二凈。這次借這個機(jī)會把使用套路做個文檔并分享出來,希望可以幫到有需要的盆友
    2023-02-02

最新評論