大漠駝鈴

          置身浩瀚的沙漠,方向最為重要,希望此blog能向大漠駝鈴一樣,給我方向和指引。
          Java,Php,Shell,Python,服務器運維,大數據,SEO, 網站開發、運維,云服務技術支持,IM服務供應商, FreeSwitch搭建,技術支持等. 技術討論QQ群:428622099
          隨筆 - 238, 文章 - 3, 評論 - 117, 引用 - 0
          數據加載中……

          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

          主站蜘蛛池模板: 浮梁县| 嵩明县| 理塘县| 临洮县| 汕头市| 长沙县| 合阳县| 赞皇县| 连城县| 贺州市| 苏州市| 龙岩市| 古丈县| 甘泉县| 涟源市| 花垣县| 苍山县| 大宁县| 香河县| 鲁甸县| 南雄市| 喀喇沁旗| 陕西省| 辽中县| 禹州市| 平阴县| 枣强县| 温泉县| 宣威市| 突泉县| 新丰县| 阿巴嘎旗| 松潘县| 大洼县| 明光市| 盐亭县| 白银市| 丰县| 辽宁省| 佳木斯市| 灌阳县|