<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                >vmstat是Virtual Meomory Statistics(虛擬內存統計)的縮寫,可對操作系統的虛擬內存、進程、CPU活動進行監控。是對系統的整體情況進行統計,不足之處是無法對某個進程進行深入分析。 **物理內存和虛擬內存的區別** * 物理內存就是系統硬件提供的內存大小,是真正的內存,相對于物理內存,在linux下還有一個虛擬內存的概念,虛擬內存就是為了滿足物理內存的不足而提出的策略,它是利用磁盤空間虛擬出的一塊邏輯內存,用作虛擬內存的磁盤空間被稱為交換空間(**Swap Space**) * linux的內存管理采取的是分頁存取機制,為了保證物理內存能得到充分的利用,內核會在適當的時候將物理內存中不經常使用的數據塊自動交換到虛擬內存中,而將經常使用的信息保留到物理內存。 * 作為物理內存的擴展,linux會在物理內存不足時,使用交換分區的虛擬內存,更詳細的說,就是內核會將暫時不用的內存塊信息寫到交換空間,這樣以來,物理內存得到了釋放,這塊內存就可以用于其它目的,當需要用到原始的內容時,這些信息會被重新從交換空間讀入物理內存 **命令格式:** vmstat [options] [delay [count]] > **用法:** > 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\] >**option:** > * -a:在2.5.41內核或更高版本的情況下,顯示活動和非活動內存 > * -f:顯示從系統啟動至今的fork數量 > * -m:顯示slabinfo > * -n:只在開始時顯示一次各字段名稱。 > * -s:顯示內存相關統計信息及多種系統活動數量。 > * delay:刷新時間間隔。如果不指定,只顯示一條結果。 > * count:刷新次數。如果不指定刷新次數,但指定了刷新時間間隔,這時刷新次數為無窮。 > * -d:顯示磁盤相關統計信息。 > * -p:顯示指定磁盤分區統計信息 > * -S:使用指定單位顯示。參數有 k 、K 、m 、M ,分別代表1000、1024、1000000、1048576字節(byte)。默認單位為K(1024 bytes) > * -t: 將時間戳附加到每一行 > * -w:寬輸出模式。(適用于內存量較大的系統,默認輸出模式會出現不必要的列中斷)。每行的輸出寬度超過80個字符。 > * -V:顯示vmstat版本信息。 > * -h:顯示幫助信息 **使用實例:** ``` // 間隔兩秒輸出一次,總共輸出一次 [root@iZbp1bum6107bp8mgzkeunZ ~]# vmstat 2 1 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 0 1432272 170236 1458628 0 0 2 11 80 9 2 1 97 0 0 ``` **各字段含義:** * procs(進程): * r:可運行進程的數量(正在運行或等待運行時)。這個值也可以判斷是否需要增加CPU。(長期大于1) * b:處于不間斷睡眠狀態的進程數。 * memory (內存): * swpd:使用的虛擬內存量,如果大于0,表示你的機器物理內存不足了 * free:空閑的物理內存的大小。 * buff:用作緩沖區的內存量。 * cache:用作緩存的內存量。如果cache的值大的時候,說明cache處的文件數多,如果頻繁訪問到的文件都能被cache處,那么磁盤的讀IO bi會非常小。 * inact:非活動內存的數量。(-a選項) * active:活動內存的數量。(-a選項) * swap(交換區內存): * si:每秒從磁盤讀入虛擬內存的大小,如果這個值大于0,表示物理內存不夠用或者內存泄露了 * so:每秒虛擬內存寫入磁盤的大小,如果這個值大于0,同上。 * io: * bi:塊設備每秒接收的塊數量,這里的塊設備是指系統上所有的磁盤和其他塊設備,默認塊大小是1024byte * bo:塊設備每秒發送的塊數量,例如我們讀取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO過于頻繁 * system: * in:每秒CPU的中斷次數,包括時間中斷 * cs:每秒上下文切換的數量。上下文切換次數過多表示你的CPU大部分浪費在上下文切換 * cpu: * us:用戶模式消耗的?CPU?時間百分比。該值較高時,說明用戶進程消耗的?CPU?時間比較多 * sy:系統進程執行時間(system time),sy的值高時,說明系統內核消耗的CPU資源多 * id:處于空閑狀態的 CPU 時間百分比。如果該值持續為?0,同時?sy 是?us 的兩倍,則通常說明系統則面臨著?CPU?資源的短缺。 * wa:IO?等待消耗的?CPU?時間百分比。該值較高時,說明?IO?等待比較嚴重,這可能磁盤大量作隨機訪問造成的,也可能是磁盤性能出現了瓶頸。 * st:從虛擬機竊取的時間 ``` // 顯示磁盤相關統計 [root@iZbp1bum6107bp8mgzkeunZ ~]# vmstat -d disk- ------------reads------------ ------------writes----------- -----IO------ total merged sectors ms total merged sectors ms cur sec vda 25757 7460 1763823 19699 643348 635379 11370970 477752 0 131 ``` 各字段含義: * Reads * total: 已成功完成總計讀取 * merged:分組讀取(產生一個I/O),表示一次來自于合并的寫/讀請求,一般系統會把多個連接/鄰近的讀/寫請求合并到一起來操作。 * sectors:扇區讀取成功 * ms:閱讀耗時數毫秒 * Writes * total:成功完成的寫入總數 * merged: 分組寫入(導致一個I/O) * sectors: :成功寫入的扇區 * ms:花在寫作上的時間是毫秒 * IO * cur:正在進行I/O * s:用于I/O的秒數 ``` // 顯示內存相關統計信息及多種系統活動數量 [root@iZbp1bum6107bp8mgzkeunZ ~]# vmstat -s -n 3688724 K total memory 627904 K used memory 1394436 K active memory 658564 K inactive memory 1431420 K free memory 170240 K buffer memory 1459160 K swap cache 0 K total swap 0 K used swap 0 K free swap 1180362 non-nice user cpu ticks 73 nice user cpu ticks 564146 system cpu ticks 49297129 idle cpu ticks 14239 IO-wait cpu ticks 0 IRQ cpu ticks 1287 softirq cpu ticks 0 stolen cpu ticks 882011 pages paged in 5689629 pages paged out 0 pages swapped in 0 pages swapped out 688199215 interrupts 1298539847 CPU context switches 1642910432 boot time 231209 forks ``` ``` // 顯示指定磁盤分區統計信息 [root@iZbp1bum6107bp8mgzkeunZ ~]# vmstat -p /dev/vda1 vda1 reads read sectors writes requested writes 25766 1760655 667383 11807306 ``` **各字段含義:** * reads:來自于這個分區的讀的次數。 * read sectors:來自于這個分區的讀扇區的次數。 * writes:來自于這個分區的寫的次數。 * requested writes:來自于這個分區的寫請求次數。 **結論:** * 如果r經常大于4,id經常少于40,表示cpu的負荷很重。 * 如果bi,bo長期不等于0,表示內存不足。這2個值越大(如超出1024k),能看到CPU在IO等待的值也會越大。 * 內存夠用的時候,si、so這2個值都是0,如果這2個值長期大于0時,系統性能會受到影響,磁盤IO和CPU資源都會被消耗。有些朋友看到空閑內存(free)很少的或接近于0時,就認為內存不夠用了,不能光看這一點,還要結合si和so,如果free很少,但是si和so也很少(大多時候是0),那么不用擔心,系統性能這時不會受到影響的 * 如果disk經常不等于0,且在b中的隊列大于3,表示io性能不好。 * vmstat中CPU的度量是百分比的。當us+sy的值接近100的時候,表示CPU正在接近滿負荷工作。但要注意的是,CPU 滿負荷工作并不能說明什么,Linux總是試圖要CPU盡可能的繁忙,使得任務的吞吐量最大化。唯一能夠確定CPU瓶頸的還是r(運行隊列)的值。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看