1、ps命令
查看當前時刻的進程狀態,通過此命令可以確定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有僵死、哪些進程占用了過多的資源等等 進程狀態: 運行態:running 就緒態:ready 睡眠態: 可中斷:interruptable 不可中斷:uninterruptable 停止態:stopped, 暫停于內存中,但不會被調度,除非手動啟動 僵死態:zombie,父進程結束了,但是子進程卻沒結束
(1)語法
ps [options] options有三種風格: 1 UNIX options, which may be grouped and must be preceded by a dash.(如 -A -a) 2 BSD options, which may be grouped and must not be used with a dash.(如 a g) 3 GNU long options, which are preceded by two dashes.(如 --deselect)
(2)常用選項
a 顯示包括所有終端中的進程 x 顯示包括不鏈接終端的進程(不確定終端的用?表示) u 顯示進程所有者的信息 f 顯示進程的父進程 o 屬性… 顯示定制的信息 -e 顯示所有進程 -f 顯示完整格式的進程信息 -F 顯示完整格式的進行信息(更詳細) -H 以層級結構顯示進程的相關信息
(3)常用組合
1)ps aux
[root@linuxpao network-scripts]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 1.1 192240 5692 ? Ss 08:27 0:10 /usr/lib/systemd/systemd --switched-root root 2 0.0 0.0 0 0 ? S 08:27 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S 08:27 0:00 [ksoftirqd/0] root 5 0.0 0.0 0 0 ? S< 08:27 0:00 [kworker/0:0H] root 7 0.0 0.0 0 0 ? S 08:27 0:00 [migration/0] root 8 0.0 0.0 0 0 ? S 08:27 0:00 [rcu_bh] root 9 0.0 0.0 0 0 ? S 08:27 0:00 [rcuob/0] ...... USER:進程的發起者 PID:進程號 %CPU:進程使用掉的CPU資源百分比 %MEM:進程占用的物理內存百分比 VSZ:進程使用掉的虛擬內存大小,單位KB RSS:進程占用的固定內存大小,單位KB (常駐內存集) TTY:進程在哪個終端運行 STAT:進程目前的狀態 START:進程被觸發的時間 TIME:進程實際使用CPU時間 COMMAND:觸發此進程的命令 STAT的狀態說明: <:該進程運行在高優先級上 N:該進程運行在低優先級上 L:該進程有頁面鎖定在內存中 R:運行中 s:該進程是控制進程 l:該進程是多線程 +:該進程運行在前臺 O:代表正在運行 S:休眠狀態 R:可運行,正等待運行 Z:僵死 T:停止
2)ps -ef
UID PID PPID C STIME TTY TIME CMD root 1 0 0 08:27 ? 00:00:11 /usr/lib/systemd/systemd --switched-root --system --dese root 2 0 0 08:27 ? 00:00:00 [kthreadd] root 3 2 0 08:27 ? 00:00:00 [ksoftirqd/0] root 5 2 0 08:27 ? 00:00:00 [kworker/0:0H] root 7 2 0 08:27 ? 00:00:00 [migration/0] root 8 2 0 08:27 ? 00:00:00 [rcu_bh] ...... UID:進程的發起者 PID:進程號 PPID:父進程號 C:進程生命周期中的CPU利用率 STIME:進程啟動時的系統時間 TTY:進程是由哪個終端啟動的 TIME:運行進程需要的累計CPU時間 CMD:觸發此進程的命令
3)ps axo
o選項自定義的字段: pid ni pri pcpu psr stat comm tty ppid euser ruser %cpu %mem rtprio ... [root@linuxpao network-scripts]# ps axo pid,comm,state,%cpu,pri,tty PID COMMAND S %CPU PRI TT 1 systemd S 0.0 19 ? 2 kthreadd S 0.0 19 ? 3 ksoftirqd/0 S 0.0 19 ? 5 kworker/0:0H S 0.0 39 ? 7 migration/0 S 0.0 139 ? 8 rcu_bh S 0.0 19 ? 9 rcuob/0 S 0.0 19 ? 10 rcuob/1 S 0.0 19 ? 11 rcuob/2 S 0.0 19 ? ......
4)ps -eFH
[root@linuxpao network-scripts]# ps -eFH UID PID PPID C SZ RSS PSR STIME TTY TIME CMD root 2 0 0 0 0 1 08:27 ? 00:00:00 [kthreadd] root 3 2 0 0 0 0 08:27 ? 00:00:00 [ksoftirqd/0] root 5 2 0 0 0 0 08:27 ? 00:00:00 [kworker/0:0H] root 7 2 0 0 0 0 08:27 ? 00:00:00 [migration/0] root 8 2 0 0 0 0 08:27 ? 00:00:00 [rcu_bh] root 9 2 0 0 0 0 08:27 ? 00:00:00 [rcuob/0] root 10 2 0 0 0 0 08:27 ? 00:00:00 [rcuob/1] root 11 2 0 0 0 0 08:27 ? 00:00:00 [rcuob/2] root 12 2 0 0 0 0 08:27 ? 00:00:00 [rcuob/3] ...... SZ:假如進程被換出,所需交換空間的大小 PSR:當前進程被分配給哪個處理器
5)ps -l
[root@linuxpao network-scripts]# ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 4 S 0 9241 9237 0 80 0 - 29261 wait pts/3 00:00:03 bash 0 R 0 15408 9241 0 80 0 - 34343 - pts/3 00:00:00 ps F:內核分配給進程的系統標記 S:進程的狀態(O S T R Z ) NI:nice值,用來參與決定優先級 ADDR:進程的內存地址 WCHAN:進程休眠的內核函數的地址
2、top命令
實時顯示系統進程的狀態
(1)語法
top [option]
(2)選項
-d:后接秒數,即整個進程界面更新的秒數,默認3秒 -b:以批次的方式執行top,常與重定向連用 -n:與-b搭配,意義是,需要進行幾次top的輸出結果 -p:指定某個PID來進行查看檢測而已
在top的執行過程當中可以使用按鍵命令:
?:顯示在top當中可以輸入的按鍵命令 P:以占據的CPU百分比大小排序 M:以占據的內存百分比大小排序 N:以PID排序 T:以CPU累積占用時間排序 k:給予某個PID一個信號 r:給予某個PID重新制定一個nice值 q:退出top程序 s:修改延遲的時長 l:是否顯示系統負載行(最頂行) t:是否顯示進程摘要信息及CPU負載狀態(2、3行) 1:數字1,平均或單獨顯示CPU的負載狀態
(3)top命令界面介紹
top – 14:55:09 up 6:27, 3 users, load average: 0.04, 0.03, 0.05
14:55:09:當前的系統時間 up 6:27:系統啟動到目前為止所經過的時間 3 users:當前系統中的用戶數量 load average:系統在1,5,15分鐘的平均負載,若高于1表示系統壓力過大
Tasks: 428 total, 1 running, 427 sleeping, 0 stopped, 0 zombie
顯示的是目前進程的總量與個別進程的狀態,特別需要注意zombie狀態
%Cpu(s): 0.5 us, 1.0 sy, 0.0 ni, 98.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
CPU的整體負載,可以使用?查看 us :用戶空間 sy :內核空間 ni :調整nice 時間 id :空閑 wa :等待IO 時間 hi :硬中斷 si :軟中斷(模式切換) st :虛擬機偷走的時間
KiB Mem : 485280 total, 9348 free, 303228 used, 172704 buff/cache
物理內存的使用狀態
KiB Swap: 2098172 total, 1881740 free, 216432 used. 117220 avail Mem
虛擬內存使用狀態,若swap被大量使用,則表示物理內存不足了
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
PID:每個進程的PID USER:進程的使用者 PR:進程的優先級,值越小優先級越高 NI:nice值 VIRT:進程需要的虛擬內存大小,而非使用的虛擬內存 RES:進程當前使用的內存大小,不包括swap SHR:進程與其他進程共享的內存大小,可以通過RES-SHR來計算進程所占用的物理內存大小 S:進程的狀態 %CPU:CPU的使用率 %MEM:內存的使用率 TIME+:CPU使用的時間累積 COMMAND:觸發進程的命令
3、vmstat命令
顯示虛擬內存信息
(1)語法
vmstat [options] [delay [count]]
(2)用法解釋
[root@linuxpao ~]# vmstat 1 3 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 216408 10636 36 172748 2 5 100 8 49 61 0 1 99 0 0 0 0 216408 10620 36 172748 0 0 0 0 64 96 0 0 100 0 0 0 0 216408 10620 36 172748 0 0 0 0 53 73 0 0 100 0 0 procs r:等待運行的進程個數 b:不可中斷睡眠狀態的進程的個數 memory swpd:swap使用量 free:空閑的物理內存量 buffer:用于buffer的內存總量 cache:用于cache的內存總量 swap si:數據進入swap的速率(kb/s) so:數據離開swap的速率(kb/s) io bi:從塊設備讀入數據到系統的速率(kb/s) bo:保存數據至塊設備的速率(kb/s) system in:中斷速率,每秒被中斷的次數 cs:進程切換的速率 cpu us:用戶運行程序占用CPU的百分比 sy:用于運行內核占用的CPU百分比 id:空閑CPU百分比 wa:等待I/O花費的時間 st:被虛擬機偷走的內存百分比
4、dstat命令
全能的系統信息統計工具,可以實時的監控cpu、磁盤、網絡、IO、內存等使用情況
(1)語法
dstat [-afv] [options..] [delay [count]]
(2)選項
-c:顯示CPU性能指標相關的統計數據 -d:顯示disk相關的速率數據 -g:顯示page相關的速率數據 -i:顯示interrupt相關的統計數據 -l:顯示load average相關的統計數據 -m:顯示memory相關的統計數據 -n:顯示網絡收發數據的速率 -p:顯示進程相關的統計數據 -r:io請求的速率 -s:顯示swap的相關數據 -y:顯示系統相關的數據,包括中斷和進程切換 --top-cpu:顯示最占用CPU的進程 --top-bio:顯示最小號block io的進程 --top-io:最占io的進程 --top-mem:最占內存的進程 --ipc:顯示進程間通信相關的速率數據 --raw:顯示raw套接字的相關數據 -tcp:顯示tcp套接字的相關數據 --udp:顯示udp套接字的相關數據 --unix:顯示unix sock接口相關的統計數據
(3)用法解釋
[root@linuxpao network-scripts]# dstat You did not select any stats, using -cdngy by default. ----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system-- usr sys idl wai hiq siq| read writ| recv send| in out | int csw 0 1 99 0 0 0| 186k 14k| 0 0 |4188B 10k| 95 118 1 4 96 0 0 0| 0 0 |1510B 842B| 0 0 | 205 216 0 1 100 0 0 0| 0 0 |1510B 346B| 0 0 | 52 65 total-cpu-usage CPU的使用率 dsk/total 磁盤讀寫總數 net/total 網絡設備發送和接收的數據總數 paging 系統的分頁活動。分頁指的是一種內存管理技術,用于查找系統場景,一個較大的分頁表明系統正在使用大量的交換空間,或者說內存非常分散。 system 顯示系的中斷(int)和上下文切換(csw),若此欄統計值較高則表示大量的進程造成擁塞
5、kill命令
向進程發送信號指令,如終止進程、重讀文件等
(1)當前系統的信號名稱
[root@linuxpao ~]# kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX
(2)常用信號
1) SIGHUP:通知進程重讀配置文件讓新配置生效 2) SIGINT:中斷正在進行的進程,相當于 Ctrl+C 3) SIGQUIT:退出程序,相當于 Ctrl+\ 9) SIGKILL:強行終止正在運行中的進程 15) SIGTERM:安全終止正在運行的進程(默認) 18) SIGCONT:繼續運行指定的進程(后臺) 19) SIGSTOP:暫停進程(后臺休眠),相當于 Ctrl+Z
原創文章,作者:pao,如若轉載,請注明出處:http://www.www58058.com/45138