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?
注: “+”表示最近一個放入后臺的工作,也是工作恢復時默認恢復的工作,“-”表示倒數第二個放入后臺的工作
3>?將后臺暫停的工作恢復到前臺執行
fg?%工作號????????????????#?%可以省略,但是注意工作號和PID的區別4>?把后臺暫停的工作恢復到后臺執行
bg?%工作號????????????????#?后臺恢復執行的命令,是不能和前臺有交互的,否則不能恢復到后臺執行3、后臺命令脫離登錄終端執行
一般情況下,一旦把命令放入后臺,只能在當前登錄終端執行。一旦退出或關閉終端,后臺程序就會停止。
后臺命令脫離登錄終端執行的方法:
1>?把需要后臺執行想命令加入到/etc/rc.local 文件
開機默認創建文件?/var/lock/subsys/local,目的是為了查看系統開機時間。
如果想要后臺運行的一個程序持續運行,可以把這個進程完全寫到該文件中,那么該進程就可以持續運行。因為它是系統直接調用的,沒有綁定到終端。
2>?使用系統定時任務crontab,讓系統在指定的時間執行某個后臺命令
使用系統定時任務,可能會導致不生效!!!
?
3>?使用nohup命令
命令格式:
nohup?[命令]?&在?/root 目錄下創建文件 for.sh,內容如下: nohup運行該文件 切換終端,然后可以通過 ?ps aux | grep for.sh 查看 ? |
????系統資源管理
※1、vmstat命令監控系統資源
vmstat?[刷新延時?刷新次數]?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命令是用來判斷當前服務器的硬件狀態。
?
※3、free命令查看內存使用狀態
free?[-b?|?-k?|?-m?|?-g]選項:以 字節 | Kb | MB | GB 為單位顯示,默認為Kb
?
- buffers/cache:相當于第一行used - buffers - cached
+ buffers/cache:相當于第一行free + buffers + cached
雖然看起來buffer和cached 占用了一部分內存,但實際上是作為緩沖和緩存存在,沒有被系統的程序直接占用,是為了提高系統讀寫效率存在的
最后一行表示Swap的使用狀況,swap是提高計算機性能尤其是高耗費內存性能的重要手段,因此不可以隨意減少Swap分區的容量。當真實機內存小于4G,swap應該是內存的兩倍,如果真實機的內存大于4G,swap最少要和內存一樣。
※4、查看CPU信息
cat?/proc/cpuinfoproc是用來保存內存信息的目錄
?
?
※5、uptime命令
uptime顯示系統的啟動時間和平均負載,也就是top命令的第一行。w命令也可以看到這個數據。
?
uptime命令可以查看到系統當前時間,開機到現在的時間,登錄用戶數目,平均負載。和top命令第一行信息一致,但top命令本身就會造成一定的負載,如果只是簡單想查看系統啟動時間和平均負載,可以用uptime命令。
?
※6、查看系統與內核相關信息
uname [選項]
選項: -a:查看系統所有相關信息
-r:查看內核版本
-s:查看內核名稱
?
?
※7、查看當前Linux系統的操作位數
file /bin/ls
file之后可以追加任何一個系統外部命令,可以查看到當前操作系統的位數。需要注意的是,這里的位數與CPU的位數不一定相同,64的的電腦上也可以安裝32位的操作系統
?
?
※8、查詢當前Linux的發行版本
lsb_release -a
?
?
※9、列出進程打開或使用的文件信息
lsof [選項]# 列出進程調用或打開的文件的信息
選項:
?????????-c 字符串:只列出字符串開頭的進程打開的文件
-u 用戶名:只列出某個用戶的進程打開的文件
-p pid:列出某個PID進程打開的文件
?
?
根據文件名查進程,文件只能是系統文件,不能是用戶自己創建的文件,只有系統文件才有系統進程
?
?
????系統定時任務
Windows中的系統定時任務:開始-- >所有程序-- >附件-- > 系統工具-- >定時計劃程序
at一次性定時任務
?
?1>?確定at安裝
chkconfig?--list?|?grep?atd????????????#??at服務是否安裝 service?atd?restart????????????????????#??at服務重新啟動在服務名后加 d ,表明這是一個守護進程
?
?2>?at的訪問控制
l?如果系統中有 /etc/at.allow(白名單)文件,那么只有寫入/etc/at.allow 文件中的用戶可以使用at 命令(/etc/at.deny文件會被忽略)
l?如果系統中沒有 /etc/at.allow (黑名單)文件,只有 /etc/at.deny 文件,那么寫入 /etc/at.deny 文件中的用戶不能使用at命令,但對root 用戶不起作用
l?如果系統中這兩個文件都不存在,那么只有root用戶可以使用at命令。默認情況下只有黑名單
?
?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任務
?
crontab定時任務
關于crontab定時任務,要介紹的細節比較多,這里作為一個單獨的文章來寫,鏈接如下:
http://muhuizz.blog.51cto.com/11321490/1868839
---------muhuizz整理
轉載于:https://blog.51cto.com/muhuizz/1897035
總結
以上是生活随笔為你收集整理的Linux进程资源管理第二篇 -------- 工作及资源管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: appium运行报错java.net.S
- 下一篇: this