Linux進程管理 - PRI,nice,free,uname,netstat

來源:互聯網
上載者:User

標籤:cpu   情況   i/o   alt   byte   x86   log   範圍   切割   

優先執行序 (priority, PRI)

         這個 PRI 值越低代表越優先的意思。只是這個 PRI 值是由核心動態調整的, 使用者無法直接調整 PRI 值的。


        由於 PRI 是核心動態調整的,我們使用者也無權去幹涉 PRI !那假設你想要調整進程的優先執行序時,就得要透過 Nice 值了!

Nice 值就是上表的 NI 啦!一般來說。 PRI 與 NI 的相關性例如以下:

            PRI(new) = PRI(old) + nice

        只是你要特別留意到。假設原本的 PRI 是 50 。並非我們給予一個 nice = 5 ,就會讓 PRI 變成 55 喔!

由於 PRI 是系統『動態』決定的。所以。儘管 nice 值是能夠影響 PRI ,只是, 終於的 PRI 仍是要經過系統分析後才會決定的。

另外, nice 值是有正負的喔,而既然 PRI 越小越早被執行。 所以。當 nice 值為負值時,那麼該進程就會減少 PRI 值。亦即會變的較優先被處理。此外,你必需要留意到:

    nice 值可調整的範圍為 -20 ~ 19 。
    root 可任意調整自己或他人程式的 Nice 值,且範圍為 -20 ~ 19 ;
    一般使用者僅可調整自己進程的 Nice 值,且範圍僅為 0 ~ 19 (避免一般使用者搶佔系統資源)。
    一般使用者僅可將 nice 值越調越高,比如本來 nice 為 5 ,則未來僅能調整到大於 5;

nice :新執行的命令即給予新的 nice 值

[[email protected] ~]# nice [-n 數字] command選項與參數:-n  :後面接一個數值,數值的範圍 -20 ~ 19。


eg:用root給一個nice值為-5, 用於執行vi,並觀察該進程。


原本的 bash PRI 為 80 。所以 vi 預設應為 80。只是由於給予 nice 為 -5 , 因此 vi 的 PRI 減少了!

但並不一定都是減少為75 ,由於核心還會動態調整!


renice :已存在程式的 nice 又一次調整

[[email protected] ~]# renice [number] PID選項與參數:PID :某個程式的 ID 啊。

eg:找出自己的bash PID,並將該PID的nice調整到10



free:觀察記憶體使用量情況

[[email protected] ~]# free [-b|-k|-m|-g] [-t]選項與參數:-b  :直接輸入 free 時,顯示的單位是 Kbytes,我們能夠使用 b(bytes), m(Mbytes)      k(Kbytes), 及 g(Gbytes) 來顯示單位喔。-t  :在輸出的終於結果。顯示實體記憶體與 swap 的總量。

eg:顯示眼下系統的記憶體容量



uname:查閱系統與核心相關諮詢

[[email protected] ~]# uname [-asrmpi]選項與參數:-a  :全部系統相關的資訊,包含底下的資料都會被列出來;-s  :系統核心名稱-r  :核心的版本號碼-m  :本系統的硬體名稱,比如 i686 或 x86_64 等;-p  :CPU 的類型,與 -m 類似,僅僅是顯示的是 CPU 的類型!

-i :硬體的平台 (ix86)


eg:輸出系統的基本諮詢



uptime:觀察系統的啟動時間與工作負載



netstat:追蹤網路或插槽檔

[[email protected] ~]# netstat -[atunlp]選項與參數:-a  :將眼下系統上全部的連線、監聽、Socket 資料都列出來-t  :列出 tcp 網路封包的資料-u  :列出 udp 網路封包的資料-n  :不以程式的服務名稱。以埠號 (port number) 來顯示;-l  :列出眼下正在網路監聽 (listen) 的服務。-p  :列出該網路服務的程式 PID 

eg:列出眼下系統已經建立的網路連線與unix socket狀態



dmesg:分析核心產生的資訊


dmesg顯示的資訊實在太多了。執行時一般增加管線命令來擷取須要的資訊。


vmstat:偵測系統資源變化

[[email protected] ~]# vmstat [-a] [延遲 [總計偵測次數]] <==CPU/記憶體等資訊[[email protected] ~]# vmstat [-fs]                      <==記憶體相關[[email protected] ~]# vmstat [-S 單位]                  <==配置顯示資料的單位[[email protected] ~]# vmstat [-d]                       <==與磁碟有關[[email protected] ~]# vmstat [-p 切割槽]                <==與磁碟有關選項與參數:-a  :使用 inactive/active(活躍與否) 代替 buffer/cache 的記憶體輸出資訊;-f  :啟動到眼下為止,系統複製 (fork) 的程式數;-s  :將一些事件 (啟動至眼下為止) 導致的記憶體變化情況列表說明。-S  :後面能夠接單位,讓顯示的資料有單位。比如 K/M 代替 bytes 的容量;-d  :列出磁碟的讀寫總量統計表-p  :後面列出切割槽。可顯示該切割槽的讀寫總量統計表

eg:統計眼下主機CPU狀態,每秒1次,共計3次


    記憶體欄位 (procs) 的項目分別為:
    r :等待執行中的進程數量。b:不可被喚醒的進程數量。

這兩個項目越多,代表系統越忙碌 (由於系統太忙。所以非常多進程就無法被執行或一直在等待而無法被喚醒之故)。

    記憶體欄位 (memory) 項目分別為:
    swpd:虛擬記憶體被使用的容量。 free:未被使用的記憶體容量。 buff:用於緩衝記憶體; cache:用於快速緩衝。 這部份則與 free 是同樣的。

    記憶體置換空間 (swap) 的項目分別為:
    si:由磁碟中將程式取出的量。 so:由於記憶體不足而將沒用到的進程寫入到磁碟的 swap 的容量。 假設 si/so 的數值太大。表示記憶體內的資料經常得在磁碟與主記憶體之間傳來傳去,系統效能會非常差!


 
    磁碟讀寫 (io) 的項目分別為:
    bi:由磁碟寫入的區塊數量; bo:寫入到磁碟去的區塊數量。

假設這部份的值越高,代表系統的 I/O 很忙碌。

    系統 (system) 的項目分別為:
    in:每秒被中斷的進程次數; cs:每秒鐘進行的事件切換次數;這兩個數值越大。代表系統與周邊裝置的溝通很頻繁! 這些周邊裝置當然包含磁碟、網路卡、時間鐘等。



    CPU 的項目分別為:
    us:非核心層的 CPU 使用狀態; sy:核心層所使用的 CPU 狀態; id:閑置的狀態; wa:等待 I/O 所耗費的 CPU 狀態; st:被虛擬機器 (virtual machine) 所盜用的 CPU 使用狀態。


eg:系統上面全部的磁碟讀寫狀態


Linux進程管理 - PRI,nice,free,uname,netstat

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.