Linux中工作管理與系統(tǒng)資源查看詳解
Part One 工作管理
工作管理指的是在單個登錄終端同時管理多個工作的行為。Linux中的工作管理,簡而言之就是把工作放在后臺運行的行為。在windows中,我們經(jīng)常也會針對各種工作做出管理,常用的將工作放在后臺的方式就是最小化某個應(yīng)用程序。那么為什么要對工作進行管理呢?在windows中這很好理解,我們要對其他工作進行操作時,一般只有將當(dāng)前工作界面最小化才能方便處理其他工作。同樣的,在Linux中,比如我們執(zhí)行cp命令復(fù)制一個很大的文件時,如果不是將其置于后臺執(zhí)行,就只能等到復(fù)制完成才能對其他工作進行處理。
在具體講工作管理之前,我們首先應(yīng)注意到這樣幾個事項:
- 當(dāng)前終端只能管理當(dāng)前終端的工作,無法管理其他終端的工作。
- 放入后臺的命令要能持續(xù)運行一段時間,這樣才能捕捉和操作這個工作。例如,如果我們將ls命令放入后臺,而我們知道ls在回車后就已經(jīng)結(jié)束了,此時放入后臺的意義就不存在了。
- 放入后臺的命令不能與前臺有交互或者需要前臺的輸入,否則其在后臺只能暫停,無法運行。例如,top命令需要與前臺交互,vi/vim命令是對文檔進行編輯,需要用戶輸入,此類命令在后臺處于暫停狀態(tài)而不能在后臺運行。
具體方法:
(1)把進程放入后臺
- 在命令后接&符,用于把命令放入后臺執(zhí)行,例如find /-name a & 查找系統(tǒng)下名字為a的文件。
- 執(zhí)行命令后ctrl+z,將命令在后臺暫停。最常見的比如top命令,執(zhí)行top后,在交互命令中按ctrl+z,就將top放在后臺暫停了。
(2)查看后臺工作
- 命令:jobs [-l]
- 選項 -l:用于顯示工作的進程號
如圖,用jobs命令可以查看前面暫停在后臺的top命令,加上-l選項后顯示其進程號。在圖中,“+”號表示的是最近放入后臺的工作,也是默認恢復(fù)的***個工作,“-”號表示的是倒數(shù)第二個放入后臺的工作。
(3)將后臺暫停的工作恢復(fù)到前臺執(zhí)行
- 命令:fg %工作號
- 參數(shù):%工作號:工作號是jobs命令輸出信息***列的值,不是進程號,前面加上%號用于區(qū)別二者,%可省略。
如上圖所示,執(zhí)行命令fg %1后,工作號為1的后臺工作將恢復(fù)到前臺執(zhí)行,如果不加參數(shù),fg命令默認恢復(fù)帶“+”號的工作。
(4)將后臺暫停的工作恢復(fù)到后臺執(zhí)行
- 命令:bg %工作號
后臺恢復(fù)執(zhí)行的命令,是不能與前臺有交互的,否則無法恢復(fù)到后臺執(zhí)行。
(5)后臺命令脫離終端執(zhí)行
當(dāng)我們需要將后臺命令脫離終端執(zhí)行時,可以使用nohup命令,命令格式為nohup [命令]&。
Part Two 系統(tǒng)資源查看
系統(tǒng)資源查看用于查看系統(tǒng)各種資源的使用情況。通過查看系統(tǒng)資源,可以了解系統(tǒng)當(dāng)前資源使用情況,從而監(jiān)視系統(tǒng)當(dāng)前健康狀態(tài)。
(1)vmstat命令監(jiān)控系統(tǒng)資源
- 格式:vmstat [刷新延時][刷新次數(shù)]。如vmstat 1 3表示每隔1s刷新1次,共刷新三次。
重點關(guān)注輸出信息:
- procs:進程信息字段
- -r:等待運行的進程數(shù),值越大,系統(tǒng)越繁忙。
- -b:不可被喚醒的進程數(shù),值越大,系統(tǒng)越繁忙。
- memory:內(nèi)存信息字段
- -swpd:虛擬內(nèi)存使用情況,單位KB。
- -free:空閑內(nèi)存容量,單位KB。
- -buff:
- -cache:
- swap:交換分區(qū)信息字段
- -si:從磁盤中交換到內(nèi)存中數(shù)據(jù)的大小,單位KB。
- so:從內(nèi)存中交換到磁盤中數(shù)據(jù)的大小,單位KB。數(shù)值越大,系統(tǒng)交換越頻繁,性能越差。
- io:磁盤讀寫信息字段
- -bi:從塊設(shè)備讀入數(shù)據(jù)的大小,單位是快。
- -bo:寫到塊設(shè)備的數(shù)據(jù)大小,單位時塊。數(shù)值越大,系統(tǒng)IO越繁忙。
- system:系統(tǒng)信息字段
- -in:每秒被中斷的進程次數(shù)。
- -cs:每秒進行的事件切換次數(shù)。
- cpu:
- -us:非內(nèi)核進程消耗cpu運算時間的百分比。
- -sy:內(nèi)核進程消耗cpu運算時間的百分比。
- -id:空閑cou的百分比。
- -wa:等待I/O所消耗的cpu百分比。
- -st:被虛擬機所盜用的cpu占比。
(2)dmesg開機時內(nèi)核檢測信息
- 格式:dmesg。由于內(nèi)核信息過多,常與grep結(jié)合使用,如dmesg | grep CPU查看CPU信息。
(3)free命令查看內(nèi)存使用狀態(tài)
- 格式:free[-b|-k|-m|-g]
- 選項:
- -b:以字節(jié)為單位顯示。
- -k:以KB為單位顯示,默認。
- -m:以MB為單位顯示。
- -g:以GB為單位顯示。
輸出信息:***行:total是內(nèi)存總數(shù),used為已使用內(nèi)存,free為空閑內(nèi)存,shared為多個進程共享內(nèi)存,buffres是緩沖內(nèi)存,cached是緩存內(nèi)存。第二行:-/buffers/cache的內(nèi)存數(shù),相當(dāng)于底一行的used-buffers-cached。+/buffers/cache的內(nèi)存數(shù),相當(dāng)于***行的free+buffers+cached。第三行:total是swap的總數(shù),used是已使用的swap數(shù),free是空閑的swap數(shù)。
(4)查看CPU信息
- 命令:cat /proc/cpuinfo
(5)uptime命令顯示系統(tǒng)的啟動時間和平均負載,即top命令的***行,在w命令中也可以看到。
(6)查看系統(tǒng)與內(nèi)核相關(guān)信息
- 命令格式:uname[-a|-r|-s]
- 選項:
- -a:查看系統(tǒng)所有相關(guān)信息。
- -r:查看內(nèi)核版本。
- -s:查看內(nèi)核名稱。
(7)判斷系統(tǒng)當(dāng)前位數(shù)
- 命令:file /bin/ls
通過查看ls命令判斷操作系統(tǒng)的位數(shù)。
(8)查詢當(dāng)前Linux系統(tǒng)的發(fā)行版本
- 命令:lsb_release -a