天天看點

Linux系統--Linux程序與作業管理(3)

Linux系統--Linux程序與作業管理(3)

Linux程序管理和作業管理的另外幾種管理指令:vmstat,dstat,pmap,glances,kill

1.vmstat指令:

 vmstat - Report virtual memory statistics

vmstat指令可以看到整個機器的CPU,記憶體,IO等使用情況。此指令不是動态顯示的,需要手動進行重新整理。

vmstat #:相隔#秒重新整理。

       直接執行vmstat指令的結果為:

Linux系統--Linux程式與作業管理(3)

各個字段的含義:

procs:

r:等待運作的程序的個數

b:處于等待資源的程序數,比如正在等待IO或者記憶體交換等

memory:

swpd:交換記憶體的使用總量,機關KB。如果swpd的值不為0或者比較大,而si,so的值長期為0,這種情況不必擔心,不會影響系統性能。

free:目前空閑的實體記憶體數量,機關KB

buff:buffer cache的記憶體數量,一般對塊裝置的讀寫才需要緩沖

cache:表示 page cache的記憶體數量,一般作檔案系統的cached,頻繁通路的檔案都會被cached。如果cached值較大,說明cached檔案數較多。如果此時IO的bi較小時,說明檔案系統效率較好。

swap:

si:資料進入swap中的資料速率(kb/s),由磁盤點入記憶體

so:資料離開swap中的資料速率(kb/s),由記憶體調入磁盤

IO:

bi:從塊裝置讀入資料到系統的速率(kb/s)(讀磁盤)

bo:儲存資料至塊裝置的速率:(寫磁盤)

這裡設定的bi+bo的參考值為1000,如果值大于1000,而且wa值比較大,則表示系統磁盤IO性能瓶頸。

stytem:

in:interrupt,中斷速率

cs:context switch,上下文切換速率,程序切換速率。

CPU:

us:使用者空間消耗的CPU的時間百分比

sy:核心空間消耗的CPU的時間百分比

id:CPU處于空閑狀态的時間百分比

wa:IO等待所占的CPU時間的百分比

常用選項:

-f:顯示從系統啟動至今的fork數量

-s:顯示記憶體先關統計資訊

-d:顯示磁盤相關的統計資訊

-p 分區:顯示磁盤分區統計資訊

2.pmap指令:

pmap - report memory map of a process

pmap -x pids...

-x:顯示詳細格式資訊。

          另一種實作:cat /proc/PID/maps

Linux系統--Linux程式與作業管理(3)

3.glances指令:

glance使用一款使用者Linux指令行系統監視工具,使用Python開發,能夠監視CPU,負載,記憶體,磁盤IO,網絡流量,檔案系統等資訊。

glances - A cross-platform curses-based monitoring tool

-b:以byte為機關顯示網卡資料速率

-d:關閉磁盤I/O子產品

-f:/path/to/somefile:設定輸入檔案

-o:{HTML|CSV}:輸出格式

-m:禁用mount子產品

-n:禁用網絡子產品

-t #:延遲時間間隔

glances界面:

Linux系統--Linux程式與作業管理(3)

glances界面分别顯示了CPU,Load,Mem,Swap,Network,Tasks,DiskI/O資訊。

進入glances界面之後有一些内建指令:

h:顯示幫助資訊

q:離開glances

c:按照CPU實時負載對系統程序進行排序

m:按記憶體使用狀況對系統程序進行排序

i:按照I/O使用狀況對系統程序進行排序

p:按照程序名稱進行排序

d:顯示磁盤讀寫狀況

w:删除日志檔案

l:顯示日志

s:顯示傳感器資訊

f:顯示系統資訊

4.dstat指令:

dstat:多功能系統資源統計生成工具。

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

-c:顯示CPU的相關資訊

-C 0,1,total

-d:顯示disk相關資訊

-D total,sda,sdb,sdc...

Linux系統--Linux程式與作業管理(3)

-g:顯示page相關統計資料

-m:顯示memory相關統計資料

-n:顯示network相關統計資料;

-N eth1,total  統計eth1接口彙總流量

-p:顯示process相關統計資料;

-r:顯示io請求相關的統計資料;

-s:顯示swapped相關的統計資料;

--tcp:和tcp相關的統計資料

--udp:和udp相關的統計資料

--unix:和unix相關的統計資料

--raw:和raw相關的統計資料

--socket:和socket相關的統計資料

          --ipc:和ipc(程序間通信)相關的統計資料

Linux系統--Linux程式與作業管理(3)

--top-cpu:顯示最占用CPU的程序

--top-io:顯示最占用io的程序

--top-mem:顯示最占用記憶體的程序

--top-latency:顯示延遲最大的程序

Linux系統--Linux程式與作業管理(3)

由此可以看出dstat的功能強大之處,dstat還支援擷取MySQL5的相關資訊:

--mysql5-(cmds|conn|io|keys ) 擷取mysql5相關資訊

5.kill指令:

kill指令向程序發送控制信号,以實作對程序管理:

顯示目前系統可用信号:

kill -l

man 7 signal

常用的信号:

1) SIGHUP: 無須關閉程序而讓其重讀配置檔案;

2) SIGINT: 中止正在運作的程序;相當于Ctrl+c;

9) SIGKILL: 殺死正在運作的程序;該信号不能被阻塞,處理和忽略

15) SIGTERM:終止正在運作的程序;該信号可以被阻塞處理,要求正常殺死程序時,允許程序釋放資源之後kill掉

18) SIGCONT:讓停止的程序繼續執行

19) SIGSTOP:停止程序的執行

制定信号的方法:

1.信号的數字辨別:1,2,9,15,18,19

2.信号完整的名稱:SIGHP,SIGINT,SIGKILL

3.信号的簡寫名稱:HUP,INT,KILL

向程序發送信号:

kill [-signal] PID ...

終止“名稱“之下的所有程序

killall [signal] program

6.Linux的作業控制:

前台作業:通過終端啟動,且啟動後一直占據終端;

背景作業:可以通過終端啟動,但啟動後即轉入背景運作(釋放終端);

如何讓作業運作于背景?

(1) 運作中的作業

Ctrl+z

(2) 尚未啟動的作業

# COMMAND &

此類作業雖然被送往背景運作,但其依然與終端相關;如果希望送往背景後,剝離與終端的關系:

# nohup COMMAND &

檢視所有作業:

# jobs

作業控制:

# fg [[%]JOB_NUM]:把指定的背景作業調回前台;

# bg [[%]JOB_NUM]:讓送往背景的作業在背景繼續運作;

# kill [%JOB_NUM]:終止指定的作業;

7.程序優先級的調整:

程序優先級的調整,是調整靜态優先級:100-139

程序預設啟動時的nice值為0,優先級為120

如:我們運作top指令,來檢視其的優先級:

Linux系統--Linux程式與作業管理(3)

nice指令:

nice [OPTION] [COMMAND [ARG]...]

renice指令:

renice [-n] priority pid...

繼續閱讀