1. 程式人生 > >Linux系統資源查看

Linux系統資源查看

pstree ps pidof pgrep htop


Linux進程查看命令:
一、Linux系統上的進程及查看工具:
pstree,ps,pidof,pgrep,htop,glances,pmap,vmstat,dstat,
kill,pkill,job,bg,fg,nohup,nice,renice,killall

CentOS5:SysV init//基於shell腳本實現,啟動服務串行方式運行
CentOS6:upstart //通過命令創建進程,並行方式執行啟動 //封裝仍然使用service
CentOS7:Systemd//參考mac OS,只需要啟用一個進程,就可以把各服務進程啟動起來
//systemctl 可以控制其他服務

1.pstree //查看進程樹
2.ps 當前進程的狀態顯示
/proc:內核中的狀態信息
內核參數:可設置其值從而調整內核運行特性的參數:/proc/sys
狀態變量:其用於輸出內核中統計信息或狀態信息,僅用於查看:
參數:模擬成fs類型;
//ps抽取/proc中的信息,進行展示
進程:
/proc/#
#:PID //
ps [options] //三種風格
1.UNIX風格 //ps -a
2.BSD //ps a //不帶橫線
3.GNU
啟動進程的方式:
系統引導時自動啟動 //終端無關
用戶通過終端啟動 //終端相關
-a //終端相關
-x//終端無關
u //用戶相關的
aux //所有進程 [] 內核線程
USER PID ... VSZ RSS STAT
VSZ:虛擬內存結合virtual memory size//線性地址空間和物理地址空間
//3G只有我使用,進程看到的就是虛擬內存集,
RSS:常駐內存集Resident Size,當內存不夠用的時候,有些內存中的數據需要放到swap上,但是有的不能放到swap上:常駐內存集
STAT:狀態,
R:running
S:Interruptable sleeping
D:uninterruptable sleeping
T:stopped
Z:zombie

+:前臺進程
l:多線程進程
n:低優先級進程
小於號《:高優先級進程
s:session leader//主進程
-e :顯示所有進程,相當於ax,但是是unix風格
-f:full-format完整格式
ps -ef
PPID:父進程pid,STIME:啟動時間,C:PCPU cpu utilization的占用百分比,TIME:累計運行時間
-F:顯示完整格式的信息
顯示的信息更全
ps -eF
PSR:運行在哪個CPU上,precessor
man ps //後面有幫助信息
-H:以層級結構顯示進程的信息
ps -eFH
其他常用組合:
o:可自定義要顯示的字段,逗號分隔
ps -axo pid,command,pri,psr,pcpu,stat,tty,ppid,user,ni,rtprio
ni:nice值
rtprio:real-time priority,實時優先級
-eo: //o一定要寫到後面,因為 o 是需要帶參數的
-axo:

3.pgrep,pkill命令
pgrep [options] pattern
-u uid:顯示指定用戶的進程
-U uid :read user
-t TERMINAL:與指定終端相關的進程
-l :顯示進程名
-a :顯示完整的進程名
-P pid :顯示其進程的子進程
pgrep -P 25463 //查看其子進程
//子進程的子進程,是他的孫子進程,不是他的子進程
pgrep ssh //有ssh字符串的
pgrep s //有s字符創的
pkill和pgrep用法類似
4.pidof指定進程的進程號
pidof sshd //根據進程名獲取其pid
-s:僅返回一個進程號;
-c:僅顯示具有相同“root”目錄的進程;
-x:顯示由腳本開啟的進程;
-o:指定不顯示的進程ID。

5.top 類似於windows的任務查看器
動態查看進程狀態信息
h 幫助信息

    top - 12:14:58 up 2 days,  2:47,  3 users,  load average: 0.00, 0.01, 0.05
    Tasks: 307 total,   2 running, 305 sleeping,   0 stopped,   0 zombie
    %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
    KiB Mem :  1009272 total,   155080 free,   201980 used,   652212 buff/cache
    KiB Swap:  2097148 total,  2093712 free,     3436 used.   537560 avail Mem

