進程監控及管理經常使用命令

進程監控及管理經常使用命令

1、進程linux

linux進程概念:session

         進程是一個執行中的程序的實例(副本),全部系統上運行的數據都會以進程的類型存在。進程是計算機科學中最深入最成功的概念之一。進程提供給應用程序的關鍵抽象是:多線程

1.一個獨立的邏輯控制流,它提供一個假象,好像咱們的應用程序獨佔地使用處理器。app

2.一個私有的地址空間,它提供一個假象,好像咱們的程序獨佔地使用存儲器系統。ssh

      每一個進程都有一個惟一的數字標識符,稱爲進程 ID ,它老是一個非負整數。使用 top, htop 等工具就能夠看到操做系統當前的進程列表,而且會按照必定的指標進行排序。socket


      一個老進程會成爲新進程的父進程,那麼新進程就是老的進程的子進程。一個進程除了有一個PID以外,還會有一個PPID來存儲的父進程 PID。全部進程的源頭是 init 進程,即全部的進程會構成一個以 init (CentOS7下是systemd)爲根的樹狀結構。tcp


進程狀態:ide

    運行狀態:進程正在運行或在運行隊列中等待運行 。
    可中斷等待狀態:進程正在等待某個事件完成(如等待數據到達),等待過程當中能夠被信號或定時器喚醒。 
    不可中斷等待狀態:進程正在等待某個事件完成而且等待中不能夠被信號或定時器喚醒,必須一直等待到事件發生。
    僵死狀態:進程已終止,但進程描述符依然存在,直到父進程調用wait()函數後釋放。 
    中止狀態:進程由於收到SINSTOP,SIGSTP,SIGTIN,SGIOU信號後中止運行或者該進程正在被跟蹤。
函數



2、經常使用命令
工具

1)pstree命令:進程樹查看命令wKiom1b2J2eDMtYyAAAve_KycRM304.png



2)ps命令:

      /proc/:內核中的狀態信息;

 內核參數:模擬成文件系統類型;

可設置其值從而調整內核運行特性的參數;/proc/sys/

狀態變量:其用於輸出內核中統計信息或狀態信息,僅用於查看;


每一個進程都在/proc/目錄下有個以PID號命名的子目錄,目錄中存放了當前進程的各類狀態參數。

wKioL1b2KCyyrwdUAABa814c4eU717.png


 啓動進程的方式:

    系統啓動過程當中自動啓動:與終端無關的進程;

    用戶經過終端啓動:與終端相關的進程,關閉終端其子進隨之關閉;

ps經常使用選項:

          a 全部與終端相關的進程;

          x 全部與終端無關的進程;

          u以用戶爲中心組織進程狀態信息顯示;

經常使用組合一:ps  aux

wKioL1b2KJji-2C5AABHJMC3e8U341.png

   VSZ: 虛擬內存集;

  RSS: 常駐內存集(不能放到交換內存中的);

  TTY: 終端類型

 STAT: 當前進程的狀態

         R  running 運行中

         S  可中斷睡眠

         D  不可中斷睡眠

         T  中止狀態

         Z  僵死狀態

         +  前臺進程(運行於終端之上且佔據着命令提示符)

         l  多線程進程

         N 低優先級進程

        <  高優先級進程

        s   session leader 一個會話的引導着

 

   ps -e :顯示全部進程

   ps -f :顯示完整格式的進程信息

經常使用組合:ps   -ef

wKiom1b2KFqTZNcSAAAp9NmJ494628.png      

          PPID:父進程的進程號

            C : cpu的佔用百分比

         STIME:啓動時間

          TIME:累計運行時間

ps -F:顯示完整格式的進程信息;

                       PSR:運行於哪顆cpu

ps -H: 以層級機構顯示進程的相關信息;

經常使用組合三:ps -eFH

經常使用組合四:ps -eoaxo

       o後邊跟可用參數,即要顯示的字段列表,以逗號隔開

        ps axo pid,ni,psr,pcpu,stat,comm,tty

       ninice值;

       pripriority, 優先級;

       rtprioreal time priority,實時優先級;



3)pgreppkill命令:進程過濾

      pgrep [options] pattern

   -u uideffective user有效的用戶進程

   -U uidread user 某用戶啓動的進程,只顯示進程號

   -t  TERMINAL:與指定的終端相關的進程;

   -l:顯示進程名;

   -a:顯示完整格式的進程名;

   -P pid:顯示此進程的子進程;

     pidof命令:

  根據進程名,取其pid

