Linux運維之程式管理①
1、程式概念
①程式是作業系統最核心的概念,那什麼是程式?
程式就是正在執行中的程式,資源單位。
②執行緒
程式內程式碼的執行過程,執行緒是CPU的執行單位,一個程式至少有一個執行緒
一個程式的多個執行緒共享該程式的記憶體資源。
不同程式的多個執行緒的記憶體資源是相互隔離的
③那什麼是程式?
程式就是一堆程式碼檔案
④核心態和使用者態
核心態:程式執行的過程
使用者態:作業系統控制著硬體去執行程式的過程
⑤併發與並行
並行:多個程式看起來是同時執行的,事實上是cup利用時間、空間碎片快速在多個程式之間快速切換,給人的感 覺就是多個程式在同時執行
併發:多個程式真正意義上的同時執行,只有多核心才能實現
強調:CPU是執行程式碼,而不是做io
⑥任務執行的三種狀態
執行態、 就緒態、 阻塞態
⑦提交任務的兩種方式
同步、 非同步
二、檢視程式資訊
[root@@321 ~]# ps aux (檢視程式池)
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.3 125432 3860 ? Ss 08:39 0:01 /usr/lib/systemd/systemd --sw
root 2 0.0 0.0 0 0 ? S 08:39 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 08:39 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 08:39 0:00 [kworker/0:0H]
STAT:程式狀態
R:執行狀態 S:可中斷睡眠狀態
D:不可中斷睡眠狀態 T:暫停狀態
z :殭屍程式 x:死掉的程式(幾乎看不到,很快會被作業系統回收掉)
>:>代表優先順序較高的程式 n:n帶表優先順序較低的程式
s:包含子程式 +:+表示的是前臺的程式組
Linux程式有兩種睡眠狀態
Intreeuptible Sleep (可中斷睡眠,在ps命令中顯示“s”)
處在這種睡眠狀態的程式是可以通過給它傳送signal來喚醒的,比如HUP訊號給nginx的master程式可以讓nginx重新載入配置檔案而不需要重新啟動nginx程式。
Unintreeuptible Sleep (不可中斷睡眠,在ps命令中顯示“D”)
處在這種狀態的程式不接受外來的任何signal,這也是為何無法用kill殺掉處於D狀態的程式,無論是“kill”、“kill -9”
、“kill -15”還是“Ctrl+c”、“Ctrl +z”都無濟於事,因為它們壓根就不受這些訊號的支配。
檢視程式樹 : pstree PID號
檢視PPID:ps -elf PPID號
動態檢視:top -d 1 (一秒重新整理一次)
top -d 1 -p (程式的PID)
top -d 1 -u nginx (檢視指定使用者的程式)
top -b -n 2 > a.txt (將兩次重新整理資訊寫到檔案)
顯示資訊解釋
top - 19:37:01 up 10:57, 2 users, load average: 0.00, 0.01, 0.05
第一部分系統整體統計時間
up左邊:當前系統時間
up右邊:系統從開機到現在的執行時間
load average: 0.00, 0.01, 0.05 : CPU的1分鐘、5分鐘、15分鐘的平均負載
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
us:使用者態佔用CPU時間的百分比
sy:核心態佔用CPU時間的百分比
ni:代表優先被排程的程式佔CPU時間的百分比
id:CPU空閒百分比
wa:CPU等待io的百分比
hi:硬體終端,處理硬體中斷所佔用的CPU時間
si:軟體中斷,處理軟體中斷所佔用的CPU時間
st:被偷走的CPU
中斷是系統用來影響硬體裝置請求的一種機制,它會打斷程式的正常排程和執行,然後呼叫核心中的終端處理程式來影響裝置的請求
ps:中斷是一個非同步的事件處理機制,可以提高作業系統處理併發的能力。
三、top命令
top的執行過程中可以通過top內部命令對程式的顯示方式進行控制,top內部命令如下
M:按記憶體的使用排序
P:按CPU的使用排序
N:按PID的大小排序
R:對排序進行反轉
f自定義顯示欄位
1:顯示所有CPU的負載情況
s:改變畫面更新頻率
h |?幫助
<:向前
>:向後
z:色彩
命令列選項:
top -d 重新整理時間s -p pid #只看某一個程式的資訊
top -d 重新整理時間s -u 使用者 #只檢視該使用者開啟的所有程式資訊
四、調整程式的優先順序
r調整程式的優先順序
優先順序的等級範圍是-20~19,其中數值越低優先順序越高,數值越高優先順序越低,優先順序最高為-20,最低為19
需要注意:普通使用者只能在0~19之間調整應用程式的優先順序,只有超級使用者有許可權調整更高的優先權(-20~19)
kill訊號管理
1:重新載入
2:中斷程式,類似於Ctrl+c
3:正常終止程式
9:強制殺死程式
15:預設訊號,終止程式
18:被暫停的程式將繼續回覆執行
19:暫停程式
20:停止程式執行
命令示例:
[root@@321 ~]# kill -9 9813 (9813為程式的PID號)
pkill:
-t:指定終端
-9:強制,把終端執行的命令和終端一起殺掉
相關文章
- 【運維必看】Linux命令之lsblk命令運維Linux
- Liunx運維(九)-Liunx程式管理命令運維
- Linux系統管理之程式管理Linux
- Linux - 運維管理工具 - 1PanelLinux運維
- Linux運維可以自學嗎?Linux運維技術Linux運維
- 【IT運維】Linux運維需要掌握哪些技能?運維Linux
- linux系列之常用運維命令整理筆錄Linux運維
- IT運維之自動化運維運維
- 想要學Linux運維怎麼辦?Linux運維入門Linux運維
- 多伺服器運維管理運維管理不再頭疼伺服器運維
- Linux運維命令重要嗎?運維入門Linux運維
- (1)Linux效能調優之Linux程式管理Linux
- 成為Linux運維要了解什麼?linux運維技術Linux運維
- 轉行Linux運維需要學習嗎?學習Linux運維Linux運維
- 【盤點】Linux運維管理伺服器常用的工具!Linux運維伺服器
- Devops 開發運維高階篇之容器管理dev運維
- linux運維工具psshLinux運維
- Linux運維前景如何?Linux運維
- Linux Shell互動式自動化運維程式Linux運維
- Linux運維是什麼?Linux運維行業發展前景如何?Linux運維行業
- 什麼是Linux運維?Linux運維工程師需要做什麼?Linux運維工程師
- 自學linux運維改怎麼學習Linux運維技術?Linux運維
- 想要學好Linux運維,就需要持之以恆Linux運維
- 零基礎怎麼學Linux運維?學習Linux運維有Linux運維
- Linux運維都需要做什麼?0基礎Linux運維學習Linux運維
- linux運維需要掌握什麼知識?linux運維學習路線Linux運維
- linux運維學習路線,linux運維需要掌握什麼知識?Linux運維
- 如何高效學習linux運維知識?linux運維有發展嗎Linux運維
- Linux運維pwd命令有什麼用途?linux運維主要做什麼Linux運維
- Linux程式基礎命令有哪些?Linux運維命令入門基礎Linux運維
- Linux運維技能圖譜Linux運維
- linux運維基礎2Linux運維
- Linux基本運維彙總Linux運維
- Linux運維進階之路Linux運維
- 【Linux】運維入門 -01Linux運維
- Linux 運維工程師面試真題-4-Linux 服務配置及管理Linux運維工程師面試
- GitLab 安裝、管理、運維Gitlab運維
- Linux運維管理皮膚為什麼我只選擇它?Linux運維