<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Linux:vmstat指令

      學習自:

      Vmstat 命令詳解-CSDN博客

      Linux 內存之vmstat-CSDN博客

      1、Linux分頁管理概述

      vmstat(Virtual Memory Statistics,虛擬內存),用于對OS虛擬內存、進程、CPU活動進行監控。

      它是對系統整體情況的分析,無法對某個進程進行深入分析

      1)虛擬內存

      Linux系統內存分為物理內存、虛擬內存兩種。

      物理內存就是物理內存條上的內存。

      虛擬內存是邏輯內存,是指利用硬盤上部分空間作為物理內存的補充,將暫時不用內存頁寫到硬盤上以空出更多的物理內存供又需要的進程使用。當這些內存頁需要再次使用時,才從虛擬內存中讀回。這一過程對用戶透明。

      對Linux來說,虛擬內存就是Swap分區

      2)頁面交換

      Linux的內存管理采取的是頁式存取,為保證物理內存可以得到充分使用,內核會在適當時機將內存中最近不常用到自動交換到虛擬內存,而將經常使用的信息保存到物理內存。

      Linux的頁面交換是不定時進行的,以保證盡可能多的空出物理內存,即使當前物理內存充足,它也會交換,以避免出現實際要交換時卻等待交換的現象。

      Linux的頁面交換是有條件的,并非所有頁面不用時都會交換到虛擬內存,Linux內核采用最近最常使用算法,僅將一些不經常使用的頁面交換到虛擬內存。因此有時會看到這種情況:Liunx的物理內存還有很多,但是swap空間也用了很多,這是正常現象。例如一個占用很多內存的進程運行時需要耗費很多資源,此時會有一些不常用的頁面文件交換到swap區,當后續該進程結束并釋放內存,剛剛交換出去的頁并不會主動交換回來,除非它們將要被使用。此時就會出現上述物理內存空閑、swap空間也有占用的現象。

      當swap區要交換進來時,它會首先被交換到物理內存,如果此時沒有足夠的物理內存容納這些頁,它們會被立刻交換出去。此時swap區也可能沒有足夠空間來存儲這些頁,最終導致Linux出現假死機、服務異常情況。

      3)Linux頁面交換流程

      系統中每個進程都需要使用內存,但并非每個進程需要時時刻刻占用內存。

      當系統運行所需內存超過了實際物理內存,內核會釋放某些進程所占用但未使用的部分或全部物理內存,將這些進程頁調度到磁盤空間,即上文提到的swap區。此時在物理內存中空出的內存會提供給有需要的進程使用。

      在Linux中,通過調頁Paging、交換Swaping實現上述內存調度。調度算法是將最近不常使用的頁面交換到swap區,把活動頁面留到內存中供進程使用。交換的是整個進程全部頁面而非部分頁面

      頁寫入磁盤的過程稱為Page-Out

      頁從磁盤重回內存的過程稱為Page-In

      當內核需要一個頁,但是該頁不在物理內存中,此時會觸發分頁錯誤(Page Fault)

      當內核發現可運行內存減少時,就會通過Page-Out釋放一部分物理內存。

      2、vmstat

      1)用途

      顯示swap區內存信息

      2)用法

      vmstat [-a] [-n] [-S unit] [delay [ count]]
      vmstat [-s] [-n] [-S unit]
      vmstat [-m] [-n] [delay [ count]]
      vmstat [-d] [-n] [delay [ count]]
      vmstat [-p disk partition] [-n] [delay [ count]]
      vmstat [-f]
      vmstat [-V]

      這里的delay、count不是參數名,而是具體的數字:

      delay:每隔多少秒輸出一次;

      count:一共輸出幾次

      vmstat -a 2 5

      每隔2s輸出一次,一共輸出5次。

      3)參數

      參數 說明
      a

      顯示active、inactive內存:

      active:當前進程使用的內存

      inactive:已經分配了,但是還未被使用的內存

      s

      顯示內存相關統計信息及多種系統活動數量

      顯示內存使用的詳細信息

      m 顯示slabinfo
      d

      顯示磁盤相關統計信息

      p 顯示指定磁盤分區統計信息
      n

      只顯示一次表頭

      如果不加該參數,每輸出44行就重復顯示一次表頭

      S

      使用指定單位,后跟k、K、m、M。

      分別代表103,210,106,220B。

      默認為K。

      f

      顯示系統啟動至今的fork數量。

      fork:Linux函數,用于創建子進程,原進程稱為父進程。

      V vmstat版本信息

      4)輸出字段說明

      常規

       vmstat
      
      procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
       r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
       3  0      0 389880   3128 281808    0    0    40    17   75  109  0  0 100  0  0
      
      vmstat -a
      procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
      r b swpd free inact active si so bi bo in cs us sy id wa st
      3 0 0 470148 156800 76880 0 0 400 79 97 196 0 1 98 0 0

       

      指標 用途 說明
      procs
      r running,運行隊列中進程數量

      r>cpu個數,代表當前系統運行慢,有較多進程等待cpu

      r>4×cpu個數,代表CPU短缺或速率過低

      b 等待IO的進程數量 如果disk≠0且b>3,代表io性能不好
      memory
      swpd 已使用swap空間大小  
      free 可用物理內存大小  
      buff 緩沖區內存大小  
      cache 緩存區內存大小  
      inact 非活躍內存(參數-a)  
      active 活躍內存(參數-a)  
      swap
      si 每秒從swap區寫到內存的大小  
      so 每秒從內存寫到swap區的大小  
      io
      bi 每秒從磁盤讀取的頁數 如果長期bi、bo≠0,代表內存不足
      bo 每秒寫入磁盤的頁數
      system
      in 每秒中斷數,包括時鐘中斷  
      cs 每秒上下文切換數  
      CPU
      us 用戶進程執行時間百分比

      1)id+us+sy=100

      2)如果r>4,且id經常<40,表示cpu負荷很重

      3)如果id持續為0且sy>2×us,代表系統面臨CPU資源短缺的問題

      sy 系統進程執行時間百分比
      id CPU空閑時間百分比
      wa 等待IO時間  
      st 被虛擬機使用的CPU時間百分比  

       磁盤:-d

      vmstat -d
      disk- ------------reads------------ ------------writes----------- -----IO------
             total merged sectors      ms  total merged sectors      ms    cur    sec
      sda     4199      3  350807    3582    308     28   69832     728      0      3
      sr0       31      0     147     292      0      0       0       0      0      0

      該信息來自/proc/diskstats

      指標 用途 說明
      reads
      total 成功讀取的總數  
      merged 分組讀取(產生一個IO)  
      sectors 成功讀取的扇區數  
      ms 讀取花費的毫秒  
      writes
      total 成功寫入的總數  
      merged 分組寫入(產生一個IO)  
      sectors 成功寫入的扇區數  
      ms 寫入花費的毫秒  
      IO
      cur 正在進行的IO數  
      sec IO花費的秒數  

      指定磁盤:-p

      vmstat -p /dev/sda1
      sda1            reads      read sectors      writes  requested writes
                        156             89110           2              4096
      指標 用途 說明
      reads 來自該分區的讀取次數  
      read sectors 來自該分區的讀扇區次數  
      writes 來自該分區的寫入次數  
      requested writes 來自該分區的寫請求次數  

      slab:-m

      vmstat -m
      Cache                       Num  Total   Size  Pages
      xfs_dqtrx                     0      0    528     15
      xfs_dquot                     0      0    496      8
      xfs_buf                    1431   1431    448      9
      xfs_bui_item                  0      0    200     20
      xfs_bud_item                  0      0    168     24……
      kmem_cache_node             256    256     64     64
      kmem_cache                  234    234    448      9

      該信息來自/proc/slabinfo

      Linux的內存分配是以頁為單位,但是如果給某些小對象分配一個完整的頁,會導致頁空間存在浪費。slab可以把頁劃分為多個相等的小內存單元,再把這些小對象統一分到一個頁中,進而減少內部碎片產生(學習自:Linux 內存管理(八)之 slab 分配器_linux slab-CSDN博客)。

      5)例子

      ①每秒采樣一次,一共采兩次

      vmstat 1 2
      procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
       r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
       4  0      0 470088   4168 206808    0    0   538   106  108  228  1  1 98  0  0
       0  0      0 470028   4168 206808    0    0     0     0   84  127  0  0 100  0  0

      ②指定輸出單位為MB:-S

      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 st
       3  0      0    459      4    201    0    0   457    90  103  211  1  1 98  0  0

      ③顯示活躍、非活躍內存:-a

      vmstat -a
      procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
       r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st
       3  0      0 470148 156800  76880    0    0   400    79   97  196  0  1 98  0  0

      在使用參數-a時,所顯示內容相比經典輸出,只是增加了active和inact

      ④查看系統fork了多少次:-f

      vmstat -f
               1291 forks

      fork是Linux的一個重要函數,代表從原進程中創建一個子進程,原進程稱為父進程。

      該數據來源于/proc/stat中的processes字段:

      cat /proc/stat
      cpu  216 1 392 69682 39 86 21 0 0 0
      cpu0 216 1 392 69682 39 86 21 0 0 0
      intr 58434 ……
      ctxt 111387
      btime 1730164117
      processes 1295
      procs_running 3
      procs_blocked 0
      softirq 57128 7 18948 133 1764 4572 0 101 0 0 31603

      ⑤顯示內存使用的詳細信息:-s

      vmstat -s
             828592 K total memory
             147540 K used memory
              76888 K active memory
             156836 K inactive memory
             470008 K free memory
               4168 K buffer memory
             206876 K swap cache
            1952764 K total swap
                  0 K used swap
            1952764 K free swap
                216 non-nice user cpu ticks
                  1 nice user cpu ticks
                397 system cpu ticks
              80120 idle cpu ticks
                 39 IO-wait cpu ticks
                 95 IRQ cpu ticks
                 24 softirq cpu ticks
                  0 stolen cpu ticks
             175473 pages paged in
              34748 pages paged out
                  0 pages swapped in
                  0 pages swapped out
              65064 interrupts
             121999 CPU context switches
         1730164117 boot time
               1296 forks

      這些信息分別來自于:/proc/meminfo、/proc/stat、/proc/vmstat

      默認顯示單位為KB,可以用-S將單位調整為MB

      vmstat -sS M
                809 M total memory
                144 M used memory
                 75 M active memory
                153 M inactive memory
                458 M free memory
                  4 M buffer memory
                202 M swap cache
               1906 M total swap
                  0 M used swap
               1906 M free swap
                217 non-nice user cpu ticks
                  1 nice user cpu ticks
                398 system cpu ticks
              80731 idle cpu ticks
                 40 IO-wait cpu ticks
                 96 IRQ cpu ticks
                 24 softirq cpu ticks
                  0 stolen cpu ticks
             175473 pages paged in
              34748 pages paged out
                  0 pages swapped in
                  0 pages swapped out
              65420 interrupts
             122594 CPU context switches
         1730164117 boot time
               1297 forks

       

      posted @ 2024-10-29 10:12  ShineLe  閱讀(210)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲一区二区三区| 久久99久久99精品免观看| 一区二区三区精品不卡| 精品国偷自产在线视频99| 永胜县| 中文字幕一区二区三区精华液| 亚洲第一综合天堂另类专| 欧美老熟妇乱子伦牲交视频| 玩弄放荡人妻少妇系列| 五月丁香激激情亚洲综合| 亚洲AV无码国产在丝袜APP| 亚洲真人无码永久在线| 久久三级国内外久久三级| 91亚洲一线产区二线产区| 狠狠躁夜夜躁人人爽天天bl| 被灌满精子的少妇视频| 精品国产一区二区三区大| 亚洲熟女乱综合一区二区三区| 日韩国产成人精品视频| 亚洲国产精品线观看不卡| 中文字幕免费不卡二区| 免费可以在线看a∨网站| 真实国产老熟女无套内射| 娇妻玩4p被三个男人伺候| 男女xx00xx的视频免费观看| 国产精品福利一区二区久久| 亚洲欧美激情在线一区| 欧美日韩一线| 久久热精品视频在线视频| 亚洲国产一区二区三区| 久久国产精品不只是精品| 午夜国产精品福利一二| 老妇xxxxx性开放| 中文字幕免费不卡二区| 亚洲性日韩一区二区三区| 亚洲av免费成人在线| 精品一区二区三区自拍图片区| 日韩精品中文字幕第二页| 亚洲av男人电影天堂热app| 久久精品天天中文字幕人妻 | 亚洲欧洲自拍拍偷午夜色|