ps
用於查看當前運行的進程。若是想查看動態的進程信息,可使用top
命令。查看詳細命令幫助使用man ps
。php
ps
最經常使用的選項組合就是ps aux
:html
# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.3 50252 12424 ? Ss Mar15 21:41 /usr/lib/systemd/systemd --system --deserialize 21 root 2 0.0 0.0 0 0 ? S Mar15 0:04 [kthreadd] root 3 0.0 0.0 0 0 ? S Mar15 2:02 [ksoftirqd/0] root 5 0.0 0.0 0 0 ? S< Mar15 0:00 [kworker/0:0H] root 7 0.0 0.0 0 0 ? S Mar15 0:18 [migration/0] root 8 0.0 0.0 0 0 ? S Mar15 0:00 [rcu_bh]
經常使用選項:java
-a 顯示全部的進程,包含每一個命令的完整路徑 -x 顯示全部系統程序,包括那些沒有終端的程序 -u 顯示使用者的名稱和起始時間
ps aux
和ps -ef
linux
二者的輸出結果差異不大,但展現風格不一樣。aux是BSD風格,-ef是System V風格。這是次要的區別,一個影響使用的區別是aux會截斷command列,而-ef不會。當結合grep時這種區別會影響到結果。nginx
netstat
用於打印網絡鏈接、路由表、鏈接的數據統計、假裝鏈接以及廣播域成員。redis
netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships.服務器
常見用法:netstat -tulp
網絡
# netstat -tulp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN 1327/master tcp 0 0 0.0.0.0:atmtcp 0.0.0.0:* LISTEN 1011/monit tcp 0 0 localhost:cslistener 0.0.0.0:* LISTEN 9870/php-fpm: pool tcp 0 0 0.0.0.0:rsync 0.0.0.0:* LISTEN 21167/rsync tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN 17923/redis-server tcp 0 0 0.0.0.0:8011 0.0.0.0:* LISTEN 2051/nginx: worker tcp 0 0 0.0.0.0:http 0.0.0.0:* LISTEN 2051/nginx: worker tcp 0 0 0.0.0.0:9905 0.0.0.0:* LISTEN 28036/php tcp 0 0 0.0.0.0:9906 0.0.0.0:* LISTEN 29140/php tcp 0 0 0.0.0.0:search-agent 0.0.0.0:* LISTEN 6039/lighttpd
命令選項:tcp
-a all 默認不顯示LISTEN相關 -t 只列出TCP協議的鏈接 -u 只列出UDP協議的鏈接 -n number 不顯示別名,能顯示數字的都用數字顯示(禁用反向域名解析,加快查詢速度,默認會反查主機名) -l listen 僅列出正在監聽的服務狀態 -p program 獲取進程名、進程號以及用戶 ID -r route 路由信息 -e extention 擴展信息,好比uid等 -s statistic 按各個協議進行統計 -c cycle 每隔一段時間週期執行netstat命令
top
命令用於實時查看服務器進程等信息。php-fpm
top - 16:31:10 up 493 days, 2:18, 1 user, load average: 3.79, 5.07, 5.00 Tasks: 134 total, 1 running, 133 sleeping, 0 stopped, 0 zombie Cpu(s): 8.9%us, 0.7%sy, 0.0%ni, 89.9%id, 0.2%wa, 0.1%hi, 0.2%si, 0.0%st Mem: 32949016k total, 32857500k used, 91516k free, 181172k buffers Swap: 32764556k total, 759976k used, 32004580k free, 18778656k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 21902 root 25 0 7732m 6.1g 11m S 73.2 19.4 3257:11 java 22616 root 21 0 3184m 2.0g 12m S 1.7 6.3 45:44.93 java 20028 root 22 0 3493m 1.7g 12m S 1.3 5.4 95:23.61 java 21784 root 15 0 12756 1104 816 R 0.3 0.0 0:00.05 top 24526 root 20 0 8408m 160m 9524 S 0.3 0.5 7:54.50 java 1 root 15 0 10364 572 536 S 0.0 0.0 7:53.62 init
第一行:16:31:10是當時時間,up 493 days是系統已經運行了這麼長時間,1 user當前只有1個用戶登陸了系統,load average後面是1分鐘、5分鐘、15分鐘系統的負載狀況。 第二行:當前有134個進行在運行,133個在休眠,0個已中止,0個殭屍。 第三行:8.9%us是用戶進行佔用cpu的量,0.7%sy是內核進程佔用cpu的量。
top命令的經常使用參數:
-d 指定每兩次屏幕信息刷新之間的時間間隔。 -p 經過指定監控進程ID來僅僅監控某個進程的狀態。
參考:
一、ps aux 和ps -aux和 ps -ef的選擇
http://doc.okbase.net/%E8%B6%B3%E8%87%B3%E8%BF%B9%E7%95%99/archive/118297.html/
二、netstat 的10個基本用法-技術
https://linux.cn/article-2434-1.html