大漠駝鈴

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

          Linux下進(jìn)程和端口,內(nèi)存相關(guān)操作

          具體有以下幾個(gè)命令:
          top
          netstat -a
          lsof -i:port
          kill -9 pid
          free

          1、top命令
          top [-] [d delay] [q] [c] [S] [s] [n]
          d:指定更新的間隔,以秒計(jì)算。
          q:沒有任何延遲的更新。如果使用者有超級用戶,則top命令將會(huì)以最高的優(yōu)先序執(zhí)行。
          c:顯示進(jìn)程完整的路徑與名稱。
          S:累積模式,會(huì)將己完成或消失的子行程的CPU時(shí)間累積起來。
          s:安全模式。
          i:不顯示任何閑置(Idle)或無用(Zombie)的行程。
          n:顯示更新的次數(shù),完成后將會(huì)退出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         




          第一行表示的項(xiàng)目依次為當(dāng)前時(shí)間、系統(tǒng)運(yùn)行時(shí)間、當(dāng)前系統(tǒng)登錄用戶數(shù)目、1/5/10分鐘系統(tǒng)平均負(fù)載(一般來說,這個(gè)負(fù)載值應(yīng)該不太可能超過 1 才對,除非您的系統(tǒng)很忙碌。 如果持續(xù)高于 5 的話,那么.....仔細(xì)的看看到底是那個(gè)程序在影響整體系統(tǒng)吧!)。
          第二行顯示的是所有啟動(dòng)的進(jìn)程、目前運(yùn)行、掛起 (Sleeping)的和無用(Zombie)的進(jìn)程。(比較需要注意的是最后的 zombie 那個(gè)數(shù)值,如果不是 0 ,嘿嘿!好好看看到底是那個(gè) process 變成疆尸了吧?!)(stop模式:與sleep進(jìn)程應(yīng)區(qū)別,sleep會(huì)主動(dòng)放棄cpu,而stop是被動(dòng)放棄cpu ,例單步跟蹤,stop(暫停)的進(jìn)程是無法自己回到運(yùn)行狀態(tài)的)
          第三行顯示的是目前CPU的使用情況,包括us用戶空間占用CPU百分比、sy 內(nèi)核空間占用CPU百分比、ni 用戶進(jìn)程空間內(nèi)改變過優(yōu)先級的進(jìn)程占用CPU百分比(中斷處理占用)、id 空閑CPU百分比、wa 等待輸入輸出的CPU時(shí)間百分比、hi,si,st 三者的意思目錄還不清楚 :)
          第四行顯示物理內(nèi)存的使用情況,包括總的可以使用的內(nèi)存、已用內(nèi)存、空閑內(nèi)存、緩沖區(qū)占用的內(nèi)存。
          第五行顯示交換分區(qū)使用情況,包括總的交換分區(qū)、使用的、空閑的和用于高速緩存的大小。




          PID(Process ID):進(jìn)程標(biāo)示號 ( 每個(gè) process 的 ID )
          USER:進(jìn)程所有者的用戶名 ( 該 process 所屬的使用者 )
          PR:進(jìn)程的優(yōu)先級別 ( Priority 的簡寫,程序的優(yōu)先執(zhí)行順序,越小越早被執(zhí)行 )
          NI:進(jìn)程的優(yōu)先級別數(shù)值 ( Nice 的簡寫,與 Priority 有關(guān),也是越小越早被執(zhí)行 )
          VIRT:進(jìn)程占用的虛擬內(nèi)存值。
          RES:進(jìn)程占用的物理內(nèi)存值。
          SHR:進(jìn)程使用的共享內(nèi)存值。
          S:進(jìn)程的狀態(tài),其中S表示休眠,R表示正在運(yùn)行,Z表示僵死狀態(tài),N表示該進(jìn)程優(yōu)先值是負(fù)數(shù)。
          %CPU:該進(jìn)程占用的CPU使用率。
          %MEM:該進(jìn)程占用的物理內(nèi)存和總內(nèi)存的百分比。
          TIME+:該進(jìn)程啟動(dòng)后占用的總的CPU時(shí)間 ( CPU 使用時(shí)間的累加 )
          Command:進(jìn)程啟動(dòng)的啟動(dòng)命令名稱,如果這一行顯示不下,進(jìn)程會(huì)有一個(gè)完整的命令行。

          2、netstat
          netstat命令的功能是顯示網(wǎng)絡(luò)連接、路由表和網(wǎng)絡(luò)接口信息,可以讓用戶得知目前都有哪些網(wǎng)絡(luò)連接正在運(yùn)作。
          -a 顯示所有socket,包括正在監(jiān)聽的。

          -c 每隔1秒就重新顯示一遍,直到用戶中斷它。

          -i 顯示所有網(wǎng)絡(luò)接口的信息,格式同“ifconfig -e”。

          -n 以網(wǎng)絡(luò)IP地址代替名稱,顯示出網(wǎng)絡(luò)連接情形。

          -r 顯示核心路由表,格式同“route -e”。

          -t 顯示TCP協(xié)議的連接情況。

          -u 顯示UDP協(xié)議的連接情況。

          -v 顯示正在進(jìn)行的工作。

          3、lsof

          lsof abc.txt 顯示開啟文件abc.txt的進(jìn)程

          lsof -i :22 知道22端口現(xiàn)在運(yùn)行什么程序

          lsof -c abc 顯示abc進(jìn)程現(xiàn)在打開的文件

          lsof -g gid 顯示歸屬gid的進(jìn)程情況

          lsof +d /usr/local/ 顯示目錄下被進(jìn)程開啟的文件

          lsof +D /usr/local/ 同上,但是會(huì)搜索目錄下的目錄,時(shí)間較長

          lsof -d 4 顯示使用fd為4的進(jìn)程

          lsof -i 用以顯示符合條件的進(jìn)程情況

          語法: 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 (可以不只一個(gè))

          port --> 端口號 (可以不只一個(gè))

          例子: 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轉(zhuǎn)換為hostname,缺省是不加上-n參數(shù)

          例子: lsof -i tcp@ohaha.ks.edu.tw:ftp -n

          lsof -p 12 看進(jìn)程號為12的進(jìn)程打開了哪些文件

          lsof +|-r [t] 控制lsof不斷重復(fù)執(zhí)行,缺省是15s刷新

          -r,lsof會(huì)永遠(yuǎn)不斷的執(zhí)行,直到收到中斷信號

          +r,lsof會(huì)一直執(zhí)行,直到?jīng)]有檔案被顯示

          例子:不斷查看目前ftp連接的情況:lsof -i tcp@ohaha.ks.edu.tw:ftp -r

          lsof -s 列出打開文件的大小,如果沒有大小,則留下空白

          lsof -u username 以UID,列出打開的文件

          一般root用戶才能執(zhí)行l(wèi)sof命令,普通用戶可以看見/usr/sbin/lsof命令,但是普通用戶執(zhí)行會(huì)顯示“permission denied”

          我總結(jié)一下lsof指令的用法:

          lsof abc.txt 顯示開啟文件abc.txt的進(jìn)程

          lsof -i :22 知道22端口現(xiàn)在運(yùn)行什么程序

          lsof -c abc 顯示abc進(jìn)程現(xiàn)在打開的文件

          lsof -g gid 顯示歸屬gid的進(jìn)程情況

          lsof +d /usr/local/ 顯示目錄下被進(jìn)程開啟的文件

          lsof +D /usr/local/ 同上,但是會(huì)搜索目錄下的目錄,時(shí)間較長

          lsof -d 4 顯示使用fd為4的進(jìn)程

          lsof -i 用以顯示符合條件的進(jìn)程情況

          語法: 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 (可以不只一個(gè))

          port --> 端口號 (可以不只一個(gè))

          例子: 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轉(zhuǎn)換為hostname,缺省是不加上-n參數(shù)

          例子: lsof -i tcp@ohaha.ks.edu.tw:ftp -n

          lsof -p 12 看進(jìn)程號為12的進(jìn)程打開了哪些文件

          lsof +|-r [t] 控制lsof不斷重復(fù)執(zhí)行,缺省是15s刷新

          -r,lsof會(huì)永遠(yuǎn)不斷的執(zhí)行,直到收到中斷信號

          +r,lsof會(huì)一直執(zhí)行,直到?jīng)]有檔案被顯示

          例子:不斷查看目前ftp連接的情況:lsof -i tcp@ohaha.ks.edu.tw:ftp -r

          lsof -s 列出打開文件的大小,如果沒有大小,則留下空白

          lsof -u username 以UID,列出打開的文件



          4、kill

          殺死進(jìn)程
          kill -9 進(jìn)程號即可

          5 free
          查看內(nèi)存使用情況


          posted on 2009-04-18 12:23 草原上的駱駝 閱讀(712) 評論(0)  編輯  收藏 所屬分類: Linux

          主站蜘蛛池模板: 景谷| 鹿泉市| 庐江县| 瓮安县| 天祝| 乌苏市| 通城县| 昔阳县| 雅安市| 墨江| 夏邑县| 博乐市| 克什克腾旗| 兰坪| 金平| 象山县| 交口县| 慈溪市| 溧阳市| 齐齐哈尔市| 福清市| 三门县| 滦平县| 敦煌市| 丘北县| 新兴县| 石台县| 门源| 白玉县| 双鸭山市| 耒阳市| 鹿泉市| 凤山县| 呼伦贝尔市| 平谷区| 上杭县| 镇坪县| 阜南县| 五华县| 自治县| 太原市|