這兩個命令都是查看系統進程信息的命令,可是用處有點兒不一樣
1.ps命令--提供系統過去信息的一次性快照
也就是說ps命令可以查看剛剛系統的進程信息 命令:ps aux或者ps lax
[root@Linux ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.1 0.1 2032 644 ? Ss 21:55 0:01 init [3]
root 2 0.0 0.0 0 0 ? S 21:55 0:00 [migration/0]
root 3 0.0 0.0 0 0 ? SN 21:55 0:00 [ksoftirqd/0]
......
解釋以下:
VSZ--進程的虛擬大小
RSS--駐留集的大小,能夠理解爲內存中頁的數量
TTY--控制終端的ID
STAT--也就是當前進程的狀態,其中S-睡眠,s-表示該進程是會話的先導進程,N-表示進程擁有比普通優先級更低的優先級,R-正在運行,D-短時間等待,Z-僵死進程,T-被跟蹤或者被中止等等
STRAT--這個很簡單,就是該進程啓動的時間
TIME--進程已經消耗的CPU時間,注意是消耗CPU的時間
COMMOND--命令的名稱和參數
而]#ps lax 能夠看到父進程,謙讓值以及該進程正在等待的資源等待
2.top命令--這個命令就頗有用了
top命令反應的是系統進程動態信息,默認10s更新一次
[root@Linux ~]#top
top - 22:30:58 up 35 min, 1 user, load average: 0.12, 0.07, 0.08
Tasks: 72 total, 1 running, 71 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.2%us, 0.2%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 373320k total, 88600k used, 284720k free, 9956k buffers
Swap: 514072k total, 0k used, 514072k free, 45092k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3217 root 15 0 2160 976 788 R 1 0.3 0:00.07 top
1 root 15 0 2032 644 552 S 0 0.2 0:01.55 init
2 root RT 0 0 0 0 S 0 0.0 0:00.02 migration/0
3 root 34 19 0 0 0 S 0 0.0 0:00.00 ksoftirqd/0
4 root RT 0 0 0 0 S 0 0.0 0:00.00 watchdog/0
5 root RT 0 0 0 0 S 0 0.0 0:00.02 migration/1
6 root 39 19 0 0 0 S 0 0.0 0:00.00 ksoftirqd/1
7 root RT 0 0 0 0 S 0 0.0 0:00.00 watchdog/1
......
以上就是top命令的部分輸出,能夠看到該命令顯示了較爲詳細的信息
頂部始終顯示的是系統當前最活躍的進程,此時還能夠接受用戶的鍵盤輸入向進程發送信號等待
3.ps和top都是從/proc目錄下讀取進程的狀態信息,內核把當前系統進程的各類有用信息都放在這個僞目錄下。