小檔案、nginx、Redis、Moosefs

來源:互聯網
上載者:User

現在有3KW的資料,單條資料都很小的,如果按key-value來看的話,key就是32位的MD5字串,value按平均算大概是100位元組左右。

現在需要將這些資料做緩衝以在高並非的時候依然可以快速響應。
因為這些資料基本沒有冷熱資料之分,所以需要將全部資料都放到緩衝中。

1、直接產生靜態檔案,利用nginx對靜態檔案的高效做靜態緩衝。

    • 當時伺服器硬體資源有限,所以就採用這種方式,一直源用至今。
    • 伺服器間通過NFS來共用
    • 太多小檔案,不方便管理
    • NFS不方便營運與擴充
    • 檔案內容很小(100位元組左右),3KW大概就是2.5G大小左右
      • 不過檔案儲存體的時候和硬碟分區的族大小有關,在這裡磁碟分割的族大小為8K,所以儘管檔案內容只有100位元組,但是實際儲存到磁碟上的時候單個檔案其實是8K
      • 所以3KW的檔案世界占的磁碟空間大約為:200G左右(嚴重浪費空間啊

2、Redis(V2.2.11)【KV資料庫】

    • 聽同事說開啟VM會使效能急劇下降,所以基本無視VM,資料全放記憶體。
    • key為32位MD5字串
    • 測試資料:10W資料大概占記憶體20M
    • 測試資料:500W資料大概占記憶體1G,持久化的rdb資料檔案大概350M
    • 推算3KW資料:記憶體6G,持久化的rdb資料檔案大概為2G(壓縮了?)
    • 因為Redis在持久化的時候記憶體會加倍,和考慮到資料的增長,所以需要1台20G記憶體的機器基本就沒問題了(容災啥的另算)。
    • Redis非常快,如果硬體條件沒問題,基本選這個最好了。

3、Moosefs(MFS)【分布式檔案儲存體系統】

    • mfs支援NFS的方式mount到本地直接操作(如使用mfs,則現在的架構基本不用改)
    • 最基本的需要一台主控伺服器(Master Server)、一台資料服務器(Chunk Server)
    • 檔案和目錄的索引需要全部載入到主控伺服器的記憶體中,所以對主控伺服器的記憶體有一定的要求
    • 寫入30W檔案,到20W的時候寫入就開始下降得厲害了(我的5400轉的筆記本硬碟)
    • 30W檔案,4W目錄,主控伺服器佔用大概120M記憶體
    • 檔案儲存體方式貌似和普遍的檔案一樣單個儲存的(不確定),30W檔案大概佔了2.4G的磁碟空間(同樣是8K一個檔案)。
    • 小檔案一樣很多,不方便維護與遷移(不知是否我設定不對?)。
    • 記憶體、硬碟都佔用得比較多,而且效能相對來說不是很出眾。
    • 所以這個基本不考慮了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.