藍森林首頁 | 返回主頁 | 本站地圖 | 站內搜索 | 聯繫信箱 |
 您目前的位置:首頁 > 自由軟件 > 技術交流 > 系統管理


    

藍森林 http://www.lslnet.com 2006年8月18日 15:18


如何找出哪個進程佔了cpu資源,top中我沒看出

如何找出哪個進程佔了cpu資源,top中我沒看出

cpu佔用這麼高,但在top中看來大家都正常,上次是停掉了數據庫,讓別的程序無法訪問,就降下來了.但也未必是數據庫問題,因為看下面數據庫的cpu佔用0%,而且實際訪問量也不大.上次停了httpd也沒用.
這個除了top,還有什麼好方法



top - 16:20:25 up 36 days,  5:04,  1 user,  load average: 3.69, 3.42, 2.87
Tasks:  94 total,   1 running,  93 sleeping,   0 stopped,   0 zombie
Cpu(s): 67.1% us, 16.9% sy,  0.0% ni, 12.7% id,  0.0% wa,  3.3% hi,  0.0% si
Mem:    386156k total,   201320k used,   184836k free,    46304k buffers
Swap:   522104k total,     4824k used,   517280k free,    68376k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
12612 niker     17   0  280m  25m  74m S  0.0  6.8   0:00.74 java
  521 mysql     15   0 57608  18m 5988 S  0.0  4.9   1:55.03 mysqld
11988 nobody    16   0 14088 6152 9508 S  0.0  1.6   0:00.36 httpd
13768 nobody    15   0 12756 4796 9508 S  0.0  1.2   0:00.20 httpd
13243 nobody    16   0 12752 4792 9508 S  0.0  1.2   0:00.21 httpd
13498 nobody    16   0 12704 4792 9508 S  0.0  1.2   0:00.25 httpd
13634 nobody    15   0 12756 4792 9508 S  0.0  1.2   0:00.19 httpd
13760 nobody    16   0 12752 4792 9508 S  0.3  1.2   0:00.13 httpd
13988 nobody    16   0 12756 4792 9508 S  0.3  1.2   0:00.07 httpd
13929 nobody    16   0 12752 4788 9508 S  0.0  1.2   0:00.11 httpd
12083 nobody    16   0 12736 4784 9508 S  0.0  1.2   0:00.22 httpd
12120 nobody    16   0 12752 4784 9508 S  0.0  1.2   0:00.14 httpd
13999 nobody    16   0 12752 4784 9508 S  0.0  1.2   0:00.88 httpd
13923 nobody    16   0 12756 4780 9508 S  0.0  1.2   0:00.11 httpd
14074 nobody    16   0 12756 4780 9508 S  0.0  1.2   0:00.03 httpd
13927 nobody    16   0 12700 4776 9508 S  0.0  1.2   0:00.11 httpd
14163 nobody    16   0 12756 4776 9508 S  0.0  1.2   0:00.04 httpd
15033 nobody    16   0 12712 4772 9508 S  0.0  1.2   0:00.12 httpd
14127 nobody    16   0 12700 4772 9508 S  0.0  1.2   0:00.08 httpd
13904 nobody    17   0 12700 4768 9508 S  0.0  1.2   0:00.11 httpd
13991 nobody    16   0 12700 4768 9508 S  0.3  1.2   0:00.07 httpd
14026 nobody    15   0 12700 4764 9508 S  0.0  1.2   0:00.08 httpd
14326 nobody    16   0 12700 4764 9508 S  0.0  1.2   0:00.02 httpd
14154 nobody    16   0 12752 4760 9508 S  0.0  1.2   0:00.05 httpd
14327 nobody    15   0 12760 4760 9508 S  0.0  1.2   0:00.01 httpd
14323 nobody    15   0 12700 4752 9508 S  0.0  1.2   0:00.03 httpd
15036 nobody    16   0 12696 4748 9508 S  0.0  1.2   0:00.09 httpd
15034 nobody    16   0 12696 4740 9508 S  0.0  1.2   0:00.14 httpd
14249 nobody    16   0 12700 4740 9508 S  0.0  1.2   0:00.03 httpd
14359 nobody    16   0 12700 4740 9508 S  0.0  1.2   0:00.01 httpd
14314 nobody    15   0 12700 4732 9508 S  0.0  1.2   0:00.02 httpd

如何找出哪個進程佔了cpu資源,top中我沒看出

按 CPU 佔用率排序,按 h 是看幫助

如何找出哪個進程佔了cpu資源,top中我沒看出

