Linux進程資源管理第二篇   -------- 工作及資源管理

    工作管理


1、工作管理簡介

Linux中的工作管理指的是在單個登錄的終端中,同時管理多個工作的行爲。在Linux工作管理中,其實就是將當前的工作放到後臺執行。查詢當前系統中的後臺程序使用的命令是jobs

Linux,當某些服務啓動之後,如果不放入後臺,他會一直佔用當前的shell,例如MYSQL。如果想要執行其他操作的話,需要將mysql服務終止掉。如果不想將該服務終止,就需要將該服務放入後臺。

注意事項:

a> 當前的登錄終端,只能管理當前終端的工作,而不能管理其他登錄終端的工作。

也就是說,放入後天的服務是需要綁定終端的。Mysql服務發現了這個問題,當調用mysql服務的啓動腳本時,它會將MySQL設置爲可以脫離當前終端操作的服務,當MySQL服務在當前終端上放入後臺時,關閉當前終端,mysql服務不會終止,但其他服務如果關閉的當前終端,服務也會跟着結束。

b> 放入後臺的命令必須可以持續運行一段時間,這樣我們才能捕捉和操作這個工作

例如:將ls、cd等命令房後後臺是沒有意義的,回車之後就會結束

c> 放入後臺執行的命令不能和當前用戶有交互或需要前臺輸入,否則放入後臺只能暫停,而不能執行

例如:將vim命令放入後臺,只能暫停,不肯能繼續執行。因爲vim命令是需要和用戶進行交互的。


2、工作管理方法

1> 把命令放入後臺<以top命令爲例>

在執行的命令後加" & ”           # 把命令放入後臺,並在後臺執行
top                  # 按下ctrl+z快捷鍵,放在後臺暫停


2> 查看後臺工作

jobs [-l]                            # -l  顯示工作的PID


wKiom1ifHhah70GbAAAGwm_Ela0183.png 

注: “+”表示最近一個放入後臺的工作,也是工作恢復時默認恢復的工作,“-”表示倒數第二個放入後臺的工作


3> 將後臺暫停的工作恢復到前臺執行

fg %工作號                # %可以省略,但是注意工作號和PID的區別


4> 把後臺暫停的工作恢復到後臺執行

bg %工作號                # 後臺恢復執行的命令,是不能和前臺有交互的,否則不能恢復到後臺執行


3、後臺命令脫離登錄終端執行

一般情況下,一旦把命令放入後臺,只能在當前登錄終端執行。一旦退出或關閉終端,後臺程序就會停止。


後臺命令脫離登錄終端執行的方法:

1> 把需要後臺執行想命令加入到/etc/rc.local 文件

wKioL1ifH7XQFvQNAAAPOqisoUU675.png

開機默認創建文件 /var/lock/subsys/local,目的是爲了查看系統開機時間。

如果想要後臺運行的一個程序持續運行,可以把這個進程完全寫到該文件中,那麼該進程就可以持續運行。因爲它是系統直接調用的,沒有綁定到終端。

2> 使用系統定時任務crontab,讓系統在指定的時間執行某個後臺命令

使用系統定時任務,可能會導致不生效!!!

 

3> 使用nohup命令

命令格式:

nohup [命令] &

在 /root 目錄下創建文件 for.sh,內容如下:

wKiom1ifIEeQjeryAAAHQlQ2uUk703.png

wKioL1ifIEiBca-AAAALpS515cw075.png


nohup運行該文件

切換終端,然後可以通過  ps aux | grep for.sh 查看


 wKiom1ifIEjRE3eaAAAK5-GumNY517.png







    系統資源管理

※1、vmstat命令監控系統資源

vmstat [刷新延時 刷新次數]

wKioL1ifIxSiBKNGAAAcepzNXbA217.png

 procs:進程信息字段

r:等待運行的進程數,數量越大,系統越繁忙

b:不可被喚醒的進程數,數量越大,系統越繁忙

 memory:內存信息字段

-swpd:虛擬內存的使用情況,單位KB

-free:空閒的內存容量,單位KB

-buff:緩衝的內存容量,單位KB

-cache:緩存的內存容量,單位KB

緩存和緩衝的區別:

    緩存(cache)是用來加速數據從硬盤中”讀取”的,而緩衝(buffer)是用來加速數據”寫入”硬盤的。

 swap:交換分區的信息字段

-si:從磁盤中交換到內存中數據的數量,單位KB

-so:從內存中交換到磁盤中數據的數量,單位KB,

兩個數越大,證明數據需要經常在磁盤和內存之間交換,系統性能越差

 io:磁盤讀寫信息字段

-bi:從塊設備讀入數據的總量,單位是塊

-bo:寫到塊設備的數據的總量,單位是塊。

兩個數越大,代表系統的I/O越繁忙

 system:系統信息字段:

-in:每秒被中斷的進程次數

-cs:每秒鐘進行的事件切換次數。

兩個數越大,代表系統與接口設備的通信飛航繁忙

 cpu:CPU信息字段

-us:非內核進程消耗CPU運算時間的百分比

-sy:內核進程消耗CPU運算時間的百分比

-id:空間CPU的百分比

-wa:等待I/O所消耗的CPU百分比

