系統調優4大子系統
- 1:找出系統中使用CPU最多的進程
- 2:找出系統中使用內存最多的進程
- 3:找出系統中對磁盤讀寫最多的進程
- 4:找出系統中使用網絡最多的進程
系統調優概述
系統的運行狀況: CPU-> MEM -> DISK-> NETWORK -> 應用程序調優
系統性能優化的4個子系統:
CPU
Memory
IO
Network
1.找出系統中使用CPU最多的進程
查看CPU負載相關工具uptime命令
[root@jumpserver ~]# uptime 19:13:35 up 3:59, 1 user, load average: 0.00, 0.01, 0.05
其內容如下:
| 19:13:35 |
當前時間 |
| up 3:59 |
系統運行時間 ,說明此服務器連續運行3小時59分鍾了 |
| 1 user |
當前登錄用戶數 |
| load average: 0.00, 0.01, 0.05 |
系統負載,即任務隊列的平均長度。 三個數值分別為 1分鍾、5分鍾、15分鍾前到現在的平均值 |
如果服務器的CPU為1核心,則load average中的數字 >=3 負載過高,如果服務器的CPU為4核心,則load average中的數字 >=12 負載過高
單核心,1分鍾的系統平均負載不要超過3,就可以
使用top命令
運行top , 找出使用CPU最多的進程 ,按大寫的P,可以按CPU使用率來排序顯示

按照實際使用CPU ,從大到小排序顯示所有進程列表
[root@jumpserver ~]# ps -aux --sort -pcpu | less #按cpu降序排序查看 # -pcpu 可以顯示出進程絕對路徑,方便找出木馬程序運行的路徑
2.找出系統中使用內存最多的進程
使用top命令
運行top , 然后按下大寫的M 可以按內存使用率來排序顯示
[root@jumpserver ~]# top

按照實際使用內存 ,從大到小排序顯示所有進程列表
[root@jumpserver ~]# ps -aux --sort -rss | less # 內存降序排序

3、找出系統中對磁盤讀寫最多的進程
查看系統中哪個磁盤或分區最繁忙
通過iostat命令查看IO是否存在瓶頸
常用參數 :
-d 僅顯示磁盤統計信息
-k 以K為單位顯示每秒的磁盤請求數,默認單位塊
-p device | ALL 用於顯示塊設備及系統分區的統計信息
安裝iostat
[root@jumpserver ~]# yum -y install sysstat [root@jumpserver ~]# iostat -d -k -p /dev/sda Linux 3.10.0-862.el7.x86_64 (jumpserver) 2018年08月06日 _x86_64_ (4 CPU) Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 0.49 17.71 4.42 305878 76321 sda1 0.06 1.40 0.12 24105 2048 sda2 0.42 16.26 4.30 280725 74273
每列含意 :
kB_read/s 每秒從磁盤讀入的數據量,單位為K
kB_wrtn/s 每秒向磁盤寫入的數據量,單位為K
kB_read 讀入的數據總量,單位為K
kB_wrtn 寫入的數據總量,單位為K
給磁盤寫入一些內容 , 寫入時盡可能不讀磁盤
[root@jumpserver ~]# dd if=/dev/zero of=a.txt bs=10M count=1000 ; sync # 讀入的數據用/dev/zero , /dev/zero不會讀磁盤 # #把內存中的數據快速寫到磁盤上。 只做dd不執行sync,不容易看不出寫入效果 [root@jumpserver ~]# iostat -p sda -dk Linux 3.10.0-862.el7.x86_64 (jumpserver) 2018年08月06日 _x86_64_ (4 CPU) Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 1.43 36.59 460.93 669406 8432993 sda1 0.06 1.32 0.11 24105 2048 sda2 1.37 35.21 460.82 644253 8430945
查看哪個進程使用磁盤讀寫最多
iotop命令,查看哪個進程使用磁盤讀寫最多
安裝iotop
參數:
-o, -only 只顯示在讀寫硬盤的程序
-d SEC, -delay=SEC 設定顯示時間間隔 刷新時間
退出 ,按q或ctrl+C
[root@jumpserver ~]# yum -y install iotop
[root@jumpserver ~]# iotop -o -d 1 # 顯示正在使用磁盤的進程
在另一個終端對磁盤進行大量讀操作 ,執行 :
[root@jumpserver ~]# find /

已經知道怎么找出使用系統的cpu ,內存 ,磁盤最多的進程
哪怎么找出系統中使用網絡最多的進程呢

windows中有流量顯示 ,雙擊后,可以查到每個進程使用的流量 , Linux有嗎
Linux 可以使用nload
找出系統中使用網絡最多的進程
1.使用nload監控總體帶寬使用情況
2.使用nethogs找出使用帶寬最多的進程
安裝nload :
[root@jumpserver ~]# yum -y install nload [root@jumpserver ~]# nload # 開始監控
然后另一個終端上運行 :
[root@jumpserver ~]# yum -y install httpd [root@jumpserver ~]# systemctl start httpd [root@jumpserver ~]# ab -n 1000 -c 2 http://www.baidu.com/index.html # 產生一些測試數據
查看結果:

Incoming : 下載 Outgoing :上傳
2.使用nethogs找出使用帶寬最多的進程
安裝nethogs :
[root@jumpserver ~]# yum -y install nethogs [root@jumpserver ~]# nethogs
在另一個終端生成一些數據 :
[root@jumpserver ~]# wget http://mirrors.zju.edu.cn/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1804.iso

可以看到進程號 , 用戶 , 進程都可以看到
