<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    以java平臺為基礎,專注項目管理、關注電子商務
    攬住母親的肩頭,敬父親一杯酒,對愛的女人說“我愛你”,和另外一個男人打架,不要打女人,有一個自己的孩子,年輕的時候去漂泊,有自己的一份事業(yè).
    ?????????“內存” 包括物理內存和虛擬內存,虛擬內存(Virtual Memory)把計算機的內存空間擴展到硬盤,物理內存(RAM)和硬盤的一部分空間(SWAP)組合在一起作為虛擬內存為計算機提供了一個連貫的虛擬內存空間,好處是我們擁有的內存 ”變多了“,可以運行更多、更大的程序,壞處是把部分硬盤當內存用整體性能受到影響,硬盤讀寫速度要比內存慢幾個數(shù)量級,并且 RAM 和 SWAP 之間的交換增加了系統(tǒng)的負擔。

    在操作系統(tǒng)里,虛擬內存被分成頁,在 x86 系統(tǒng)上每個頁大小是 4KB。Linux 內核讀寫虛擬內存是以 “頁” 為單位操作的,把內存轉移到硬盤交換空間(SWAP)和從交換空間讀取到內存的時候都是按頁來讀寫的。內存和 SWAP 的這種交換過程稱為頁面交換(Paging),值得注意的是 paging 和 swapping 是兩個完全不同的概念,國內很多參考書把這兩個概念混為一談,swapping 也翻譯成交換,在操作系統(tǒng)里是指把某程序完全交換到硬盤以騰出內存給新程序使用,和 paging 只交換程序的部分(頁面)是兩個不同的概念。純粹的 swapping 在現(xiàn)代操作系統(tǒng)中已經很難看到了,因為把整個程序交換到硬盤的辦法既耗時又費力而且沒必要,現(xiàn)代操作系統(tǒng)基本都是 paging 或者 paging/swapping 混合,swapping 最初是在 Unix system V 上實現(xiàn)的。

    虛擬內存管理是 Linux 內核里面最復雜的部分,這里只介紹和性能監(jiān)測有關的兩個內核進程:kswapd 和 pdflush。

    • kswapd daemon 用來檢查 pages_high 和 pages_low,如果可用內存少于 pages_low,kswapd 就開始掃描并試圖釋放 32個頁面,并且重復掃描釋放的過程直到可用內存大于 pages_high 為止。掃描的時候檢查3件事:1)如果頁面沒有修改,把頁放到可用內存列表里;2)如果頁面被文件系統(tǒng)修改,把頁面內容寫到磁盤上;3)如果頁面被修改了,但不是被文件系統(tǒng)修改的,把頁面寫到交換空間。
    • pdflush daemon 用來同步文件相關的內存頁面,把內存頁面及時同步到硬盤上。比如打開一個文件,文件被導入到內存里,對文件做了修改后并保存后,內核并不馬上保存文件到硬盤,由 pdflush 決定什么時候把相應頁面寫入硬盤,這由一個內核參數(shù) vm.dirty_background_ratio 來控制,比如下面的參數(shù)顯示臟頁面(dirty pages)達到所有內存頁面10%的時候開始寫入硬盤。
    # /sbin/sysctl -n vm.dirty_background_ratio
    10

    vmstat

    繼續(xù) vmstat 一些參數(shù)的介紹,上一篇 Linux 性能監(jiān)測:CPU(二) 介紹了 vmstat 的部分參數(shù),這里介紹另外一部分。以下數(shù)據(jù)來自一個 256MB RAM,512MB SWAP 的 Xen VPS:

    # vmstat 1
    procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
     0  3 252696   2432    268   7148 3604 2368  3608  2372  288  288  0  0 21 78  1
     0  2 253484   2216    228   7104 5368 2976  5372  3036  930  519  0  0  0 100  0
     0  1 259252   2616    128   6148 19784 18712 19784 18712 3821 1853  0  1  3 95  1
     1  2 260008   2188    144   6824 11824 2584 12664  2584 1347 1174 14  0  0 86  0
     2  1 262140   2964    128   5852 24912 17304 24952 17304 4737 2341 86 10  0  0  4
    • swpd,已使用的 SWAP 空間大小,KB 為單位;
    • free,可用的物理內存大小,KB 為單位;
    • buff,物理內存用來緩存讀寫操作的 buffer 大小,KB 為單位;
    • cache,物理內存用來緩存進程地址空間的 cache 大小,KB 為單位;
    • si,數(shù)據(jù)從 SWAP 讀取到 RAM(swap in)的大小,KB 為單位;
    • so,數(shù)據(jù)從 RAM 寫到 SWAP(swap out)的大小,KB 為單位;
    • bi,磁盤塊從文件系統(tǒng)或 SWAP 讀取到 RAM(blocks in)的大小,block 為單位;
    • bo,磁盤塊從 RAM 寫到文件系統(tǒng)或 SWAP(blocks out)的大小,block 為單位;

    上面是一個頻繁讀寫交換區(qū)的例子,可以觀察到以下幾點:

    • 物理可用內存 free 基本沒什么顯著變化,swapd 逐步增加,說明最小可用的內存始終保持在 256MB X 10% = 2.56MB 左右,當臟頁達到10%的時候(vm.dirty_background_ratio = 10)就開始大量使用 swap;
    • buff 穩(wěn)步減少說明系統(tǒng)知道內存不夠了,kwapd 正在從 buff 那里借用部分內存;
    • kswapd 持續(xù)把臟頁面寫到 swap 交換區(qū)(so),并且從 swapd 逐漸增加看出確實如此。根據(jù)上面講的 kswapd 掃描時檢查的三件事,如果頁面被修改了,但不是被文件系統(tǒng)修改的,把頁面寫到 swap,所以這里 swapd 持續(xù)增加。
    posted on 2010-10-27 09:27 cssseek 閱讀(2110) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     

    <2010年10月>
    262728293012
    3456789
    10111213141516
    17181920212223
    24252627282930
    31123456

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    友情鏈接

    最新隨筆

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 免费一本色道久久一区| 在线看片v免费观看视频777 | 亚欧乱色国产精品免费视频| 日本免费v片一二三区| 亚洲国产成人综合精品| 国产女高清在线看免费观看| 亚洲AV无码一区二区三区久久精品| 成人免费无毒在线观看网站| 亚洲av永久无码精品秋霞电影秋| 成人永久免费高清| 一边摸一边爽一边叫床免费视频 | 5555在线播放免费播放| 亚洲国产精品美女| 亚洲精品动漫免费二区| 亚洲av无码成人精品区一本二本| 亚洲成A人片在线观看无码3D| 亚洲黄片手机免费观看| 久久精品国产亚洲av四虎| 久久WWW免费人成一看片| 亚洲jizzjizz在线播放久| 国产青草视频免费观看97| av片在线观看永久免费| 久久久久久a亚洲欧洲AV| 思思re热免费精品视频66| 色综合久久精品亚洲国产| 亚洲啪啪综合AV一区| 日日麻批免费40分钟日本的| 亚洲乱码中文字幕在线| 免费人成网站在线播放| 男男gvh肉在线观看免费| 亚洲国产一二三精品无码| 免费成人福利视频| 国产亚洲精品精品精品| 亚洲AV综合色区无码一区爱AV| 亚洲国产精品免费观看| 特级一级毛片免费看| 777亚洲精品乱码久久久久久| 四虎永久在线免费观看| 人人玩人人添人人澡免费| 男人天堂2018亚洲男人天堂 | 2022年亚洲午夜一区二区福利 |