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

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

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

      Linux:top指令

      學習自:(99+ 封私信 / 81 條消息) TOP命令參數詳解---10分鐘學會top用法 - 知乎

      0、常用

      本節為top常用參數總結,初學者請從第一節開始看。

      1)前五行

       分別代表

        ①top-服務器啟動至今的一些信息:當前時間、運行時間、當前用戶、系統負載(1 5 15分鐘內的平均值)

        ②Tasks:當前整體進程運行情況

        ③%CPU:當前各任務占用CPU百分比,總和為100%:

          us:用戶進程占用

          sy:系統內核占用(資源調度之類的)

          ni:優先級調整占用

          id:空閑

          wa:等待磁盤IO

        ④KiB Mem:當前各任務占用內存,單位默認為KiB(寫在該行最前了),如果要切換單位可以按E

          total:內存總量

          free:空閑內存

          used:已用內存

          buff/cache:緩存(比內存更接近CPU的一塊存儲)

        ⑤KiB Swap:Swap內存使用情況

          total:Swap區總量

          free:空閑Swap區

          used:已用Swap區

          avail Mem:預估可用內存

      2)第7行:詳細進程信息

        PR:優先級,反映被調度的優先度,該值越小優先度越高

        NI:NICE值,PR=NI+20

        VIRT:VIRTUAL,虛擬內存,進程理論上可用的內存上限

        RES:駐留內存,當前已使用的物理內存大小(不含Swap)

        SHR:共享內存,是RES的一部分,RES-SHR為獨占內存

        S:進程狀態:

          R:Running

          S:Sleeping,休眠等待某個事件,可主動被信號中斷

          D:Disk Sleeping,休眠等待某個事件,必須該事件完成后才會恢復

          Z:Zombie,僵尸進程,進程已終止,但父進程還未回收其資源——PID仍存在

          T:Stopped,收到了暫停信號SIGSTOP后暫停,可通過恢復信號SIGCONT恢復

          t:Traced,被調試器跟蹤

        %CPU:進程CPU使用率,如果為多線程則為所有線程使用率之和(可通過H切換為多線程顯示模式,不過一般不直接在整體top里邊用,而是用top -H pid的形式專門顯示某個進程的所有線程)

        %MEM:進程物理內存占用系統總內存百分比

        TIME+:進程累計使用CPU時間

        COMMAND:啟動進程的命令或程序(可通過c切換為完整指令模式)

      3)常見用法

      #指定刷新時間,每秒刷新一次:-d
      top -d 1
      
      #刷新2次:-n
      top -n 2
      
      #輸出到文件(通常配合-n):-b
      #如果不限制-n,則會每3s打一次一直持續
      top -n 1 -b > /tmp/log.txt
      
      #指定進程:-p或--pid
      top -p 21478
      top -p $(pgrep nginx)
      
      #指定用戶:-u user或-U UID
      top -u root
      top -U 1000
      
      #精細到線程級(通常配合-p查看某個進程的線程):-H
      top -Hp 1000
      
      #指定單位(默認KiB):-E
      top -E m
      top -E g
      
      #指定排序依據的字段:-o
      top -o %CPU

      4)交互式命令

        M、P、T:按MEM、CPU、TIME+進行排序

        u:篩選出某個用戶的進程信息

        1:顯示多核CPU每個核的情況

        E:切換顯示單位

        H:精細到線程級別

        k:終止進程

        f:進入布局自定義模式

        q:退出

      1、說明

      top指令可以提供一個不斷更新的當前系統進程、負荷信息

      2、輸出

      輸出內容可以分為兩部分:

        前五行:系統整體的統計信息

        從第八行開始:具體進程信息

      1)第一行

      top - 16:20:38 up 12 days,  5:24,  2 users,  load average: 0.04, 0.03, 0.05

      說明:

      top:當前時間

      up:機器運行時間

      users:當前登錄用戶數

      load average:系統負載,即任務隊列的平均長度。三個數值分別為 1 5 15分鐘到現在的平均值

       

      任務隊列是指CPU正在處理、等待CPU處理的進程之和。

       

      load average升高可能代表①系統正在進行CPU密集型計算;②由于I/O問題導致隊列堵塞

      一個CPU在一個時間片內只能運行一個進程,CPU核數的多少直接影響該機器在同時間內能運行的進程數。正常情況下Load Average不超過這臺機器的總核數就基本沒啥問題。

      2)第二行

      Tasks: 127 total,   1 running, 126 sleeping,   0 stopped,   0 zombie

      說明

      Tasks:當前進程總數(以下四類加起來)

      running:正在運行的進程數

      sleeping:正在休眠的進程數

      stopped:停止的進程數

      zombie:僵尸進程數

      running越多,服務器壓力越大。

      3)第三行

      %Cpu(s):  0.3 us,  0.7 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.0si,  0.0 st

      說明

      各種任務占用的CPU百分比,它們的總和為100。

       

      指標

      含義(均為該任務項占用CPU百分比)

      例子

      us user,用戶空間

      shell程序、編譯器、各種應用、WEB服務器、桌面應用。

      以上這些應用如果不是處于idle狀態,那么絕大多數時間都是處于用戶態。

      sy system,內核空間

      進程運行時的資源由Linux內核調度,該項反映了Linux用于資源調度的時間。

      對于OS設計而言,消耗在內核態的時間應該越小越好。

      實踐中,有一種典型情況會使sy變大,那就是大量的IO操作,因此在調查IO相關問題時需要著重關注它。

      ni nice,用戶空間中進程調整優先級

      用戶態進程具有優先級,通過nice值進行調整。

      nice值調整會消耗CPU時間,如果系統中沒有進程被調整過nice值,那么ni就為0。

      id idle,空閑CPU  
      wa waiting,等待輸入輸出

      由于磁盤IO的速度與CPU的處理速度不在一個量級,因此經常會出現CPU在啟動磁盤讀寫操作后,需要等待讀寫操作結果返回的情況。

      在此之前CPU只能處于空閑狀態,Linux在計算系統平均負載時會把CPU等待IO操作時間也計入其中,因此當我們看到系統平均負載過高時,可以通過wa來判斷系統性能瓶頸是不是由過多IO引發的。

      hi hardirq,硬中斷

      硬中斷:硬盤、網卡硬件設備給CPU發出的中斷消息

      CPU收到中斷消息后需要進行處理(消耗CPU時間)。

      si softirq,軟中斷

      軟中斷由程序發出的中斷

      CPU同樣也要處理。

      st steal time,僅用于虛擬機,被Host搶占的CPU  

      4)第四行

      KiB Mem : 1863012 total, 1286408 free,  216532 used, 360072 buff/cache

      KiB:指明了該行數字的單位,均為KiB,即1024B。之所以不用KB,是因為KB有可能在表示1024還是1000上有混淆,而KiB特指210=1024B。

      說明

      total:物理內存總量

      free:空閑內存量

      used:已使用內存量

      buff/cache:用作buffer/cache(緩存)的內存量。

      5)第五行

      KiB Swap: 5242876 total, 7999484 free,     0 used. 1468240 avail Mem

      本行為交換區(Swap)內存的相關信息Swap區硬盤上劃分出的一塊特殊區域,也叫虛擬內存,但由于本質是硬盤,所以讀寫速度慢。

      當內存不足時,內核會將不常用的內存數據“換出”到Swap中,避免程序崩潰,但頻繁的換入換出會嚴重拖慢系統速度(因為CPU讀寫硬盤的速度遠低于CPU讀寫內存的速度)。

      說明

      total:Swap區內存總量

      free:空閑Swap區內存量

      used:已使用Swap區內存量(從內存中交換到硬盤中的數據量)

      avail Mem:預估可用內存,內存free + 可回收的buff/cache + Swap free

      第四行、第五行對比來看,可以用于判斷系統內存是否充足,如果內存used過高Swap used持續增長,通常說明內存資源緊張,需要排查內存占用過高的進程。

      6)進程信息

      PID    USER    PR  NI  VIRT    RES   SHR   S  %CPU  %MEM     TIME+  COMMAND            
      21829  root    20   0  0       0     0     S   0.7  0.6   129:53.91  java
      22559  root    20   0  158920  5628  4268  S   0.3  9.2   139:42.81  java
      22598  root    20   0  162112  2208  1540  S   0.3  0.1   0:04.68    fluentd

      說明

      指標 含義 說明
      PID

      Process ID。

      進程ID

       
      USER 用戶所屬用戶  
      PR

      Priority。

      進程優先級。

      數值越小,優先級越高,越容易被CPU調度。

      帶RT標記的進程為“實時進程”,優先級通常高于普通進程。

      NI

      Nice。

      謙讓值。

      用于調整進程優先度的“謙讓度”,簡介影響PR值。

      針對非實時進程,關系為PR=NI+20

      VIRT

      Virtual Memory

      虛擬內存使用量

      虛擬內存:該進程理論上可以訪問的內存范圍

      包括:

        1、進程實際使用的物理內存(RES)

        2、未使用的Swap空間內存

        3、共享庫中未加載到物理內存中的部分

        4、已被分配但未使用的內存(例如程序預留內存)

      RES

      Resident Set Size

      駐留內存

      進程當前使用的物理內存(RAM)大小(KiB),不含Swap。

      說明:

        1、僅計算實際加載到物理內存中的部分(不含未使用的虛擬內存);

        2、包含和其他進程共享的內存(如共享庫)

      SHR

      Shared Memory

      共享內存

      進程使用的共享內存大小(KiB)。

      包括:

        1、與其他進程共享的庫(如系統動態鏈接庫libc.so)

        2、通過shm等機制創建的進程間共享內存。

      SHR是Res的一部分,非共享內存(獨占內存)=RES-SHR

      S

      Process State

      進程狀態

      使用單個字母表示:

        R:Running,就緒、運行

        S:Sleeping,休眠(等待某個事件,如IO)

        D:Disk Sleeping,深度休眠(不可被信號中斷,通常為等待磁盤IO)

        Z:Zombie,僵尸進程(進程已終止,但父進程還未回收其資源——PID仍存在)

        T:Stopped,暫停(如收到了SIGSTOP信號,可以通過SIGCONT恢復)

        t:Traced,被調試器跟蹤

      %CPU 進程CPU使用率

      該進程在最近一次刷新(默認3s)內占用的CPU百分比(一個CPU最高為100%,n核系統上限為n×100%)。

      若某進程為多線程,默認計算所有線程CPU使用率總和(可按H切換為顯示單個線程)。

      %MEM 進程物理內存占系統總內存百分比

      計算公式為:(RES/系統總物理內存)×100%。

      反映了進程占用物理內存的比例。

      TIME+ 進程累計使用CPU時間(包括用戶態、內核態)

      精確到0.01s。

      COMMAND 啟動進程的命令或程序

      默認顯示命令的簡化名稱(如bash、nginx)

      按c可以切換為完整命令行(包含參數,如nginx -c /etc/...)

      以上為默認情況下顯示的一些比較重要的指標,還有一些隱藏參數(下圖未加*前綴的部分,按f進入下圖):

      3、top命令使用

      1)調整顯示內容

      通過f鍵可以編輯顯示內容,按f后進入下圖:

      說明:

      ①白色高亮的%CPU代表進程信息是按照%CPU這一列排序的,如果要修改排序列,可以先通過上下鍵移動到該指標,按s選中排序列(選中之后首行的sort field is xxx會發生變化),之后按q生效;

      如果要改變顯示順序,可以先通過上下鍵移動到該指標處,再按右鍵(鍵盤→鍵,不是鼠標右鍵),此時會將該指標整體高亮,之后按上下鍵就可以移動該指標的布局位置了,如果要退出排序模式,可以按左鍵(即←)

      顯示的列前帶有星號(*),如果要控制該列是否顯示,可以通過空格d鍵來控制該列是否顯示。

      q退出布局設置模式,回到top顯示頁面。

      ⑤默認排序方式是降序,如果要改為升序,可以在回到顯示頁面后,按R進行逆序

      2)參數

      雖然單一個top默認輸出的內容大多數情況下足以滿足我們問題排查所需,但top也允許我們通過參數更加精細化地控制輸出。

      參數

      含義

      說明

      1、基礎顯示控制

      -d 秒數    

      指定刷新間隔(默認3s)

      每秒刷新1次

      top -d 1

      -b 批處理模式(Batch Mode),用于將輸出重定向到文件、腳本

      將一次top結果輸出到文件

      top -b -n 1 > top.log

      -n 次數 指定刷新次數后退出
      -c 顯示完整的command,而非簡化的命令 顯示nginx -c /usr/nginx/cof/nginx.conf而非nginx
      -s Secure Mode,安全模式,禁止使用交互式命令(如k終止進程),防止誤操作。  
      2、過濾(用戶、進程)
      -u 用戶 只顯示指定用戶的進程

      僅顯示root用戶的進程

      top -u root

      -p PID 只顯示指定PID的進程(可指定多個PID,用逗號分隔)

      顯示PID為1、100、200的進程

      top -p 1,100,200

      top -p $(pgrep nginx)

      -U UID

      按照UID過濾進程(區別于-u,前者只接收用戶名)

      顯示UID為1000的用戶進程

      顯示UID為1000的用戶進程

      top -U 1000

      --pid PID        同-p

      顯示所有的nginx進程

      top --pid $(pgrep nginx

      -i 不顯示idle和zombie進程  
      -1 顯示所有CPU核心的使用率(將多核系統的%CPU列拆分為多個CPU列)  
      3、線程、內存相關
      -H 線程級CPU使用率排序,用于定位具體哪個線程占用資源過高  
      -S 累積模式,顯示進程及其所有子進程的累積CPU時間  
      -E 單位

      切換內存單位(默認KiB),可選的單位有k、m、g

      top -E m:以MB為單位顯示內存

      top -E g:以GB為單位

      -o 字段 指定顯示的內容按照哪個字段進行排序(降序)

      按照CPU使用率降序排序

      top -o %CPU

      4、交互式命令(非參數,而是進入top之后使用)

      以下大小寫是明確的,比如在小寫模式下按p,會生成一個unknown command

      M 按內存使用率(%MEM)排序  
      P 按CPU使用率(%CPU)排序  
      T 按累積CPU時間(TIME+)排序  
      1 同-1,顯示多核CPU的每個核的情況  
      u 同-u,顯示某個用戶的用戶進程  
      E 同-E,切換單位,默認是KB,按一下切換為MB,在按一下切換為GB  
      H 同-H,切換進程/線程顯示模式  
      k 終止進程 先按k進入kill交互,輸入PID并回車,之后輸入信號編號(如9為強制終止)
      f 自定義顯示字段 見前文
      q 退出top  

      3)例子

      ①監控所有的nginx進程,每秒刷新一次

      top -p $(pgrep nginx) -d 1

      ②顯示某進程下的所有線程

      top -H -p <PID>

      ③輸出到文件:-b

      每5s刷新一次,共刷新10次,輸出到文件

      top -b -n 10 -d 5 > top_stats.logs

      ④顯示用戶的所有進程,按內存使用率排序

      top -u miduser -o %MEM

       

      posted @ 2025-07-16 15:07  ShineLe  閱讀(75)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 福利一区二区在线观看| 日日爽日日操| 国产精品爽爽爽一区二区| 防城港市| 自拍偷拍第一区二区三区| 亚洲日本欧美日韩中文字幕| 国产精品内射在线免费看| 亚洲国产精品ⅴa在线观看| 国产嫩草精品网亚洲av| 丁香五香天堂网| 日韩精品中文字一区二区| 激情内射亚洲一区二区三区| 日韩高清不卡免费一区二区| 乐都县| 亚洲天堂一区二区成人在线| 亚洲日韩欧洲乱码av夜夜摸 | 亚洲精品熟女一区二区| 欧美成人精品三级在线观看| 国产尤物精品自在拍视频首页| 91中文字幕在线一区| 2019香蕉在线观看直播视频| 婷婷色爱区综合五月激情韩国| 久久久精品2019中文字幕之3| 久久久久久久一线毛片| 女同亚洲精品一区二区三| 国产精品区一区第一页| 92国产精品午夜福利免费| 久章草这里只有精品| 亚洲熟妇一区二区三个区| 国产原创自拍三级在线观看| 99国产精品国产精品久久| 国产人成亚洲第一网站在线播放| 国产精品有码在线观看| 亚洲av一本二本三本| 国产熟睡乱子伦视频在线播放| 99国产欧美久久久精品蜜芽| 国产一区二区三区四区五区加勒比| 亚洲一区二区精品极品| 亚洲 制服 丝袜 无码| 一区二区三区鲁丝不卡| 国产精品毛片一区二区|