[Linux]系統管理: 進程管理(ps/top/pstree/kill/pkill), 工作管理, 系統資源查看, 系統定時任務
進程管理:查看與終止
- 進程查看
1. 進程是正在執行的程序或命令。
2. 進程管理的作用:
判斷服務器健康狀態,
查看系統中所有進程
殺死進程
3. 查看系統中所有進程
ps aux # 查看系統中所有進程,使用BSD操作系統格式
ps le # 查看系統中所有進程,使用Linux標準命令格式
USER:該進程由哪個用戶產生的;
PID:進程的ID號;
%CPU:該進程占用CPU資源的百分比,占用越高,進程越耗費資源;
%MEM:該進程占用物理內存的百分比,占用越高,進程越耗費資源;
VSZ:該進程占用虛擬內存的大小,單位KB;
RSS:該進程占用實際物理內存的大小,單位KB;
TTY:該進程是在哪個終端中運行的。其中tty1-tty7代表本地控制臺終端,tty1-tty6是本地的字符界面終端,tty7是圖形終端。pts/0-256代表虛擬終端。?代表由內核產生;
STAT:進程狀態。常見的狀態有(R:運行、S:睡眠、T:停止、s:包含子進程、+:位於後臺);
START:該進程的啟動時間;
TIME:該進程占用CPU的運算時間,註意不是系統時間;
COMMAND:產生此進程的命令名;
4. 查看系統健康狀態
top [選項]
-d 秒數 : 指定top命令每隔幾秒更新,默認是3秒;
在top命令的交互模式當中可以執行的命令:
? 或 h : 顯示交互模式的幫助;
P : 以CPU使用率排序,默認;
M : 以內存的使用率排序;
N : 以PID排序;
q : 退出top;
第一行是任務隊列信息
12:26:46 # 系統當前時間(不一定準確)
up 1 day, 13:32 #系統的運行時間,本機已運行1天 13小時32分鐘
2 users # 當前登錄了兩個用戶
load average:0.06, 0.11, 0.12 # 系統在之前1分鐘,5分鐘,15分鐘的平均負載。一般認為小於1時(1核CPU),負載較小。如果大於1,系統已經超出負荷。
第二行是進程信息
Tasks:95 total # 系統中的進程總數
1 running # 正在運行的進程數
94 sleeping # 睡眠的進程
0 stopped # 正在停止的進程
0 zombie # 僵屍進程。如果不是0,需要手工檢查僵屍進程
第三行是CPU信息
Cpu(s):0.1%us # 用戶模式占用的CPU百分比
0.1%sy # 系統模式占用的CPU百分比
0.0%ni # 改變過優先級的用戶進程占用的CPU百分比
99.7%id # 空閑CPU的百分比
0.1%wa # 等待輸入/輸出的進程的占用CPU百分比
0.0%hi # 硬中斷請求服務占用的CPUb百分比
0.1%si # 軟中斷請求服務占用的CPU百分比
0.0%st # st(Steal time)虛擬時間百分比。就是當有虛擬機時,虛擬CPU等待實際CPU的時間百分比。
第四行是物理內存信息
Mem:1870784k total # 物理內存的總量,單位KB
1795092k used # 已經使用的物理內存數量
85028k free # 空閑的物理內存數量,如果是虛擬機就是虛擬機中所剩可用內存,(85028/1024=83M)
0 buffers # 作為緩沖的內存數量
第五行是交換分區(swap)信息
Swap:2097148 total # 交換分區(虛擬內存)的總大小
736812k used # 已經使用的交換分區的大小
1360336 free # 空閑交換分區的大小
300712 cached Mem # ?作為緩存的交換分區的大小
( 以上幾個重要指標是:平均負載,CPU空閑率,內存空閑大小 )
( top命名本身也是耗資源的,沒有必要一直開著,用完就退出 )
5. 查看進程樹
pstree [選項]
-p : 顯示進程的PID
-u : 顯示進程的所屬用戶
- 終止進程
kill -l # 查看可用的進程信號。
kill -1 進程ID # 該信號讓進程立即關閉,然後重新讀取配置文件之後重啟。
kill -9 進程ID # 立即結束程序的運行,本信號不能被阻塞、處理和忽略。一般用於強制終止進程。
kill -15 進程ID # 正常結束進程的信號,kill的默認信號。
killall [選項][信號] 進程名 # 按照進程名殺死進程
選項
-i : 交互式,詢問是否要殺死某個進程
-I : 忽略進程名的大小寫
pkill [選項][信號] 進程名 # 按照進程名終止進程(與killall完全一樣,除了選項)
選項
-t 終端號 : 按照終端號提出用戶
( w # 使用w命令查詢本機已經登錄的用戶 )
( pkill -t -9 pts/1 # 強制殺死從pts/1虛擬終端登錄的進程 )
工作管理
- 把進程放入後臺
1. 命令結尾加 & 符號,在後臺繼續執行;
2. 命令執行過程中按 ctrl+z ,把任務放入後臺暫停運行。
- 查看後臺的工作
jobs [-l]
參數: -l 顯示工作的 pid
“+” 代表最近一個放入後臺的工作,也是工作恢復時,默認恢復的工作。
“ - ” 代表倒數第二個放入後臺的工作。
- 將後臺暫停的工作恢復到前臺執行
fg %工作號
參數:%工作號 %號可以省略,但是註意工作號是 jobs 列出的在行首的數字,不是PID
- 把後臺暫停的工作恢復到後臺執行
bg %工作號
註:後臺恢復執行的命令,是不能和前臺有交互的,否則不能恢復到後臺執行,比如 top、vim.
系統資源查看
- vmstat 命令監控系統資源使用情況
vmstat [刷新延時 刷新次數]
vmstat 2 3 # 共輸出三次,每次間隔2秒,主要是看內存和CPU的使用,比 top 的輸出內容簡潔
- dmesg 開機時內核檢測信息
dmesg
dmesg | grep CPU
- cat /proc/cpuinfo 查看CPU信息
- free 命令專門查看內存使用狀態
free [-b|-k|-m|-g|-h]
緩存(cache)和緩沖(buffer)的區別:
緩存是用來加速數據從硬盤中“讀取”的,而緩沖是用來加速數據“寫入”硬盤的。
- uptime 命令
顯示系統的啟動時間和平均負載,也就是 top 命令的第一行,w 命令也可以看到這個數據。
- 查看系統與內核相關信息
uname [選項]
-a 查看系統所有相關信息
-r 查看內核版本,主要用途
-s 查看內核名稱
- 判斷當前系統的位數
file /bin/ls # /bin/ls: ELF 64-bit ......
- 查詢當前 Linux 系統的發行版本
lsb_release -a
- 列出進程打開或使用的文件信息
lsof [選項]
-c 字符串 只列出以字符串開頭的進程打開的文件
-u 用戶名 只列出某個用戶的進程打開的文件
-p pid 列出某個PID進程打開的文件
系統定時任務
- cron 服務管理與訪問控制
systemctl restart cron.service # 重啟cron服務
systemctl enable cron.service # 設置開機自啟動
systemctl list-unit-files # 查看是否開機自啟動
systemctl list-units --type=service # 查看所有已啟動的服務
- 用戶的 crontab 設置
crontab [選項],格式:分-時-日-月-周 命令
-e 編輯 crontab 定時任務
-l 顯示用戶的 crontab 任務
-r 刪除當前用戶所有的 crontab 任務
Link:http://www.cnblogs.com/farwish/p/4866659.html
[Linux]系統管理: 進程管理(ps/top/pstree/kill/pkill), 工作管理, 系統資源查看, 系統定時任務