Linux下進程和端口,內存相關操作
top
netstat -a
lsof -i:port
kill -9 pid
free
1、top命令
top [-] [d delay] [q] [c] [S] [s] [n]
d:指定更新的間隔,以秒計算。
q:沒有任何延遲的更新。如果使用者有超級用戶,則top命令將會以最高的優先序執行。
c:顯示進程完整的路徑與名稱。
S:累積模式,會將己完成或消失的子行程的CPU時間累積起來。
s:安全模式。
i:不顯示任何閑置(Idle)或無用(Zombie)的行程。
n:顯示更新的次數,完成后將會退出top。
top - 12:21:21 up 22 days, 15:03, 5 users, load average: 4.50, 4.44, 4.33
Tasks: 138 total, 5 running, 133 sleeping, 0 stopped, 0 zombie
Cpu(s): 62.3% us, 13.0% sy, 1.7% ni, 23.0% id, 0.0% wa, 0.0% hi, 0.0% si
Mem: 1553580k total, 1391172k used, 162408k free, 184552k buffers
Swap: 4096564k total, 242236k used, 3854328k free, 653744k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
586 root 16 0 3352 1020 764 R 1.3 0.1 0:00.51 top
3341 sdl 16 0 3444 1808 780 S 0.3 0.1 1:55.67 gam_server
6471 root 16 0 8544 1268 1104 S 0.3 0.1 0:00.41 cupsd
1 root 16 0 3352 484 456 S 0.0 0.0 0:06.84 init
2 root RT 0 0 0 0 S 0.0 0.0 0:00.77 migration/0
3 root 34 19 0 0 0 S 0.0 0.0 0:00.03 ksoftirqd/0
第一行表示的項目依次為當前時間、系統運行時間、當前系統登錄用戶數目、1/5/10分鐘系統平均負載(一般來說,這個負載值應該不太可能超過 1 才對,除非您的系統很忙碌。 如果持續高于 5 的話,那么.....仔細的看看到底是那個程序在影響整體系統吧!)。
第二行顯示的是所有啟動的進程、目前運行、掛起 (Sleeping)的和無用(Zombie)的進程。(比較需要注意的是最后的 zombie 那個數值,如果不是 0 ,嘿嘿!好好看看到底是那個 process 變成疆尸了吧?!)(stop模式:與sleep進程應區別,sleep會主動放棄cpu,而stop是被動放棄cpu ,例單步跟蹤,stop(暫停)的進程是無法自己回到運行狀態的)
第三行顯示的是目前CPU的使用情況,包括us用戶空間占用CPU百分比、sy 內核空間占用CPU百分比、ni 用戶進程空間內改變過優先級的進程占用CPU百分比(中斷處理占用)、id 空閑CPU百分比、wa 等待輸入輸出的CPU時間百分比、hi,si,st 三者的意思目錄還不清楚 :)
第四行顯示物理內存的使用情況,包括總的可以使用的內存、已用內存、空閑內存、緩沖區占用的內存。
第五行顯示交換分區使用情況,包括總的交換分區、使用的、空閑的和用于高速緩存的大小。
PID(Process ID):進程標示號 ( 每個 process 的 ID )
USER:進程所有者的用戶名 ( 該 process 所屬的使用者 )
PR:進程的優先級別 ( Priority 的簡寫,程序的優先執行順序,越小越早被執行 )
NI:進程的優先級別數值 ( Nice 的簡寫,與 Priority 有關,也是越小越早被執行 )
VIRT:進程占用的虛擬內存值。
RES:進程占用的物理內存值。
SHR:進程使用的共享內存值。
S:進程的狀態,其中S表示休眠,R表示正在運行,Z表示僵死狀態,N表示該進程優先值是負數。
%CPU:該進程占用的CPU使用率。
%MEM:該進程占用的物理內存和總內存的百分比。
TIME+:該進程啟動后占用的總的CPU時間 ( CPU 使用時間的累加 )
Command:進程啟動的啟動命令名稱,如果這一行顯示不下,進程會有一個完整的命令行。
2、netstat
netstat命令的功能是顯示網絡連接、路由表和網絡接口信息,可以讓用戶得知目前都有哪些網絡連接正在運作。
-a 顯示所有socket,包括正在監聽的。
-c 每隔1秒就重新顯示一遍,直到用戶中斷它。
-i 顯示所有網絡接口的信息,格式同“ifconfig -e”。
-n 以網絡IP地址代替名稱,顯示出網絡連接情形。
-r 顯示核心路由表,格式同“route -e”。
-t 顯示TCP協議的連接情況。
-u 顯示UDP協議的連接情況。
-v 顯示正在進行的工作。
3、lsof
lsof abc.txt 顯示開啟文件abc.txt的進程
lsof -i :22 知道22端口現在運行什么程序
lsof -c abc 顯示abc進程現在打開的文件
lsof -g gid 顯示歸屬gid的進程情況
lsof +d /usr/local/ 顯示目錄下被進程開啟的文件
lsof +D /usr/local/ 同上,但是會搜索目錄下的目錄,時間較長
lsof -d 4 顯示使用fd為4的進程
lsof -i 用以顯示符合條件的進程情況
語法: lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
46 --> IPv4 or IPv6
protocol --> TCP or UDP
hostname --> Internet host name
hostaddr --> IPv4位置
service --> /etc/service中的 service name (可以不只一個)
port --> 端口號 (可以不只一個)
例子: TCP:25 - TCP and port 25
@1.2.3.4 - Internet IPv4 host address 1.2.3.4
tcp@ohaha.ks.edu.tw:ftp - TCP protocol hosthaha.ks.edu.tw service name:ftp
lsof -n 不將IP轉換為hostname,缺省是不加上-n參數
例子: lsof -i tcp@ohaha.ks.edu.tw:ftp -n
lsof -p 12 看進程號為12的進程打開了哪些文件
lsof +|-r [t] 控制lsof不斷重復執行,缺省是15s刷新
-r,lsof會永遠不斷的執行,直到收到中斷信號
+r,lsof會一直執行,直到沒有檔案被顯示
例子:不斷查看目前ftp連接的情況:lsof -i tcp@ohaha.ks.edu.tw:ftp -r
lsof -s 列出打開文件的大小,如果沒有大小,則留下空白
lsof -u username 以UID,列出打開的文件
一般root用戶才能執行lsof命令,普通用戶可以看見/usr/sbin/lsof命令,但是普通用戶執行會顯示“permission denied”
我總結一下lsof指令的用法:
lsof abc.txt 顯示開啟文件abc.txt的進程
lsof -i :22 知道22端口現在運行什么程序
lsof -c abc 顯示abc進程現在打開的文件
lsof -g gid 顯示歸屬gid的進程情況
lsof +d /usr/local/ 顯示目錄下被進程開啟的文件
lsof +D /usr/local/ 同上,但是會搜索目錄下的目錄,時間較長
lsof -d 4 顯示使用fd為4的進程
lsof -i 用以顯示符合條件的進程情況
語法: lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
46 --> IPv4 or IPv6
protocol --> TCP or UDP
hostname --> Internet host name
hostaddr --> IPv4位置
service --> /etc/service中的 service name (可以不只一個)
port --> 端口號 (可以不只一個)
例子: TCP:25 - TCP and port 25
@1.2.3.4 - Internet IPv4 host address 1.2.3.4
tcp@ohaha.ks.edu.tw:ftp - TCP protocol hosthaha.ks.edu.tw service name:ftp
lsof -n 不將IP轉換為hostname,缺省是不加上-n參數
例子: lsof -i tcp@ohaha.ks.edu.tw:ftp -n
lsof -p 12 看進程號為12的進程打開了哪些文件
lsof +|-r [t] 控制lsof不斷重復執行,缺省是15s刷新
-r,lsof會永遠不斷的執行,直到收到中斷信號
+r,lsof會一直執行,直到沒有檔案被顯示
例子:不斷查看目前ftp連接的情況:lsof -i tcp@ohaha.ks.edu.tw:ftp -r
lsof -s 列出打開文件的大小,如果沒有大小,則留下空白
lsof -u username 以UID,列出打開的文件
4、kill
殺死進程
kill -9 進程號即可
5 free
查看內存使用情況
posted on 2009-04-18 12:23 草原上的駱駝 閱讀(715) 評論(0) 編輯 收藏 所屬分類: Linux