找出系統中使用CPU最多的進程?內存最多的進程?對磁盤讀寫最多的進程?使用網絡最多的進程?

  1. 系統的運行狀況: CPU-> MEM ->DISK*-> NETWORK -> 應用程序調優
    性能優化的4個子系統:
    CPU
    Memory
    IO
    Network
  2. 分析是否有瓶頸(依據當前應用需求)
    1、查看CPU負載相關工具
    uptime命令:
[root@localhost ~]# uptime
13:22:30 up 8 min,  4 users,  load average: 0.14, 0.38, 0.25

其內容如下:

12:38:33 當前時間
up 50days 系統運行時間 ,說明此服務器連續運行50天了
1 user 當前登錄用戶數
load average: 0.06, 0.60, 0.48 系統負載,即任務隊列的平均長度。 三個數值分別爲 1分鐘、5分鐘、15分鐘前到現在的平均值。

例1:找出前當系統中,CPU存在瓶頸的服務器?
服務器1: load average: 0.15, 0.08, 0.01 1核
服務器2: load average: 4.15, 6.08, 6.01 1核
服務器3: load average: 10.15, 10.08, 10.01 4核
答案:2
如果服務器的CPU爲1核心,則load average中的數字 >=3 負載過高,如果服務器的CPU爲4核心,則load average中的數字 >=12 負載過高。
隊列數爲3時,如圖:在這裏插入圖片描述
理論上:單核心,1分鐘的系統平均負載不要超過3,這個經驗值。
一、按照實際使用CPU,從大到小排序顯示所有進程列表

[root@stu003 ~]# ps -aux --sort -pcpu | more   #按cpu降序排序

查看 -pcpu 幫助:

[root@Hjj ~]# man ps  #然後搜索 pcpu  ,找到下面內容
  pcpu         cpu utilization   # cpu利用率

注: -pcpu 和-cpu 相比, -pcpu 可以顯示出進程絕對路徑,方便找出木馬程序運行的路徑。
二、按照實際使用內存,從大到小排序顯示所有進程列表

[root@Hjj ~]#  ps -aux  --sort -rss | more 內存降序排序(去掉減號就是升序)
或:
[root@Hjj ~]#  ps -aux  --sort -rss > a.log

三、找出系統中對磁盤讀寫最多的進程
1、iostat 可以顯示CPU和I/O系統的負載情況及每個磁盤分區的讀寫狀態信息.
從而知道我們系統IO 是否存在問題。
2、安裝iostat:

[root@Hjj ~]# yum -y install iostat

常用參數:
-d 僅顯示磁盤統計信息
-k 以K爲單位顯示每秒的磁盤請求數,默認單位塊.
-p device | ALL 用於顯示塊設備及系統分區的統計信息

例:顯示每個分區讀寫速度

[root@Hjj ~]# iostat -p sda -dk
Linux 2.6.32-220.el6.x86_64 (Hjj) 08/04/2015 _x86_64_ (4 CPU)
 
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               7.25       252.33        12.99     206953      10657
sda1              0.63         2.43         0.01       1996          9
sda2              5.99       247.27        12.98     202805      10648
sda3              0.43         1.77         0.00       1452          0

注:
每列含意:
kB_read/s 每秒從驅動器讀入的數據量,單位爲K.
kB_wrtn/s 每秒向驅動器寫入的數據量,單位爲K.
kB_read 讀入的數據總量,單位爲K.
kB_wrtn 寫入的數據總量,單位爲K.
四、查看系統中使用io最多的進程
參數:
-o, -only 只顯示在讀寫硬盤的程序
-d SEC, –delay=SEC 設定顯示時間間隔
退出,按q或ctrl+C
例1:
安裝:

[root@Hjj ~]# yum -y install iotop
 
 [root@Hjj ~]# iotop -o -d 1     #顯示正在使用磁盤的進程
Total DISK READ: 1458.61 K/s | Total DISK WRITE: 0.00 B/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND             
 2654 be/4 root     1458.61 K/s    0.00 B/s  0.00 % 60.62 % find /
1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % init

只是對Linux下的開源工具做了一個封裝。

實戰1:使用nload監控總體帶寬使用情況
實戰2:使用iptraf查看每個鏈接與主機之間的數據,找出惡意消耗帶寬最多的IP
實戰3:使用nethogs找出使用帶寬最多的進程

實戰1:使用nload監控總體帶寬使用情況
rz 上傳nload.rpm到RHEL上

[root@Hjj ~]# rpm -ivh nload-0.7.4-1.el6.x86_64.rpm
或wget http://www.roland-riegel.de/nload/nload-0.7.2.tar.gz
[root@iZ25b6alxstZ ~]# yum install nload -y   (在centos上,配置好epel源)
yum -y install ncurses*  
[root@Hjj ~]# nload   #開始監控
然後另一個終端上運行:
[root@Hjj ~]# ab -n 10000 -c 2 http://www.baidu.com/index.html  #產生一些測試數據

查看結果:
在這裏插入圖片描述
Incoming : 下載 Outgoing :上傳

[root@Hjj ~]# rpm -ivh /mnt/Packages/iptraf-3.0.1-13.el6.x86_64.rpm

iptraf是一款交互式、色彩鮮豔的IP局域網監控工具。它可以顯示每個連接以及主機之間傳輸的數據量。
實戰2:使用iptraf查看每個鏈接與主機之間的數據,找出惡意消耗帶寬最多的IP
[root@Hjj ~]# iptraf
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
實戰3:分析服務器上某個端口上產生的流量。
實戰背景: 晚上下載了一個黑客工具,想知道這個軟件有沒有留後門,怎麼辦?
在運行軟件之前,先監控一下流量 。
Statistical breakdowns. 統計分析。
在這裏插入圖片描述
選擇統計端口上的流量:
在這裏插入圖片描述
在這裏插入圖片描述
nethogs是一款小巧的"net top"工具,可以顯示每個進程所使用的帶寬,並對列表排序,將耗用帶寬最多的進程排在最上面。萬一出現帶寬使用突然激增的情況,用戶迅速打開nethogs,就可以找到導致帶寬使用激增的進程。nethogs可以報告程序的進程編號(PID)、用戶和路徑。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章