load average:1,5,15min //平均隊列長度,在cpu上等待運行的隊列長度
通常隊列等待的數量不能大有cpu的數量 //Load的閾值一般在cpu核心數*2.5 (經驗)
%CPUs // sy:kernel time,ni:用於nice調整占用的cpu時間,id:idel空閑百分比,wa:wait等待io百分比,hi:hwaddr interrupt硬件中斷,si:soft interrupt軟中斷,si:被偷走的百分比(被虛擬化偷走的)
排序:
P:以占據cpu百分比排序
M:內存
T:累計占用cpu百分比
首部信息:
l命令 //切換cpu
tasks及cpu信息:t命令
內存信息:m命令
刷新時間
s 1 //每個1s刷新一次
k //kill
選項
-d # //指定刷新時間間隔
-b //以批次方式顯示,bat
-n //顯示多少批次
top -b -n 1
1 //分散顯示cpu
6.uptime //顯示系統的時間,運行時長及平均負載
過去1,5,15min的平均負載,等待平均隊列長度
uptime -s //系統開機時間
-p //已經開機的多長時間


7.htop //需要epel源 ,可以自定義顯示選項,支持鼠標
baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/
https://mirrors.aliyun.com/epel/7/x86_64/
yum install htop -y
註意:yum是具有事務概念的,同時只能運行一個yum命令
h //Memory:used/buffers/cache
status:
R:running,S:sleeping,T:traced/stopped,Z:zombie,D:disk sleep//不可中斷睡眠
u //指定用戶進程
H //show/hide user thread
k 內核線程
F 光標跟蹤
P M T //排序方式
F6 //選定字段排序
c //標記進程和其子進程
a CPU綁定
i 設置io優先級
光標選定進程// l 顯示進程打開的所有文件
s //跟蹤一個進程發起的系統調用
F4自動滾屏
-d# //delay time
-u USERNAME //指定用戶的進程
-s COLUME //以指定字段排序
子命令:
l:顯示進程打開的文件的列表
s:跟蹤選定的進程的系統調用
t:Tree狀顯示,或者F5
a:將選定的進程綁定至任務的核心上

8.vmstat //虛擬內存,報告虛擬內存的統計數據
vmstat [options] [delay [count]]
vmstat 2 //每2s更新一次
vmstat 2 2 //共顯示2次,每2s更新一次
-s //顯示內存使用信息
procs:進程,
r:running:等待運行的進程的個數;CPU上等待運行的隊列長度
b:block阻塞的,被阻塞的任務的隊列的長度
memory:
swpd:交換內存的使用量,0:表示麽有啟用
free:空閑的物理內存總量
cache:緩存
buffer:緩沖
swap//相對於swap
si:swap in //速率值 kb/s
so:swap out //數據離開swap的速率 kb/s
io //相對於磁盤
bi:從硬盤讀入數據到os,kb/s
bo:保存數據至塊設備的速率,kb/s
system
in:interrupts中斷速率
cs{context switch}切換速率
cpu
us
sy
id
wa
st
中斷:當io需要和cpu交互的時候,cpu如何知道有信號到達
1.輪訓,每隔一段時間查看是否有交互
2.中斷線//需要申請使用,有編號,一個中斷線可以復用
9.pmap //內存映射
pmap PID

pmap [options] pid [...]
-x:顯示詳細格式的信息
cat /proc/1/maps //作用一樣

10.glances命令 //比top界面更美觀
//可以遠程查看,

    -b //以bytes為單位顯示網卡數據速率
    -d //關閉磁盤io模塊
    -m //關閉mount模塊
    -n //關閉network模塊
    -t # //刷新時間間隔
    -1 //每顆cpu單獨顯示
