1、緩存機(jī)制介紹在Linux系統(tǒng)中,為了提高文件系統(tǒng)性能,內(nèi)核利用一部分物理內(nèi)存分配出緩沖區(qū),用于緩存系統(tǒng)操作和數(shù)據(jù)文件,當(dāng)內(nèi)核收到讀寫(xiě)的請(qǐng)求時(shí),內(nèi)核先去緩存區(qū)找是否有請(qǐng)求的數(shù)據(jù),有就直接返回 , 如果沒(méi)有則通過(guò)驅(qū)動(dòng)程序直接操作磁盤(pán) 。緩存機(jī)制優(yōu)點(diǎn):減少系統(tǒng)調(diào)用次數(shù),降低CPU上下文切換和磁盤(pán)訪(fǎng)問(wèn)頻率 。CPU上下文切換:CPU給每個(gè)進(jìn)程一定的服務(wù)時(shí)間,當(dāng)時(shí)間片用完后,內(nèi)核從正在運(yùn)行的進(jìn)程中收回處理器,同時(shí)把進(jìn)程當(dāng)前運(yùn)行狀態(tài)保存下來(lái),然后加載下一個(gè)任務(wù),這個(gè)過(guò)程叫做上下文切換 。實(shí)質(zhì)上就是被終止運(yùn)行進(jìn)程與待運(yùn)行進(jìn)程的進(jìn)程切換 。
2、查看緩存區(qū)及內(nèi)存使用情況【電腦清理緩存cmd的指令 linux清理緩存的方法】[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 8174716 4895588 761536 3656 2517592 2923504
Swap: 0 0 0
好像看的不太明顯 。。。。
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 7983 4781 2947 3 254 2919
Swap: 0 0 0
[root@localhost ~]# free -mh
total used free shared buff/cache available
Mem: 7.8G 4.7G 744M 3.6M 2.4G 2.8G
從上面的命令結(jié)果顯示中可以看出:內(nèi)存總共7.8G,已使用4.7G,剩余744M,不少的人都是這么看的 。
但其實(shí)這樣并不能作為實(shí)際的使用率 。因?yàn)橛辛司彺鏅C(jī)制,具體算法如下:空閑內(nèi)存=free(2947)+buffers(254)+cached(254)已用內(nèi)存=total(7983)-空閑內(nèi)存由此算出空閑內(nèi)存是已用內(nèi)存4.7G,這才是真正的使用率,也可參考-/+ buffers/cache這行信息也是內(nèi)存正確使用率 。
3、緩存區(qū)分buffers和cached區(qū)別內(nèi)核在保證系統(tǒng)能正常使用物理內(nèi)存和數(shù)據(jù)量讀寫(xiě)情況下來(lái)分配緩沖區(qū)大小 。buffers用來(lái)緩存metadata及pages,可以理解為系統(tǒng)緩存,例如,vi打開(kāi)一個(gè)文件 。cached是用來(lái)給文件做緩存,可以理解為數(shù)據(jù)塊緩存,例如,dd if=/dev/zero of=/tmp/test count=1 bs=1G 測(cè)試寫(xiě)入一個(gè)文件,就會(huì)被緩存到緩沖區(qū)中,當(dāng)下一次再執(zhí)行這個(gè)測(cè)試命令時(shí),寫(xiě)入速度會(huì)明顯很快 。
4、Swap用途Swap意思是交換分區(qū),通常我們說(shuō)的虛擬內(nèi)存,是從硬盤(pán)中劃分出的一個(gè)分區(qū) 。當(dāng)物理內(nèi)存不夠用的時(shí)候 , 內(nèi)核就會(huì)釋放緩存區(qū)(buffers/cache)里一些長(zhǎng)時(shí)間不用的程序,然后將這些程序臨時(shí)放到Swap中,也就是說(shuō)如果物理內(nèi)存和緩存區(qū)內(nèi)存不夠用的時(shí)候,才會(huì)用到Swap 。swap清理:swapoff -a && swapon -a注意:這樣清理有個(gè)前提條件,空閑的內(nèi)存必須比已經(jīng)使用的swap空間大
5、釋放緩存區(qū)內(nèi)存的方法a)清理pagecache(頁(yè)面緩存)
# echo 1 > /proc/sys/vm/drop_caches或者 # sysctl -w vm.drop_caches=1b)清理dentries(目錄緩存)和inodes
# echo 2 > /proc/sys/vm/drop_caches或者 # sysctl -w vm.drop_caches=2c)清理pagecache、dentries和inodes
# echo 3 > /proc/sys/vm/drop_caches或者 # sysctl -w vm.drop_caches=3上面三種方式都是臨時(shí)釋放緩存的方法,要想永久釋放緩存,需要在/etc/sysctl.conf文件中配置:vm.drop_caches=1/2/3,然后sysctl -p生效即可!
另外 , 可以使用sync命令來(lái)清理文件系統(tǒng)緩存,還會(huì)清理僵尸(zombie)對(duì)象和它們占用的內(nèi)存
——————–友情提示一下———————-
上面操作在大多數(shù)情況下都不會(huì)對(duì)系統(tǒng)造成傷害,只會(huì)有助于釋放不用的內(nèi)存 。但是如果在執(zhí)行這些操作時(shí)正在寫(xiě)數(shù)據(jù),那么實(shí)際上在數(shù)據(jù)到達(dá)磁盤(pán)之前就將它從文件緩存中清除掉了 , 這可能會(huì)造成很不好的影響 。那么如何避免這種事情發(fā)生呢?因此,這里不得不提一下
/proc/sys/vm/vfs_cache_pressure這個(gè)文件,告訴內(nèi)核 , 當(dāng)清理inoe/dentry緩存時(shí)應(yīng)該用什么樣的優(yōu)先級(jí) 。
vfs_cache_pressure=100這個(gè)是默認(rèn)值,內(nèi)核會(huì)嘗試重新聲明dentries和inodes,并采用一種相對(duì)于頁(yè)面緩存和交換緩存比較”合理”的比例 。減少vfs_cache_pressure的值,會(huì)導(dǎo)致內(nèi)核傾向于保留dentry和inode緩存 。增加vfs_cache_pressure的值,(即超過(guò)100時(shí)),則會(huì)導(dǎo)致內(nèi)核傾向于重新聲明dentries和inodes 總之 , vfs_cache_pressure的值:小于100的值不會(huì)導(dǎo)致緩存的大量減少超過(guò)100的值則會(huì)告訴內(nèi)核你希望以高優(yōu)先級(jí)來(lái)清理緩存 。其實(shí)無(wú)論vfs_cache_pressure的值采用什么值,內(nèi)核清理緩存的速度都是比較低的 。如果將此值設(shè)置為10000,系統(tǒng)將會(huì)將緩存減少到一個(gè)合理的水平 。釋放內(nèi)存前先使用sync命令做同步,以確保文件系統(tǒng)的完整性,將所有未寫(xiě)的系統(tǒng)緩沖區(qū)寫(xiě)到磁盤(pán)中,包含已修改的 i-node、已延遲的塊 I/O 和讀寫(xiě)映射文件 。否則在釋放緩存的過(guò)程中,可能會(huì)丟失未保存的文件 。
/proc是一個(gè)虛擬文件系統(tǒng),可以通過(guò)對(duì)它的讀寫(xiě)操作作為與kernel實(shí)體間進(jìn)行通信的一種手段 。也就是說(shuō)可以通過(guò)修改/proc中的文件,來(lái)對(duì)當(dāng)前kernel的行為做出調(diào)整 。也就是說(shuō)我們可以通過(guò)調(diào)整/proc/sys/vm/drop_caches來(lái)釋放內(nèi)存 。
drop_caches的值可以是0-3之間的數(shù)字,代表不同的含義:
0:不釋放(系統(tǒng)默認(rèn)值)
1:釋放頁(yè)緩存
2:釋放dentries和inodes
3:釋放所有緩存
釋放完內(nèi)存后改回去讓系統(tǒng)重新自動(dòng)分配內(nèi)存 。echo 0 >/proc/sys/vm/drop_caches
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問(wèn)題,請(qǐng)您及時(shí)就醫(yī)或請(qǐng)專(zhuān)業(yè)人士給予相關(guān)指導(dǎo)!
「愛(ài)刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對(duì)您有所幫助:- 如何打造一個(gè)整潔有序的電腦桌面
- 如何通過(guò)電腦管家預(yù)約免費(fèi)升級(jí)WIN10系統(tǒng)
- 如何選購(gòu)適合組裝電腦的高品質(zhì)電源
- 優(yōu)化電腦性能:360軟件管家下載“我思”軟件的步驟
- 如何在電腦文檔中插入頁(yè)腳顯示第幾頁(yè)/共幾頁(yè)
- 電腦搜狗輸入法:聲調(diào)拼音輸入技巧
- 新版電腦釘釘AI事實(shí)翻譯功能如何開(kāi)啟
- 如何在其他Win10電腦上同步你賬號(hào)下的密碼?
- 如何利用魔方軟件將DVD復(fù)制到電腦觀看
- 如何查看電腦型號(hào)
