標籤: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