· a – 對進程自動排序
· c – 按 CPU 百分比對進程排序
· m – 按內存百分比對進程排序
· p – 按進程名字母順序對進程排序
· i – 按讀寫頻率(I/O)對進程排序
· d – 顯示/隱藏磁盤 I/O 統計信息
· f – 顯示/隱藏文件系統統計信息
· n – 顯示/隱藏網絡接口統計信息
· s – 顯示/隱藏傳感器統計信息
· y – 顯示/隱藏硬盤溫度統計信息
· l – 顯示/隱藏日誌(log)
· b – 切換網絡 I/O 單位(Bytes/bits)
· w – 刪除警告日誌
· x – 刪除警告和嚴重日誌
· 1 – 切換全局 CPU 使用情況和每個 CPU 的使用情況
· h – 顯示/隱藏這個幫助畫面
· t – 以組合形式瀏覽網絡 I/O
· u – 以累計形式瀏覽網絡 I/O
· q – 退出(‘ESC‘ 和 ‘Ctrl&C‘ 也可以)

glances -f /root -o HTML //保存為HTML /CSV格式,僅僅需要知道個路徑即可,不能指定文件名字
ssh -X [email protected] //啟用圖形顯示,
//可以動態刷新該文件
在C/S模式下運行glances命令
服務模式:
glances -s -B IPADDR
IPADDR //本級某地址,用於監聽
-B //監聽地址
客戶端模式:
glances -c IPADDR
IPADDR//遠程server的ip

glance顏色定義:
· 綠色:OK(一切正常)
· 藍色:CAREFUL(需要註意)
· 紫色:WARNING(警告)
· 紅色:CRITICAL(嚴重)
閥值可以在配置文件中設置,一般閥值被默認設置為(careful=50、warning=70、critical=90)。
(默認在 /etc/glances/glances.conf)中自定義。

11.dstat //資源使用統計數據的工具,功能最全
默認:cdngy //cpu,disk,net,paging,sys
-c{d,n,g,y}
-C 0,3,total //包括0號和3號cpu或者total,指定cpu
-d,disk
-D sda,sdb,...total
-g:顯示page相關的統計數據

    -i 中斷
    -m mem
    -n net 
    -N eth1,eth0 
    -p proc 
    -r io 
    -s swap 
    -S swap1,total 
    --aio //激活異步io
    --ipc //激活ipc
    --tcp  //tcp統計信息
    --udp  //
    --socket 
    
    --unix  //unix-socket
    --top-bio //最消耗磁盤io的
    --top-cpu //最忙的cpu
    --top-int //最多中斷數量的
    --top-mem
    --top-lantency //延遲最大的進程

dstat 1 2 //每隔1s顯示一次,共顯示2次
12.kill命令
用於向進程發送信號,以實現對進程的管理
kill -l 1 //查看1號sign的內容
kill -l //查看所有信號內容
每個信號的標識方法有三種
1)信號的數字表示方法
2)信號的完整名稱
3)信號的簡寫名稱
向進程發送信號
kill [-s signal] [-q sigval] [-a] [...] pid...
kill -s 15 PID
常用信號:
1):sigup:無須關閉進程而讓其重讀配置文件
kill -SIGHUP 111000
kill -s SIGNUP 111000
2):SIGINT:中止正在運行的進程,相當於ctrl+c //暫停
9):SIGKILL;殺死運行中的進程;殘忍殺害
//不管你正在做什麽,直接kill
15):默認信號SIGTERM:終止運行中的進程;人道毀滅
//告訴你,你要死了,把正在運行的工作做完,然後kill
19):SIGSTOP:停止,送到後臺 //ctrl+z
ps aux |grep vim
//fg直接返回到前臺
18):SIGCONT:繼續
13.killall
基於名稱
killall [-SIGNAL] program
killall httpd //ps aux |grep httpd 將沒有任何東西


本文出自 “黑馬騰空” 博客,請務必保留此出處http://hmtk520.blog.51cto.com/12595610/1977891

Linux系統資源查看