-st:被虛擬機所盜用的CPU佔比

※2、dmesg開機時內核檢測信息

dmesg | grep CPU

顯示系統的內核自檢信息,對Linux來將,計算機需要自檢兩遍,一是硬件的BIOS自檢,二是內核自檢

dmesg命令是用來判斷當前服務器的硬件狀態。

wKiom1ifI1-CYCZTAAA8zjT0C1s144.png 

※3、free命令查看內存使用狀態

free [-b | -k | -m | -g]

選項:以 字節 | Kb | MB | GB 爲單位顯示,默認爲Kb

wKioL1ifI23Q5PooAAAP2iELvdY795.png 

- buffers/cache:相當於第一行used - buffers - cached

+ buffers/cache:相當於第一行free + buffers + cached

雖然看起來buffer和cached 佔用了一部分內存,但實際上是作爲緩衝和緩存存在,沒有被系統的程序直接佔用,是爲了提高系統讀寫效率存在的

最後一行表示Swap的使用狀況,swap是提高計算機性能尤其是高耗費內存性能的重要手段,因此不可以隨意減少Swap分區的容量。當真實機內存小於4G,swap應該是內存的兩倍,如果真實機的內存大於4G,swap最少要和內存一樣。

※4、查看CPU信息

cat /proc/cpuinfo


proc是用來保存內存信息的目錄

wKiom1ifI3iTxq_dAABTOk98Rzo405.png 

 

※5、uptime命令

uptime


顯示系統的啓動時間和平均負載,也就是top命令的第一行。w命令也可以看到這個數據。

wKioL1ifI4mCw3KFAAAl-HR1okI631.png 

uptime命令可以查看到系統當前時間,開機到現在的時間,登錄用戶數目,平均負載。和top命令第一行信息一致,但top命令本身就會造成一定的負載,如果只是簡單想查看系統啓動時間和平均負載,可以用uptime命令。

 

※6、查看系統與內核相關信息

uname [選項]

選項: -a:查看系統所有相關信息

-r:查看內核版本

-s查看內核名稱

wKiom1ifI5jg4_5MAAATWmdkfWs986.png 

 

※7、查看當前Linux系統的操作位數

file /bin/ls

file之後可以追加任何一個系統外部命令,可以查看到當前操作系統的位數。需要注意的是,這裏的位數與CPU的位數不一定相同,64的的電腦上也可以安裝32位的操作系統

wKioL1ifI6KR4BRoAAAhWmSvPYs751.png 

 

※8、查詢當前Linux的發行版本

lsb_release -a

wKiom1ifI6yxmt3-AAAkGS_VJfE382.png 

 

※9、列出進程打開或使用的文件信息

lsof [選項]# 列出進程調用或打開的文件的信息

選項:

         -c 字符串:只列出字符串開頭的進程打開的文件

-u 用戶名:只列出某個用戶的進程打開的文件

-p pid:列出某個PID進程打開的文件

 

wKioL1ifI7eiZcrDAAAqd4mRAkI224.png 

根據文件名查進程,文件只能是系統文件,不能是用戶自己創建的文件,只有系統文件才有系統進程

 

 




    系統定時任務

Windows中的系統定時任務:開始-- >所有程序-- >附件-- > 系統工具-- >定時計劃程序

at一次性定時任務

 

 1> 確定at安裝

chkconfig --list | grep atd            #  at服務是否安裝
service atd restart                    #  at服務重新啓動

在服務名後加 d ,表明這是一個守護進程


wKiom1ifJ5GwZ24gAAAO8HvK14s194.png 

 2> at的訪問控制

l 如果系統中有 /etc/at.allow(白名單)文件,那麼只有寫入/etc/at.allow 文件中的用戶可以使用at 命令(/etc/at.deny文件會被忽略)

如果系統中沒有 /etc/at.allow (黑名單)文件,只有 /etc/at.deny 文件,那麼寫入 /etc/at.deny 文件中的用戶不能使用at命令,但對root 用戶不起作用

如果系統中這兩個文件都不存在,那麼只有root用戶可以使用at命令。默認情況下只有黑名單

wKiom1ifJ52zTkCmAAAGaxr7yIw034.png

 

 3> at命令的使用

at [選項] 時間

選項:

-m:當at工作完成後,無論是否命令有輸出,都用email 通知執行at命令的用戶

-c 工作號:顯示該at工作的實際內容

時間:

- HH:MM例如:02:30

- HH:MM YYYY-MM-DD例如:02:30 2013-07-25

- HH:MM [am|pm] [month] [date]例如:02:30 July 25

- HH:MM [am|pm] + [minutes|hours|days|weeks]例如:now + 5minutes


其他at管理命令

atq                # 查詢當前服務器上的at工作
atrm [工作號]                 # 刪除指定的at任務


at定時任務執行完畢之後,atq就不會再查詢到at任務

 

wKioL1ifJ52QBaNHAABVfiS7qLA250.png

crontab定時任務

關於crontab定時任務,要介紹的細節比較多,這裏作爲一個單獨的文章來寫,鏈接如下:

http://muhuizz.blog.51cto.com/11321490/1868839




---------muhuizz整理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章