国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

Linux系統清除緩存的方法總結

2024-08-28 00:04:42
字體:
來源:轉載
供稿:網友

1)緩存機制介紹

在Linux系統中,為了提高文件系統性能,內核利用一部分物理內存分配出緩沖區,用于緩存系統操作和數據文件,當內核收到讀寫的請求時,內核先去緩存區找是否有請求的數據,有就直接返回,如果沒有則通過驅動程序直接操作磁盤。
緩存機制優點:減少系統調用次數,降低CPU上下文切換和磁盤訪問頻率。

CPU上下文切換:CPU給每個進程一定的服務時間,當時間片用完后,內核從正在運行的進程中收回處理器,同時把進程當前運行狀態保存下來,然后加載下一個任務,這個過程叫做上下文切換。實質上就是被終止運行進程與待運行進程的進程切換。

2)查看緩存區及內存使用情況

[root@localhost ~]# free -m       total    used    free   shared  buffers   cachedMem:     7866    7725    141     19     74    6897-/+ buffers/cache:    752    7113Swap:    16382     32   16350

從上面的命令結果顯示中可以看出:內存總共8G,已使用7725M,剩余141M,不少的人都是這么看的。
但其實這樣并不能作為實際的使用率。因為有了緩存機制,具體算法如下:

空閑內存=free(141)+buffers(74)+cached(6897)

已用內存=total(7866)-空閑內存

由此算出空閑內存是7112M,已用內存754M,這才是真正的使用率,也可參考-/+ buffers/cache這行信息也是內存正確使用率。

3)緩存區分buffers和cached區別

內核在保證系統能正常使用物理內存和數據量讀寫情況下來分配緩沖區大小。

buffers用來緩存metadata及pages,可以理解為系統緩存,例如,vi打開一個文件。

cached是用來給文件做緩存,可以理解為數據塊緩存,例如,dd if=/dev/zero of=/tmp/test count=1 bs=1G 測試寫入一個文件,就會被緩存到緩沖區中,當下一次再執行這個測試命令時,寫入速度會明顯很快。

4)Swap用途

Swap意思是交換分區,通常我們說的虛擬內存,是從硬盤中劃分出的一個分區。當物理內存不夠用的時候,內核就會釋放緩存區(buffers/cache)里一些長時間不用的程序,然后將這些程序臨時放到Swap中,也就是說如果物理內存和緩存區內存不夠用的時候,才會用到Swap。

swap清理:

swapoff -a && swapon -a

注意:這樣清理有個前提條件,空閑的內存必須比已經使用的swap空間大

5)釋放緩存區內存的方法

a)清理pagecache(頁面緩存)

# echo 1 > /proc/sys/vm/drop_caches   或者 # sysctl -w vm.drop_caches=1

b)清理dentries(目錄緩存)和inodes

# echo 2 > /proc/sys/vm/drop_caches   或者 # sysctl -w vm.drop_caches=2

c)清理pagecache、dentries和inodes

# echo 3 > /proc/sys/vm/drop_caches   或者 # sysctl -w vm.drop_caches=3

上面三種方式都是臨時釋放緩存的方法,要想永久釋放緩存,需要在/etc/sysctl.conf文件中配置:vm.drop_caches=1/2/3,然后sysctl -p生效即可!

另外,可以使用sync命令來清理文件系統緩存,還會清理僵尸(zombie)對象和它們占用的內存

# sync

上面操作在大多數情況下都不會對系統造成傷害,只會有助于釋放不用的內存。

但是如果在執行這些操作時正在寫數據,那么實際上在數據到達磁盤之前就將它從文件緩存中清除掉了,這可能會造成很不好的影響。那么如果避免這種事情發生呢?

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 搜索| 会理县| 舟曲县| 尼勒克县| 肥城市| 开化县| 东台市| 沈丘县| 泰兴市| 阳朔县| 大石桥市| 吴桥县| 汉沽区| 英德市| 泽库县| 大洼县| 方山县| 南漳县| 河南省| 江西省| 新干县| 滁州市| 昔阳县| 呼玛县| 保德县| 格尔木市| 稻城县| 湖南省| 黄龙县| 西平县| 鄂托克旗| 长寿区| 桓台县| 彭阳县| 林西县| 鄯善县| 富蕴县| 呼图壁县| 连平县| 聊城市| 和龙市|