Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3003969
  • 博文数量: 674
  • 博客积分: 17881
  • 博客等级: 上将
  • 技术积分: 4849
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-17 10:15
文章分类

全部博文(674)

文章存档

2013年(34)

2012年(146)

2011年(197)

2010年(297)

分类: LINUX

2011-12-28 15:50:05

延續 [尋幽訪勝話系統--以 Linux 探索軟硬體整合設計] 的演講,要觀察 GNU/Linux 運作時期的虛擬記憶體 (Virtaul Memory,以下簡稱 vm),其實沒有想像中的難。首先,可透過 vmstat 工具程式,執行方式如下:$ vmstat -S m procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 1 0 0 81 110 895 0 0 11 36 160 161 62 17 21 1 可列印 vm 的切割與狀態資訊。在 Linux 2.4 轉變到 2.6 的過程中,vm 經過很大的調整,cache 的設計也因此導致不同的表現,在上述 vmstat 的輸出可看到 "cache" 一欄的值,可透過 htop 工具程式作即時顯示系統的變化。不過,就算不安裝外部的工具程式,其實也有「窮人記憶體觀察工具」,那就是 /proc/meminfo ,可搭配 watch 使用: $ watch cat /proc/meminfo 顯示的效果如下圖:

每兩秒在終端機上更新一次,可清楚看到 vm 內各種類別的消長。

在 Linux 2.6.16 以後,引入 drop caches 的機制,所以咱們來看看 cache 的變化,如下圖:

htop 的視窗中,黃色部份就是 cache,當 /proc/sys/vm/drop_caches 的值被設定為 1 時,表示要求核心捨棄沒在使用的 cache (一般的),而被設定為 2 時則要求將 dentry, inode 所用的 cache memory 一併釋放,而設定為 3 時,就是 (1) + (2) 的效果,也就是幾乎把非作用的 cache 都釋放了。所以,在上圖中,很明顯可見,原本運作中的 GNU/Linux 的 vm 配置了可觀的 cache,在要求釋放後,就幾乎都清空。
http://blog.linux.org.tw/~jserv/archives/002039.html
阅读(1031) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~