国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Linux內(nèi)存使用情況觀察

Linux上的free命令詳解 (轉(zhuǎn)自http://www.cnblogs.com/coldplayerest/archive/2010/02/20/1669949.html

  解釋一下Linux上free命令的輸出。

  下面是free的運(yùn)行結(jié)果,一共有4行。為了方便說明,我們加上了列號(hào)。這樣可以把free的輸出看成一個(gè)二維數(shù)組FO(Free Output)。例如:

  • FO[2][1] = 999212
  • FO[3][2] = 305404
1 2 3 4 5 6
1
total used free shared buffers cached
2 Mem: 999212 967476 31736 0 50668 223000
3  -/+ buffers/cache: 693808 305404
4 Swap: 2048276 154524 1893752    

  free的輸出一共有四行,第四行為交換區(qū)的信息,分別是交換的總量(total),使用量(used)和有多少空閑的交換區(qū)(free),這個(gè)比較清楚,不說太多。

  free輸出地第二行和第三行是比較讓人迷惑的。這兩行都是說明內(nèi)存使用情況的。第一列是總量(free),第二列是使用量(free),第三列是可用量(free)。第一行的輸出時(shí)從操作系統(tǒng)(OS)來看的。也就是說,從OS的角度來看,計(jì)算機(jī)上一共有:

  • 999212KB(缺省時(shí)free的單位為KB)物理內(nèi)存,即FO[2][1];
  • 在這些物理內(nèi)存中有967476KB(即FO[2][2])被使用了;
  • 還用31736KB(即FO[2][3])是可用的;

這里得到第一個(gè)等式:

  • FO[2][1] = FO[2][2] + FO[2][3]

FO[2][4]表示被幾個(gè)進(jìn)程共享的內(nèi)存的,現(xiàn)在已經(jīng)deprecated,其值總是0(當(dāng)然在一些系統(tǒng)上也可能不是0,主要取決于free命令是怎么實(shí)現(xiàn)的)。

FO[2][5]表示被OS buffer住的內(nèi)存。FO[2][6]表示被OS cache的內(nèi)存。在有些時(shí)候buffer和cache這兩個(gè)詞經(jīng)?;煊谩2贿^在一些比較低層的軟件里是要區(qū)分這兩個(gè)詞的,看老外的洋文:

  • A buffer is something that has yet to be "written" to disk.
  • A cache is something that has been "read" from the disk and stored for later use.

也就是說buffer是用于存放要輸出到disk(塊設(shè)備)的數(shù)據(jù)的,而cache是存放從disk上讀出的數(shù)據(jù)。這二者是為了提高IO性能的,并由OS管理。

Linux和其他成熟的操作系統(tǒng)(例如windows),為了提高IO read的性能,總是要多cache一些數(shù)據(jù),這也就是為什么FO[2][6](cached memory)比較大,而FO[2][3]比較小的原因。我們可以做一個(gè)簡單的測(cè)試:

  1. 釋放掉被系統(tǒng)cache占用的數(shù)據(jù);
    echo 3 >/proc/sys/vm/drop_caches

     

  2. 讀一個(gè)大文件,并記錄時(shí)間;
  3. 關(guān)閉該文件;
  4. 重讀這個(gè)大文件,并記錄時(shí)間;

第二次讀應(yīng)該比第一次快很多。原來我做過一個(gè)BerkeleyDB的讀操作,大概要讀5G的文件,幾千萬條記錄。在我的環(huán)境上,第二次讀比第一次大概可以快9倍左右。

 

  free輸出的第二行是從一個(gè)應(yīng)用程序的角度看系統(tǒng)內(nèi)存的使用情況。

  • 對(duì)于FO[3][2],即-buffers/cache,表示一個(gè)應(yīng)用程序認(rèn)為系統(tǒng)被用掉多少內(nèi)存;
  • 對(duì)于FO[3][3],即+buffers/cache,表示一個(gè)應(yīng)用程序認(rèn)為系統(tǒng)還有多少內(nèi)存;

因?yàn)楸幌到y(tǒng)cache和buffer占用的內(nèi)存可以被快速回收,所以通常FO[3][3]比FO[2][3]會(huì)大很多。

這里還用兩個(gè)等式:

  • FO[3][2] = FO[2][2] - FO[2][5] - FO[2][6]
  • FO[3][3] = FO[2][3] + FO[2][5] + FO[2][6]

這二者都不難理解。

  free命令由procps.*.rpm提供(在Redhat系列的OS上)。free命令的所有輸出值都是從/proc/meminfo中讀出的。

在系統(tǒng)上可能有meminfo(2)這個(gè)函數(shù),它就是為了解析/proc/meminfo的。procps這個(gè)包自己實(shí)現(xiàn)了meminfo()這個(gè)函數(shù)。可以下載一個(gè)procps的tar包看看具體實(shí)現(xiàn),現(xiàn)在最新版式3.2.8。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
linux下使用free命令查看實(shí)際內(nèi)存占用(可用內(nèi)存)
Linux之free命令內(nèi)存管理功能使用及案例
free 結(jié)果詳解 - Gerry
free 命令解釋
Linux操作系統(tǒng)中內(nèi)存buffer和cache的區(qū)別 - Linux - 操作系統(tǒng) - ...
usb_buffer_alloc 改動(dòng)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服