linux系統監控與硬盤分區/格式化/文件系統管理
1.系統監控
1) 系統監視和進程控制的工具----> Top 與 free 類似於windows的資源管理器。
進程運行的三種狀態:
tips:
進程(Process)是計算機中的程序關於某數據集合上的一次運行活動,是系統進行資源分配和調度的基本單位,是操作系統結構的基礎。
解釋僵屍進程與孤兒進程:
可參考博客:http://blog.csdn.net/l953972252/article/details/51399576
僵屍進程:一個進程使用fork創建子進程,如果子進程退出,而父進程並沒有調用wait或waitpid獲取子進程的狀態信息,那麽子進程的進程描述符仍然保存在系統中。這種進程稱之為僵死進程。 特點:占用進程PID號,無法被釋放,影響系統資源。
孤兒進程:孤兒進程:一個父進程退出,而它的一個或多個子進程還在運行,那麽那些子進程將成為孤兒進程。孤兒進程將被init進程(進程號為1)所收養,並由init進程對它們完成狀態收集工作。 特點:不占用系統資源,因為被系統最終回收。
僵屍進程的處理
得出結論,孤兒進程不會占資源,僵屍進程會占用資源危害系統。我們應當避免僵屍進程的出現。
解決辦法如下:
1)通過信號機制
子進程退出時向父進程發送SIGCHILD信號,父進程處理SIGCHILD信號。調用wait()或者waitpid(),讓父進程阻塞等待僵屍進程的出現,處理完在繼續運行父進程。
2)殺死父進程
當父進程陷入死循環等無法處理僵屍進程時,強制殺死父進程,那麽它的子進程,即僵屍進程會變成孤兒進程,由系統來回收。
3)重啟系統
當系統重啟時,所有進程在系統關閉時被停止,包括僵屍進程,開啟時init進程會重新加載其他進程。
TOP命令查看系統狀態:
cpu利用率:上一天班的時間是8個小時,而碼農敲代碼的時間為2個小時,2/8=0.25 ,25%就是碼農在一天的時間內的利用率(正常情況,cpu利用率<70%)
cpu負載:公司在一分鐘內為某個碼農安排了3個任務,而1分鐘內該碼農能做6個任務,那麽該碼農一分鐘內的負載為0.5
cpu負載<=1:能正常應付
cpu負載>1:超負荷運轉
Tasks: 29 total | 進程總數 |
1 running | 正在運行的進程數 |
28 sleeping | 睡眠的進程數 |
0 stopped | 停止的進程數 |
0 zombie | 僵屍進程數 |
Cpu(s): 0.3% us | 用戶空間占用CPU百分比 |
1.0% sy | 內核空間占用CPU百分比 |
0.0% ni | 用戶進程空間內改變過優先級的進程占用CPU百分比 |
98.7% id | 空閑CPU百分比 |
0.0% wa | 等待輸入輸出的CPU時間百分比 |
0.0% hi | 硬件中斷占用CPU時間的百分比 |
0.0% si | 軟件中斷占用CPU時間的百分比 |
free命令顯示內存的使用狀態:(下圖以centos7為例)
CPU的利用率=(total—Available)/Available
---buffer 寫緩存,數據存儲時,先保存到磁盤緩沖區,然後再寫入到永久空間
---cache 讀緩存,數據從磁盤讀出後,暫留在緩沖區,預備程序接下來的使用
內存其實就相當於向外分buffer與cache來供CPU與硬盤進行使用;
當我們在寫入數據並進行保存時,我們的cache數據量會極大的提高,這是因為在保存在硬盤的同時還緩存在了內存裏面,方便用戶的再次使用,以免來回調用硬盤數據導致速度變慢《運行速度:CPU>內存>硬盤》.不過我們可以利用如下(1)命令釋放該數據所占用的cache空間,但我們不能完全釋放cache空間,因為部分系統文件受保護.
(1).釋放被系統cache占用的系統數據:
echo 3>/proc/sys/vm/drop_caches
需要註意的是,free
表示的是當前完全沒有被程序使用的內存;而cache
在有需要時,是可以被釋放出來以供其它進程使用的(當然,並不是所有cache
都可以釋放,比如當前被用作ramfs
的內存)。而available
才真正表明系統目前可以提供給應用程序使用的內存。
2)系統進程中的監控ps
1>父進程與子進程:當一個進程創建另一個進程時,第1個進程被稱為新進程的父進程,而新進程被稱為子進程。
2>掌握ps命令的功能:用來顯示當前進程的狀態。
Ps –aux 顯示所有的與用戶相關的完整信息
系統中進程的監控pstree、kill
centos7默認沒有pstree,需要yum -y install psmisc
1)pstree 命令 ;以樹狀圖顯示程序
用法:例如PID為789的進程的進程樹狀命令為: pstree 789
kill 命令 ; 把一個信號發送給一個或多個進程,默認發送終止信號。
用法:終止PID為3852的進程的命令:kill 3852
kill -9 ;殺死PID為3906的進程的命令:kill -9 3906
pgrep命令; 通過名稱或其他屬性查找進程
用法: 查找名為firefox的進程的命令為:pgrep firefox
pkill命令; 通過名稱或其他屬性發信號給進程
用法:殺死名為firefox的進程的命令為:pkill firefox
2.硬盤分區與格式化(詳細見有道雲筆記)
3.文件系統管理
linux系統監控與硬盤分區/格式化/文件系統管理