platinum,你說的我知道呀,默認top是按cpu佔用排序的,但根本看不出哪個進程佔用高,你看上面,哪個高???

幫助裡也只是些排序,比如按內存佔用排,我目前只要cpu呀.

有沒有辦法顯示全部的進程?現在一屏只能看這麼點

如何找出哪個進程佔了cpu資源,top中我沒看出

全都是 httpd,那應該就是 httpd 了,我認為
你停掉 httpd,然後 top 再看看?

如何找出哪個進程佔了cpu資源,top中我沒看出

停了,不管用.
不管用呀,我想應該有哪個程序佔得多,可看不出

如何找出哪個進程佔了cpu資源,top中我沒看出

ps -aux

如何找出哪個進程佔了cpu資源,top中我沒看出

呵呵,和我遇到的問題一樣.就在昨天..... :evil:

服務器突然卡死.我的linux指定ip訪問特定端口

帶動內網的幾百台機器.突然全掉線了~ :shock:

拔了內網的568B就恢復正常

cat ip_conntrack

發現很多的syn_數據

居然有人在攻擊 :em16:  :em16:

再接上568B.liux又被卡死

仔細觀察.發現居然攻擊的端口是4000

立刻運行了iptables -A FORWARD -s 192.168.0.0/22 -p tcp --dport 4000 -j DROP

srv正常

運行top

HOHO

居然cpu利用率只剩下了12.7%左右.可惡.這也行 :em12:

iptables -v -n -L

發現4000端口瞬間超過幾十M.可惡.

把整個總電源poweroff.再給上電.呵呵。一切恢復正常

ip我已經記下了.218.62.*.*的.哎

不過我沒太弄清楚的就是我只開放了一個22端口.而且還是指定ip訪問

根本不存在4000端口.為什麼這個ip可以在我內網發動攻擊?

為什麼斷開網關的網線立刻就正常了呢??

如何找出哪個進程佔了cpu資源,top中我沒看出

也許是內網向外攻擊
-->

這句話可以證明

如何找出哪個進程佔了cpu資源,top中我沒看出

QQ

如何找出哪個進程佔了cpu資源,top中我沒看出

如何找出哪個進程佔了cpu資源,top中我沒看出

我到是這麼認為的.因為我做的linux只有一個端口22

而且還限制了ip訪問.應該出問題的幾率很小

而且我看ip_conntrack時,攻擊我的ip是外網ip,發動的是dos

攻擊我端口4000,所以我覺得是從外通過內網某台機器4000端口進來的

然後發動的攻擊

不過我把整個網落全部斷電.機器還原了.就沒事了

不過我很奇怪.我的linux沒4000端口

又怎麼能被攻擊到呢?

我也nmap 過那個ip.也沒發現有什麼4000的端口

分析不明白了.不過問題解決了.總算放了口氣

如何找出哪個進程佔了cpu資源,top中我沒看出

當時「取證」不全,不好判斷

如何找出哪個進程佔了cpu資源,top中我沒看出

對了,你說能否是我的內網某台機器做了內應.與外連接後用我的ip來攻擊其他人???

或是外邊的機器通過內網的內應進到我這裡,像我的網關發動混亂攻擊呢??

如何找出哪個進程佔了cpu資源,top中我沒看出

-->
如果做了 NAT,外網是絕對不能主動進來的
如果是內網,絕對是可以出去的
如果內網先與外網建立連接,外網通過 ESTABLISHED 的通道對內網電腦進行網絡衝擊也是有可能的

你當初應該用 iptraf 看一下哪個 IP 哪個 PORT 流量最大
然後 iptables -I FORWARD -s IP -p 協議 --s(d)port 端口 -m state --state NEW,RELATED,ESTABLISHED -j DROP

如何找出哪個進程佔了cpu資源,top中我沒看出

根本就沒機會.可以這麼說.接上lan的網線.linux立刻就沒了反映.連鍵盤燈都不會再扇動.拔掉網線.立刻正常

所以我鬱悶也就鬱悶在這裡.沒辦法很好的差出到底是那個機器在作怪

後來我斷了網線iptables -A FORWARD -s 192.168.0.0/22 -p tcp --dport 4000 -j DROP以後.雖然接上lan的網線沒什麼問題了.但是cpu利用率幾乎達到峰點

iptables -L -v -n | grep 4000,發現瞬間的流量就超過了幾十M.哎

如何找出哪個進程佔了cpu資源,top中我沒看出

你的 iptables 裡面做了針對 4000 端口的策略?



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 藍森林網站 版權所有。 E-mail : webmaster@lslnet.com