<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          用于分析內(nèi)存的幾個命令

          共 1382字,需瀏覽 3分鐘

           ·

          2020-10-21 13:21

          ? 在后期的代碼維護過程中,免不了要和操作系統(tǒng)打交道。本次分享幾個用于分析進(jìn)程或內(nèi)存的Linux命令。







          pstree



          pstree可以將所有進(jìn)程以樹狀展示出來,如下圖:



          加上-p參數(shù)可以看到系統(tǒng)上的每個進(jìn)程,



          pstree -p <pid>

          可以通過ps命令查看到某進(jìn)程的pid,再加上該參數(shù)查看進(jìn)程下的線程。

          可以看到,系統(tǒng)有一個Go程序,該進(jìn)程包含五個線程,id分別如下圖。



          對于Linux內(nèi)核而言,不是非常區(qū)分進(jìn)程和線程,線程只是與同一個進(jìn)程內(nèi)的其他線程共享同一塊內(nèi)存的一個特殊進(jìn)程,每個線程同樣也有自己的pid。










          vmstat?



          可以對操作系統(tǒng)的虛擬內(nèi)存、進(jìn)程、CPU活動進(jìn)行監(jiān)控。

          一般有兩個參數(shù),用來表示采樣速率與次數(shù)。

          vmstat <時間間隔> <采集次數(shù)>



          返回的參數(shù)分別表示:


          • Procs

          ????????r:運行和等待CPU時間片的進(jìn)程數(shù)

          ????????b:表示阻塞的進(jìn)程數(shù)。


          • Memory

          ????????swpd:表示虛擬內(nèi)存使用情況

          ????????free:表示當(dāng)前空閑的物理內(nèi)存

          ????????buff:表示緩沖的內(nèi)存大小

          ????????Cache:表示緩存的內(nèi)存大小,


          • Swap

          ????????si:表示有磁盤讀入內(nèi)存大小。

          ????????so:表示由內(nèi)存寫入磁盤大小。


          • Io

          ????????bi:表示由塊設(shè)備讀入數(shù)據(jù)的總量

          ????????bo:表示寫到塊設(shè)備數(shù)據(jù)的總量


          • System

          ????????in:表示每秒中斷數(shù)。

          ????????cs:表示每秒產(chǎn)生的上下文切換次數(shù)(線程切換)


          • cpu

          ????????us:表示用戶進(jìn)程消耗的CPU時間百分比

          ????????sy:表示系統(tǒng)調(diào)用消耗的CPU時間百分比

          ????????id:表示CPU處在空間狀態(tài)的時間百分比

          ????????wa: 等待IO的CPU時間









          pidstat?



          可以用來監(jiān)控全部或指定進(jìn)程的cpu、內(nèi)存、線程、設(shè)備IO等系統(tǒng)資源的占用情況


          pidstat -w <時間間隔>

          可以查看某個時間間隔的進(jìn)程使用情況,如下圖:



          參數(shù)表示:

          • Cswch/s:每秒主動任務(wù)上下文切換數(shù)量

          • Nvcswch/s:每秒被動任務(wù)上下文切換數(shù)量

          • Command:命令名



          pidstat -tt -p <pid>

          可以看到每個進(jìn)程的線程切換與cpu調(diào)度情況


          ?


          參數(shù)表示:

          • TGID:主線程的表示

          • TID:線程id

          • %usr:進(jìn)程在用戶空間占用cpu的百分比

          • %system:進(jìn)程在內(nèi)核空間占用cpu的百分比

          • %guest:進(jìn)程在虛擬機占用cpu的百分比

          • %CPU:進(jìn)程占用cpu的百分比

          • CPU:處理進(jìn)程的cpu編號

          • Command:當(dāng)前進(jìn)程對應(yīng)的命令








          straces



          通過該命令可以看到該進(jìn)程正在進(jìn)行的用戶空間與內(nèi)核空間的交互,如系統(tǒng)調(diào)用,進(jìn)程狀態(tài)等。


          strace?-t?-p




          在上圖主要展示了該進(jìn)程退出的過程,可以使用該命令來判斷進(jìn)程退出的原因。



          推薦閱讀


          福利

          我為大家整理了一份從入門到進(jìn)階的Go學(xué)習(xí)資料禮包,包含學(xué)習(xí)建議:入門看什么,進(jìn)階看什么。關(guān)注公眾號 「polarisxu」,回復(fù)?ebook?獲取;還可以回復(fù)「進(jìn)群」,和數(shù)萬 Gopher 交流學(xué)習(xí)。



          瀏覽 54
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美精品超级AAAAAA | 苍井空一级婬片A片免费观看 | 久久久国产视频 | 欧美黄色一级片视频 | 中文字幕 国产 |