日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Cachefiled

發(fā)布時(shí)間:2023/12/9 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Cachefiled 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

NFS不同共享客戶端間的數(shù)據(jù)不同步

問(wèn)題現(xiàn)象

當(dāng)您用臺(tái)ECS掛載同一個(gè)NFS文件系統(tǒng),在ECS-A上append寫文件,在ECS-B用tail -f觀察文件內(nèi)容的變化。在ECS-A寫完之后,在ECS-B看到文件內(nèi)容變化會(huì)有10-30秒的延時(shí)。然而相同的場(chǎng)景下,如果直接在ECS-B上打開文件(比如vi)卻是立即可以看到更新的內(nèi)容的。

原因

該現(xiàn)象與mount的選項(xiàng)以及tail -f實(shí)現(xiàn)相關(guān)。

用戶使用的mount命令為:mount -t nfs4 /mnt/

對(duì)于在ECS-B上以這一方式NFS mount的文件系統(tǒng),默認(rèn)情況下kernel對(duì)文件和目錄的屬性維護(hù)了一份metadata緩存,文件和目錄屬性(包括許可權(quán)、大小、和時(shí)間戳記)緩存的目的是減少 NFSPROC_GETATTR 遠(yuǎn)程過(guò)程調(diào)用(RPC)的需求。

tail -f 的實(shí)現(xiàn)是sleep+fstat來(lái)觀察文件屬性(主要是文件大小)的變化,然后讀入文件并輸出。可見,tail -f是否能實(shí)時(shí)輸出文件內(nèi)容主要取決于fstat的結(jié)果,由于metadata cache的存在,fstat輪詢到的并不是實(shí)時(shí)的文件屬性。因此,即使在NFS服務(wù)器端文件已經(jīng)更新了,但tail -f卻沒法知道文件已經(jīng)改動(dòng)了,于是輸出就會(huì)出現(xiàn)延時(shí)。

解決方法

使用mount 的noac選項(xiàng)可以disable文件和目錄屬性的緩存。

mount -t nfs4 -o noac /mnt/

---------------------------------------------------------------------------------------------------------------

1.cachefiled介紹

?? FS-Cache?是指在文件系統(tǒng)和緩存之間的接口。??CacheFS?指的則是FS-cache的緩存后端。CacheFS做實(shí)際的數(shù)據(jù)存儲(chǔ)和檢索處理,并使用塊設(shè)備的分區(qū)。

?? NFS,AFS等netfs因?yàn)槭芫W(wǎng)絡(luò)的影響,使得對(duì)數(shù)據(jù)訪問(wèn)和存儲(chǔ)的實(shí)時(shí)性就有了一定的挑戰(zhàn),CacheFS(FS-cache緩存后端即客戶端)可解決響應(yīng)實(shí)效的問(wèn)題?,用于提供分布式文件系統(tǒng)的本地緩存.
? ?cachefiled在2.6.30內(nèi)核中,已作為內(nèi)核的一部分。已支持NFS和AFS文件系統(tǒng)。

?

加載fscache模塊:

modprobe -v fscache

?

確認(rèn)nfs-utils的版本,cgslv4默認(rèn)版本為1.2.2-7

[root@localhost ~]# rpm -qa |grep nfs-utils

nfs-utils-1.2.2-7.el6.x86_64

3.配置cachefiled

修改/etc/cachefilesd.conf文件

vi /etc/cachefilesd.conf

dir /var/cache/fscache??????????????????

tag mycache??????????????????????????

culltable 15

brun 20%

bcull 10%

bstop 5%

frun 20%

fcull 10%

fstop 5%

?

dir參數(shù)用于配置本地緩存目錄。

tag參數(shù)用于指定一個(gè)FS-Cache的標(biāo)簽區(qū)分使用多個(gè)緩存

culltable參數(shù)用于設(shè)置緩存的等級(jí),數(shù)字越大緩存的命中率越高,占有內(nèi)存也越多。有效參數(shù)值在12-20之間。

?

brun,frun參數(shù)作用:如果剩余空間或緩存文件數(shù)量超過(guò)限制值,不會(huì)釋放已使用緩存的空間

bcull,fcullp參數(shù)作用:如果剩余空間或緩存文件數(shù)量低于限制值,將停止寫入緩存,并釋放已經(jīng)緩存的空間(釋放最近比較少使用緩存對(duì)象。)

bstop,fstop3參數(shù)作用:如果剩余空間或文件數(shù)量低于限制值,將緩存停止,并釋放至比brun,frun限制或更高才能重新工作。

必須滿足:

0 <= bstop < bcull < brun < 100

0 <= fstop < fcull < frun < 100

?

配置文件完成后,執(zhí)行/etc/init.d/cachefilesd start?啟動(dòng)cachefiled服務(wù)(建議關(guān)閉selinux,否則有可能導(dǎo)致cachefiled無(wú)法啟動(dòng))

?

把cachefiled設(shè)置為開機(jī)啟動(dòng):

chkconfig cachefiledsd on

4.測(cè)試緩存

nfs客戶端掛載網(wǎng)絡(luò)nfs共享盤符到本地,必須使用-o fsc參數(shù),netfs掛載后,緩存并不會(huì)自動(dòng)開始工作,只有發(fā)生了讀或者寫的操作后,緩存才會(huì)工作。cachefiled只支持小文件的緩存。

掛載命令:

mount -t nfs 172.16.100.127:/mnt /nfs -o fsc

?

可使用vi命令修改netfs中的文件,并檢查/var/fscache/cache目錄下是否生成@4a的類似文件,如存在表示緩存功能已經(jīng)激活。

[root@localhost cache]# ls

@4a

?

如出現(xiàn)問(wèn)題可查看分析/var/log/messages日志。

?

參考資料:https://www.cyberciti.biz/faq/centos-redhat-install-configure-cachefilesd-for-nfs/?

?

轉(zhuǎn)載于:https://www.cnblogs.com/wjoyxt/p/4563080.html

總結(jié)

以上是生活随笔為你收集整理的Cachefiled的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。