Linux哲學思想之一:一切皆文件:
內核將其參數全部映射為文件;這些文件保存在/proc, /sys目錄中;
/proc目錄:保存內核及進程狀態信息,是內核參數的映射;
內核參數:
可調參數:調整運行特性;/proc/sys
不可調參數:輸出內核統計信息及狀態信息;
進程狀態:/proc/# 與進程號同名的目錄,目錄下存放許多當前進程相關信息;
進程號:PID,標識當前系統上的某個進程;
抽象成文件,其內容不方便查看;就用一些命令,為了更直觀地查看,輸出這些內核狀態統計數據;
ps命令:
格式:
UNIX:有-
BSD: 無-
GNU: —
常用組合:
ps axu
a: affinity, 與終端相關;
x: 與終端無關;
u: user, 與用戶為中心;
ps -ef
-e: 與終端相關及與終端無關;
-f: full format,完整格式;
ps -eFH
-H: Hierarchy, 層級結構顯示;
-F:Full format,更完整的格式;
所有組合中相關字段解釋:
PID 進程PID
TTY 進程類型
STAT 進程狀態
TIME 占據CPU時間”累積”時長
COMMAND/CMD 運行為進程的程序文件;
USER 進程的身份
%CPU “累積”占用CPU百分比;
%MEM 占據整個內存空間的百分比;
VSZ 占據虛擬內存大?。槐环Q為”虛擬內存集” 虛擬內存:線性地址空間;可被交換到swap中的數據 …;
RSS 占據物理內存大?。罕环Q為”常駐內存集” 不可被交換到swap中的指令 …;
START/STIME 啟動進程的系統時間;
PPID 進程的父進程的ID號;
C 進程占用CPU百分比;
進程類型
與終端相關:/dev/tty#, /dev/ttyS#, /dev/pts/#
與終端無關:?
進程狀態
運行:Runing, R
停止:sTopping, T
僵死:Zombie, Z
前臺進程:+
多線程進程:l
高優先:<
低優先:N
不可中斷睡眠:D (uninterrupt sleeping)
可中斷睡眠:S (interrupt sleeping)
領導進程:s (session leader)
top命令:
top option
選項:
-b ;以批次顯示;默認不切換批次;
-n # ;與-b連用;顯示#批;
-d # ;delay,延遲;
內建命令:
l: 隱藏或顯示topk欄; uptime命令也可獲取;
t: 隱藏或顯示task或cpu信息;
1: cpu按個顯示或總體顯示;
m: 隱藏或顯示mem或swap信息;
k: 終止指定PID的進程;
d: 調整delay值;
顯示信息:
top – 17:25:02 up 3:03, 5 users, load average: 0.11, 0.13, 0.10
系統時間; date
系統運行時間,
當前登陸用戶; who | wc -l
平均負載: 過去1,5,15分鐘等待運行進程的隊列長度;其值應該小于CPU數量;
Tasks: 369 total, 2 running, 367 sleeping, 0 stopped, 0 zombie
進程狀態: 進程個數; 運行進程數; 睡眠進程數; 停止運行進程數; 僵尸進程數;
KiB Mem : 1003160 total, 390552 free, 168096 used, 444512 buff/cache
內存(KiB): 總內存; 空閑內存; 使用內存; buff/cache占用; (實際空閑: free + buff/cache)
KiB Swap: 2097148 total, 2097148 free, 0 used. 616460 avail Mem
swap(KiB): 總SWAP大小; 空閑swap; 使用swap; 可用內存;
%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
CPU: us: 用戶空間占據CPU百分比; sy: 內核空間占據CPU百分比; ni: 調整NICE值額外占據CPU百分比; id: 空閑百分比; hi: 硬件中斷占據CPU百分比; si: 軟中斷占據CPU百分比; st: 被虛擬化技術偷走占據CPU百分比; cs: 進程切換占據CPU百分比;
PR: PR+100=優先級范圍;
NI: NICE值
VIRT: 虛擬內存集: 虛擬內存占據大小;
RES: 常駐內存集: 不可被交換到swap中的指令;
SHR: 共享內存: 進程共用的共享庫;
%CPU: 進程占據CPU百分比
%MEM: 占據內存整個空間百分比;
TIME+: CPU的累積時長;
htop命令:
配置EPEL源:
~]# cat /etc/yum.repos.d/CentOS-EPEL.repo
# fedora epel
[epel]
name=Fedora EPEL for CentOS-$releasever
baseurl=https://mirrors.aliyun.com/epel/$releasever/$basearch/
gpgcheck=0
gpgkey=https://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-7
enabled=1
~]# yum -y install htop
htop option
選項
-d # ;delay,延遲;
-u UserName:僅顯示指定用戶的進程
-s COLUME: 以指定字段進行排序;
內建命令
u: 顯示指定用戶的進程
H:線程
K:內核線程
F: 高亮光標跟蹤進程;
P M T: CPU, MEM, TIME
F6 > : 選擇字段排序
a : affinity 進程綁定在某CPU核心上運行;默認在所有CPU均可運行;
l : 查看選定進程所打開的文件;F5刷新
s : 查看選定進程發起的系統調用;F8自動滾屏 F9停止滾屏
t : ps -eFH 以層級結構顯示父子關系;
dstat命令:
非常精巧生成系統資源統計數據;
~]# yum -y install dstat
dstat options [delay [count]]
-c, –cpu: 顯示cpu相關信息:
-C #,#,total
-d,–disk: 顯示磁盤相關信息:
-D #,#,total
-g 內存頁換進換出; 以內存為中心顯示數據統計;磁盤至內存;
-m memory
-n interface
-p process 可中斷睡眠,不可中斷睡眠,3.4
-r io 顯示IO請求的相關統計數據;
-s swap的相關統計數據;
-t time
–aio enable aio stats (asynchronous I/O)
–ipc enable ipc stats (message queue, semaphores, shared memory)
–raw enable raw stats (raw sockets)
–socket enable socket stats (total, tcp, udp, raw, ip-fragments)
–tcp enable tcp stats (listen, established, syn, time_wait, close)
–udp enable udp stats (listen, active)
–unix enable unix stats (datagram, stream, listen, active)
expensive 消耗:
–top-bio show most expensive block I/O process
–top-cpu show most expensive CPU process
–top-int show most frequent interrupt
–top-io 最占用IO的進程;
–top-latency: 延遲最大的進程;
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/89050