wKiom1b2KPSybjhMAAAFQHsZO_M381.png



4)top命令:

wKioL1b2KcWjwXqJAABY2D6uUSs126.png

 字段含義:PR  優先級

             NI   nice

             VIRT 虛擬內存集

             RES 常駐內存集

             SHR 共享內存空間

             S    當前狀態

  顯示排序方式: P 以佔用CPU百分比排序;

                    M 以佔據內存百分比排序;

                    T 以累計佔用CPU時間排序;


  首部信息:uptime信息:l命令

   taskscpu信息:t命令

   內存信息:m命令

             單個cpu佔用顯示 1

   退出命令:q

   修改刷新時間間隔:s

   終止指定的進程:k


經常使用選項:

     -d #:指定刷新時間間隔,默認爲3秒;

     -b:以批次方式顯示;

     -n #:顯示多少批次;



5)htop命令:

wKiom1b2KaGxGqCKAACVHISYt0U714.png

選項:

   -d #:指定延遲時間間隔;

   -u UserName:僅顯示指定用戶的進程;

   -s COLUME:以指定字段進行排序;

 子命令:

    l:顯示選定的進程打開的文件列表;

    s:跟蹤選定的進程的系統調用;

    t:以層級關係顯示各進程狀態;

    a:將選定的進程綁定至某指定的CPU核心;



6)vmstat命令:vmstat 2 5 兩秒顯示一次共顯示5

wKiom1b2KebQ6kP2AAAkqvo1J5c492.png

各字段含義:

  • proc  

       r:等待運行的進程個數,cpu上等待運行的任務的隊列長度(cpu性能)

       b:處於不可中斷睡眠狀態的進程個數,被阻塞的任務隊列的長度(I/O性能)

  • memory

       swpd:交換內存的使用總量;(查看內存)

       free:空閒的物理內存總量;

       buffer:用於buffer的內存總量;

       cache:用於cache的內存總量;(解決兩個設備速度不對等)

  • swap

   si:數據進入swap中的數據速率(kb/s

   so: 數據離開swap的速率(kb/s

  • io

        bi:從塊設備讀入數據到系統的速度(kb/s

   bo: 保存數據至塊設備的速率(kb/s

  • sysytem

  in:中斷速率,每秒幾個

  cs:上下文切換的速率

  • cpu

       us:用戶空間

       sy:內核空間

       id:空閒的空間

       wa:等待i/o

       st:被虛擬化偷走的空間

 vmstat -s :顯示內存統計數據

wKioL1b2Kx-BRTN-AABNuodqfAs619.png


  

7)dstat命令:

wKioL1b2LRPjh9CKAABBubZ9MLA185.png

 dstat [-afv] [options..] [delay [count]]

       經常使用選項:

             -c--cpu:顯示cpu相關信息;

             -C #,#,...,total

             -d, --disk:顯示磁盤的相關信息

             -D sda,sdb,...,tobal

             -g:顯示page相關的速率數據;

             -mMemory的相關統計數據

             -nInterface的相關統計數據;

             -p:顯示process的相關統計數據;

             -r:顯示io請求的相關的統計數據;

             -s:顯示swapped的相關統計數據;

顯示  --tcp 、--udp、--raw、--socket 、--ipc 相關信息

wKioL1b2LenxFlC4AAA1W-3khqY664.png

--top-cpu:顯示最佔用CPU的進程;

--top-io:最佔用io的進程;

--top-mem:最佔用內存的進程;

--top-latency:延遲最大的進程

wKiom1b2LW2QIbU0AABfFgE-x8k224.png



8)kill命令:


- terminate a process:用於向進程發送信號,以實現對進程的管理;


顯示當前系統可用信號:

              kill -l [signal]

每一個信號的標識方法有三種:

         1) 信號的數字標識;

         2) 信號的完整名稱;

         3) 信號的簡寫名稱;

向進程發信號:

kill  [-s signal|-SIGNAL]  pid...


經常使用信號:

    1SIGHUP:無須關閉進程而讓其重讀配置文件;

    2SIGINT:終止正在運行的進程,至關於Ctrl+c

    9SIGKILL:殺死運行中的進程;

    15SIGTERM:終止運行中的進程;

   18SIGCONT

   19SIGSTOP

killall命令:


   - kill processes by name

    killall  [-SIGNAL]  program

相關文章
相關標籤/搜索