1,lsof:由于linux下一切皆文件,該命令意思是列出打開的文件,因此該命令適用場景很廣。
lsof--顯示所有打開的文件
lsof -u--特定用戶打開的文件
lsof -u^root--排除root用戶后的文件列表
lsof -i --列出所有網(wǎng)絡(luò)連接
lsof -i 4 -- lsof - i 6列出ipv4或6的文件
lsof -i TCP:80--正在監(jiān)聽特定端口的進(jìn)程
lsof -i TCP:1-1024--列出正在1-1024端口運(yùn)行的程序
lsof -i -u root--特定用戶使用的文件和命令
lsof -p 1 --通過PID搜索
kill -9 'lsof -t -u ntp'--殺死ntp用戶的所有進(jìn)程
2,vmstat param1 param2--Every param1 seconds execute a statistics until param2 count.
[root@vm-10]# vmstat 2 5
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r? b? swpd? free? buff? cache? si? so? ? bi? ? bo? in? cs us sy id wa st
0? 0? 77808 643596 275088 10217268? ? 0? ? 0? ? 0? ? 3? ? 0? ? 0? 1? 0 98? 0? 0
0? 0? 77808 644084 275088 10217288? ? 0? ? 0? ? 0? ? 15 1558 1012? 3? 0 97? 0? 0
0? 0? 77808 643984 275088 10217292? ? 0? ? 0? ? 0? ? 18 1395? 671? 3? 0 97? 0? 0
0? 0? 77808 643984 275088 10217296? ? 0? ? 0? ? 0? ? 39 1596? 883? 4? 0 96? 0? 0
0? 0? 77808 643876 275088 10217304? ? 0? ? 0? ? 0? ? 13 1521? 959? 3? 0 97? 0? 0
各參數(shù)說明:
r :表示運(yùn)行隊列,如果運(yùn)行隊列過大,表示你的CPU很繁忙,一般會造成CPU使用率很高
b :表示阻塞的進(jìn)程數(shù)
swpd :虛擬內(nèi)存已使用的大小,如果大于0,表示你的機(jī)器物理內(nèi)存不足了,如果不是程序內(nèi)存泄露的原因,那么你該升級內(nèi)存了或者把耗內(nèi)存的任務(wù)遷移到其他機(jī)器
free :空閑的物理內(nèi)存的大小
buff : 系統(tǒng)占用的緩存大小
cache :直接用來記憶我們打開的文件,給文件做緩沖
si:每秒從磁盤讀入虛擬內(nèi)存的大小,如果這個值大于0,表示物理內(nèi)存不夠用或者內(nèi)存泄露了
us :用戶CPU時間
sy :系統(tǒng)CPU時間
so : 每秒虛擬內(nèi)存寫入磁盤的大小,如果這個值大于0,同上。
sy : 系統(tǒng)CPU時間,如果太高,表示系統(tǒng)調(diào)用時間長,例如是IO操作頻繁。
id : 空閑CPU時間,一般來說,id + us + sy =100
wt : 等待IO CPU時間。
3,iotop--實時顯示磁盤io和進(jìn)程。
4,iostat--io統(tǒng)計。
5,top-- 執(zhí)行top后按1,可以顯示每個cpu的各個core的使用情況。
6,ps -o lstart--顯示進(jìn)程啟動時間,可以用下面的命令將 cpu 占用率高的線程找出來:
ps H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu
7,pstree -a--按照tree的格式輸出進(jìn)程
8,free -m -- 顯示內(nèi)存和交換區(qū)使用情況
[root@vm-10]# free -m
total? ? ? ? used? ? ? ? free? ? ? shared? buff/cache? available
Mem:? ? ? ? ? 15886? ? ? ? 4566? ? ? ? 4670? ? ? ? 778? ? ? ? 6648? ? ? 10126
Swap:? ? ? ? ? 6193? ? ? ? ? 1? ? ? ? 6192
9,uptime--顯示系統(tǒng)持續(xù)運(yùn)行的時間
10,dstat --top-io --top-bio--顯示哪些進(jìn)程在進(jìn)行io操作
11,cat /proc/net/sockstat--查看系統(tǒng)ipv4 socket連接情況,cat /proc/net/sockstat6用于ipv6
sockets: used 137
TCP: inuse 49 orphan 0 tw 3272 alloc 52 mem 46
UDP: inuse 1 mem 0
RAW: inuse 0
FRAG: inuse 0 memory 0
說明:
sockets: used:已使用的所有協(xié)議套接字總量
TCP: inuse:正在使用(正在偵聽)的TCP套接字?jǐn)?shù)量。
TCP: orphan:無主(不屬于任何進(jìn)程)的TCP連接數(shù)(無用、待銷毀的TCP socket數(shù))
TCP: tw:等待關(guān)閉的TCP連接數(shù)。
TCP:alloc(allocated):已分配(已建立、已申請到sk_buff)的TCP套接字?jǐn)?shù)量。其值等于netstat —ant | grep ^tcp | wc —l
TCP:mem:套接字緩沖區(qū)使用量(單位不詳。用scp實測,速度在4803.9kB/s時:其值=11,netstat —ant 中相應(yīng)的22端口的Recv-Q=0,Send-Q≈400)
UDP:inuse:正在使用的UDP套接字?jǐn)?shù)量
RAW:
FRAG:使用的IP段數(shù)量
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'--顯示不同狀態(tài)的連接總數(shù)