1. 程式人生 > 其它 >Linux 程序管理基礎

Linux 程序管理基礎

基本概念

程序的優先順序

0-139 共140個程序,數字越小,優先順序越高
核心控制:0-99 動態優先順序
使用者控制:100-139 靜態優先順序

nice值

-20-19 對應 100-139
-20 對應 100
19 對應 139

nice值越小,優先順序越高。通過nice可以調整程序的優先順序

'' root可以隨便調整nice值,普通使用者僅僅可以調大nice值 ''

PID (process ID) 程序ID

  • init : pid 1

程序的狀態

stopped: 停止
ready: 可以執行但是尚未開始
running: 執行
interrupt: 可中斷睡眠
ununterrupt: 不可終端睡眠
zombie: 殭屍程序

根據啟動方式分類

終端相關程序
終端無關程序

程序相關命令

1.pstree

以樹狀顯示程序的父子狀態

  • 不過沒有安裝手動安裝,軟體名為 psmisc

2.ps

process state

作用:

顯示系統中的程序的詳細資訊,一般和 grep 配合使用

選項:

  1. unix型別: -字母
  2. BSE型別: 字母
  3. GNU型別: --單詞

/proc下那些以數字為名稱的目錄就是程序的資訊對映

組合1: ps aux

a:顯示先行終端下所有的程序資訊
u:顯示程序是那個使用者發起的
x:顯示終端無關的程序資訊

USER:程序的屬主
%CPU %MEM:佔用記憶體和空間CPU時間的百分比
VSE:每個程序的虛擬記憶體集大小
RSS:每個程序的常駐記憶體集大小
TTY:終端編號 ?表示終端無關程序
SATA:程序的狀態
    具體引數看 man
START:程序的啟動日期
TIME:程序在CPU上的累計執行時間
COMMAND:執行那個命令發起的這個程序
    []: 表示該程序由核心發起的程序

組合2: ps -elf

-e: 顯示所有的程序,包括終端相關和無關,效果等於 ps au
-l: 以長格式顯示詳細資訊
-f:顯示程序的完整資訊

F:表示程序的標誌位
    1:表示fork之後為執行的程序
    4:超級使用者程序
S:表示程序的狀態
UID:程序的屬主
PID:程序的ID號
PPID:程序的父程序的PID
C:CPU的使用率,證書顯示
PRI:程序的優先順序
NI:程序的NICE值
ADDR:執行中的程序在記憶體中的編號
SZ:程序用掉swap的大小
WCHAN:程序是否處於執行狀態, - 表示正在執行
STIME
TTY
TIME:實際佔用CPU的時間
CMD:哪一個命令發起的程序

組合3: ps -eFH

-F:顯示比f更詳細的資訊
-H:以層級的方式顯示

組合4:顯示指定使用者程序

-u:username 顯示指定使用者發起的京城
    ps -u zx

組合5:顯示發起指定程序的命令

-C 程序名
    顯示httpd程序的pid
    ps -C httpd

3.pgrep和kill

pgrep:查詢符合某個規則的程序(預設僅顯示程序的ID)
kill:結束符合某個規則的進行

選項:
    -U uid|userName:指定執行程序的真實使用者(切換使用者之前的使用者)
    -u uid|userName:指定執行程序的有效使用者(當前執行程序的使用者)
    -t term:過濾指定終端相關的程序

    例子:過濾處程序資訊中包含bash的程序id
        # pgrep bash
    例子:過濾處以tom身份執行的程序,要求顯示程序id和程序名稱
        # pgrep -u tom -l
    例子:過濾出tom發起的程序
        # pgrep -U tom
    例子:過濾以tom身份執行,並且和bash相關的程序
        # pgrep -u tom bash

4.pidof

顯示指定程序的PID (顯示的是靜態資訊)

5.top

以動態方式,實時顯示系統的程序,cpu,記憶體等資訊,預設每隔 5s 重新整理一次
具體的引數含義看英文,很多也很重要

6.htop

top的升級版本,預設沒有,需要自己下載。

7.vmstat

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r  b 交換 空閒 緩衝 快取   si   so    bi    bo   in   cs us sy id wa st
1  0      0 2728296  24564 2119932    0    0    32    43   49   82  0  0 99  0  0

procs:當前系統的佇列資訊
    r:正在執行和等待執行的CPU的程序的數量
    b:表示阻塞的佇列長度(其實就是等待IO完成的程序的個數,也就是處於不可中斷的程序的個數)
memory:表示的是記憶體相關的資訊
    swap:表示就是從實體記憶體移動到swap中的資料量
    free:空閒實體記憶體大小
    buff:快取空間資料量(向磁碟進行寫操作的內容)
    cache:快取空間資料量(從磁碟進行讀操作的內容)
swap:使用swap的速率資訊
    si:資料進入互動分割槽的速率,kb/s
    so:資料進入互動分割槽的速率,kb/s
io:顯示磁碟IO的速率資訊
    bi:從記憶體向磁碟塊寫入資料的速率,kb/s
    bo:記憶體從磁碟中讀取資料的速率,kb/s
system:
    in:系統每秒產生的中斷數
    cs(content switch):系統每秒進行多少次程序切換

8.dstat

dstat是vmstat的升級版