由於需求和資源的限制,將熱資料存在tmpfs上(有資源的話可以用ssd),冷資料存在普通磁碟上。
特點:它的儲存空間在vm(virtual memory)。
vm是由linux核心裡面的vm子系統管理的,由rm(real memory)和swap組成,rm的大小就是物理記憶體的大小,而swap的大小是由自己決定的。
swap是通過硬碟虛擬出來的記憶體空間,因此它的讀寫速度相對rm(real memory)要慢許多,當乙個程序申請一定數量的記憶體時,如核心的vm子系統發現沒有足夠的rm時,就會把rm裡面的一些不常用的資料交換到swap裡面,如果需要重新使用這些資料再把它們從swap交換到rm裡面。如果有足夠大的物理記憶體,可以不劃分swap分割槽。
tmpfs預設的大小是rm的一半,假如你的物理記憶體是1024m,那麼tmpfs預設的大小就是512m。一般情況下,是配置的小於物理記憶體大小的。
tmpfs配置的大小並不會真正的占用這塊記憶體,如果/dev/shm/下沒有任何檔案,它占用的記憶體實際上就是0位元組;如果它最大為1g,裡頭放有100m檔案,那剩餘的900m仍然可為其它應用程式所使用,但它所占用的100m記憶體,是不會被系統**重新劃分的。
當刪除tmpfs中檔案,tmpfs 檔案系統驅動程式會動態地減小檔案系統並釋放 vm 資源。
用乙個簡單的mount命令就可以建立tmpfs檔案系統:
mount tmpfs /mnt/tmpfs -t tmpfs
預設情況下,tmpfs會mount到/dev/shm目錄。使用tmpfs,就是說你可以使用這個目錄,這個目錄就是tmpfs,如你寫臨時檔案到此目錄,這些檔案實際上是在vm中。
為防止tmpfs使用了全部vm,有時候要限制其大小。比如要建立乙個最大為32 mb的tmpfs檔案系統:
mount tmpfs /dev/shm -t tmpfs -o size=32m
mount -t tmpfs none /tmp:所有
/tmp
目錄下的寫入其實都寫在記憶體中
。但tmpfs檔案系統不知道臨時檔案系統的可用記憶體數量改如何限制。所以要為/tmp目錄設定指定數量記憶體:mount -t tmpfs -o size=1g none /tmp(將分配給/tmp目錄1g記憶體空間,這樣可以避免/tmp寫入超過1g的內容)
由於沒有掛載之前/tmp目錄下的檔案也許正在被使用,因此掛載之後系統也許有的程式不能正常工作。可以寫入/etc/fstab,這樣重啟後也有效。
可以通過df -h來檢視檔案空間使用情況
記憶體檔案系統可以在伺服器重啟後自動掛載
tmpfs上的資料斷電會丟失
方案一:
熱資料乙個索引(在記憶體檔案中,斷電會丟失),所以熱資料需要備份乙個索引(資料在磁碟中,斷電不會丟失)
說明:資料量:25,200,002條,熱資料中source不寫rt_feature欄位,共24.5g,熱資料備份中source寫rt_feature欄位,共91g
1、分片數及搜尋效率
2、資料備份與恢復
如果熱資料(hot_history_fss_data_test)丟失,可以從熱資料備份中(warm_history_fss_data_test)用reindex的方式進行恢復。
15個分片時,資料恢復耗時12分鐘
20個分片時,資料恢復耗時11分鐘(如果從磁碟reindex到磁碟(有特徵),需要耗時70分鐘)
3、資料的刪除
因為只有乙個索引,所以資料的刪除只能先過濾過期的資料,然後將這些資料刪除,刪除語句如下:
4、併發性
方案二:熱資料採用滾動建索引的方式,每400萬資料建立乙個新的索引,每個索引5個分片
25,200,002條資料滾動建索引的情況如下:
hot_history_fss_data_test-00001:4,039,000 (3.96g)
hot_history_fss_data_test-00002:4,089,000(4.01g)
hot_history_fss_data_test-00003:4,024,000(3.95)
hot_history_fss_data_test-00004:4,045,000 (3.97g)
hot_history_fss_data_test-00005:4,047,000(3.97g)
hot_history_fss_data_test-00006:4,050,000(3.97g)
hot_history_fss_data_test-00007:906,002(921m)
上述索引有乙個共同的索引別名:history_search_v1_2
1、搜尋效率
2、資料的備份與恢復
熱資料的備份和熱資料一樣,也是滾動建立索引,資料恢復時,每乙個索引都進行reindex,由於兩份資料時同時寫的,乙個在記憶體中乙個在磁碟中,寫入的速度不一樣,建立新索引的時間也不一樣,可能兩份資料會有一些誤差,但對實際使用應該沒有很大的影響。
3、資料的刪除
由於是滾動建立了多個索引,所以資料刪除時可以直接刪除整個索引,用es提供的curator可以完成滾動建立和刪除的功能
curator --config /home/czl/tmpfs/curator/curator.yml /home/czl/tmpfs/curator/rollover_action_file.yml>>/home/czl/tmpfs/curator/create-index.log 2>&1
4、併發性
ES 冷熱分離
1.安裝node cd usr local src wget tar zxvf node v4.4.7 linux x64.tar.gz c usr local mv usr local node v4.4.7 linux x64 usr local node cat etc profile eof...
mysql冷熱分離的技術 資料歸檔,冷熱資料分離
一.關於tokudb引擎 1.tokudb引擎特點 2.tokudb安裝步驟 1.yum install jemalloc y 2.vim etc my.cnf 新增如下 mysqld safe malloc lib usr lib64 libjemalloc.so.1 3.echo never s...
資料歸檔,冷熱資料分離
一.關於tokudb引擎 1.tokudb引擎特點 1.高壓縮比,高寫入效能 4.支援索引同步 2.tokudb安裝步驟 1.yum install jemalloc y 2.vim etc my.cnf 新增如下 mysqld safe malloc lib usr lib64 libjemall...