Linux系統環境主要監測CPU、內存、磁盤I/O和網絡流量。
1. CPU
(1) 查看CPU的負載情況:uptime
可以通過uptime查看系統整體的負載情況。
如果服務器的CPU為1核心,則1分鐘的系統平均負載 >=3 說明負載過高,如果服務器的CPU為4核心,則load average中的數字 >=12 負載過高。
root@ubuntu1804:~#uptime 0953 up 7:17, 2users, load average: 0.10, 0.03, 0.01 0953 # 當前時間 up 7:17 # 主機已運行時間 2users # 當前登錄用戶數 load average: 0.10, 0.03, 0.01 # 系統負載,即任務隊列的平均長度。 三個數值分別為 1分鐘、5分鐘、15分鐘前到現在的平均值
(2)linux中查看cpu的邏輯數量:
ehigh@ubuntu:~$ grep -c'processor'/proc/cpuinfo 8
CPU:central processing unit,中央處理器。
image
插槽:表示電腦上插了幾個物理cpu 內核:表示這個物理cpu有幾個核心,一個核心就是一個cpu 邏輯處理器:邏輯上的處理器數量,通過超線程技術將一個處理器模擬出兩個處理器出來。 超線程技術:在一顆CPU同時執行多個程序而共同分享一顆CPU內的資源,理論上要像兩顆CPU一樣在同一時間執行兩個線程
cpu發展歷程:
剛開始一個物理cpu只有一個核心,通過提高核心的工作頻率來提高性能,但是會產生過多的熱量。 后面因特爾發明了超線程技術,在一顆CPU同時執行多個程序而共同分享一顆CPU內的資源,理論上要像兩顆CPU一樣在同一時間執行兩個線程 后面采用多核架構,在一個物理cpu里面放多個核心,好似一輛汽車放多個發動機。
例如:服務器上面插了一個物理cpu是4核8線程。表示的是這個cpu又4個核心,支持超線程技術,邏輯cpu就是8個。
并發
(3)查看系統中使用CPU最多的進程:top
使用top命令,按下大寫的P,可以按cpu使用率排序
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 720 root 20 0 473464 22060 19128 S 1.7 0.2 119:55.14 sunloginclient 3590 emqx 20 0 3483576 20149274484 S 1.3 2.0 64:39.37 beam.smp 984 root 20 0 2754328 50696 5192 S 1.0 0.5 77:32.96 taosd
進程的cpu占用能否超過100%?
如果你的4核心的cpu,你可以運行400%
判斷CPU當前忙不忙?
要結合cpu使用率和隊列一起看,如果一分鐘內cpu的隊列數超過3并且cpu的使用率也很高,說明當前cpu很忙。
(4)查看cpu的使用率:
使用top命令,然后按數字1就可以顯示每個cpu的詳細信息
top - 1044 up 5 days, 1:15, 1 user, load average: 0.10, 0.14, 0.10 Tasks: 398 total, 1 running, 397 sleeping, 0 stopped, 0 zombie %Cpu0 : 0.0 us, 3.4 sy, 0.0 ni, 96.6id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu1 : 0.0 us, 0.0 sy, 0.0 ni,100.0id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu2 : 0.0 us, 0.0 sy, 0.0 ni,100.0id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu3 : 0.0 us, 0.0 sy, 0.0 ni,100.0id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu4 : 0.0 us, 0.0 sy, 0.0 ni,100.0id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu5 : 0.0 us, 0.0 sy, 0.0 ni,100.0id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu6 : 0.0 us, 0.0 sy, 0.0 ni,100.0id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu7 : 0.0 us, 0.0 sy, 0.0 ni,100.0id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st MiB Mem : 9952.6 total, 5473.8 free, 2145.3 used, 2333.5 buff/cache MiB Swap: 0.0 total, 0.0 free, 0.0 used. 7477.7 avail Mem #96.6id-- 表示cpu的空閑率是96.6%
2. 內存
(1)查看內存的大小和使用量:
root@ubuntu:~# free -h total used free shared buff/cache available Mem: 9.7Gi 2.1Gi 5.4Gi 49Mi 2.3Gi 7.3Gi Swap: 0B 0B 0B #選項: # -h 表示系統會根據值的大小來選擇合適的單位,默認是byte # aotal 總計物理(swap)內存的大小 # used 已使用物理內存(swap)的大小 # free 可用的物理內存(swap)大小 # shared 多個進程共享的內存總額 # buff/cache 磁盤的緩存大小 # available 可以被新應用程序使用的內存大小 # Mem:物理內存的大小 # Swap:交換分區的大小,交換分區就是使用磁盤的一部分空間來模擬內存,當物理內存占用滿的時候就將一部分不常用的數據移動到交換分區中。交換分區是臨時充當內存的作用,性能很低。
(2)查看系統使用內存最多的進程:
使用top命令然后按大寫M就可以按照內存的使用率來進行排序,按e可以按M,G,T 這些單位來顯示
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1377 mysql 20 0 4.8g 0.8g 0.0g S 0.7 7.8 67:01.24 mysqld 977 root 20 0 7.7g 0.3g 0.0g S 0.0 3.4 32:34.83 java 3590 emqx 20 0 3.3g 0.2g 0.1g S 0.7 2.0 64:48.04 beam.smp 446 root 19 -1 0.3g 0.2g 0.2g S 0.0 2.0 1:59.99 systemd-journ
3. 磁盤IO
(1)查看對磁盤讀寫最多的進程
oot@ubuntu1804:~# iostat -dkp Linux 4.15.0-156-generic (ubuntu1804) 12/03/2022 _x86_64_ (4 CPU) Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn loop0 0.00 0.00 0.00 8 0 sda 0.64 16.17 58.90 487458 1775844 sda1 0.01 0.20 0.00 5893 96 sda2 0.00 0.00 0.00 4 0 sda5 0.00 0.11 0.00 3312 0 sda6 0.63 15.79 58.90 476129 1775748 scd0 0.00 0.07 0.00 2056 0 # kB_read/s 每秒從磁盤讀入的數據量,單位為K. # kB_wrtn/s 每秒向磁盤寫入的數據量,單位為K. # kB_read 讀入的數據總量,單位為K. # kB_wrtn 寫入的數據總量,單位為K. # -d 僅顯示磁盤統計信息 # -k 以K為單位顯示每秒的磁盤請求數,默認單位塊. # -p device | ALL 用于顯示塊設備及系統分區的統計信息.
服務器很卡,查看CPU使用率不高,內存也夠用,但就是卡,尤其是打開新程序或文件時,更卡。此時是哪出問題了?
一般是磁盤IO到達了瓶頸,還企業級ssd可以提高性能瓶頸。
(2)查看哪個進程使用磁盤讀寫最多
root@ubuntu1804:~# iotop -o Total DISK READ : 5.79 M/s | Total DISK WRITE : 2.28 M/s Actual DISK READ: 5.79 M/s | Actual DISK WRITE: 4.64 M/s TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND 17238 be/4 tom 5.79 M/s 0.00 B/s 0.00 % 64.19 % find / 17092 be/4 root 0.00 B/s 0.00 B/s 0.00 % 12.71 % [kworker/u256:0] 476 be/3 root 0.00 B/s 2.28 M/s 0.00 % 5.45 % [jbd2/sda6-8] # Total DISK READ:總的磁盤讀取速度。 Total DISK WRITE:總的磁盤寫入速度。 # Actual DISK READ:實際磁盤讀的速度 Actual DISK WRITE:實際磁盤寫的速度 # TID:進程pid值。 # PRIO:優先級。 # USER:用戶。 # DISKREAD:磁盤讀取速度。 # DISK WRITE:磁盤寫入速度。 # SWAPIN:從swap分區讀取數據占用的百分比。 # IO:I/O占用的百分比。 # COMMAND:消耗I/O的進程名。 #命令選項: # -o, -only 只顯示在讀寫硬盤的程序 # -d SEC, -delay=SEC 設定顯示時間間隔。 刷新時間 # 退出,按q或ctrl+C
4. 網絡
(1)使用nload監控總體帶寬使用情況
tom@ubuntu1804:~$ nload -u h # -u:指定數據的單位 h表示寫哦那個會根據數值的大小自動選擇單位 例如M G等 Device eth0 [10.0.0.18] (1/2): == Incoming:#進來的網絡流量 Curr: 558.33 kBit/s #當前流量 Avg: 297.12 kBit/s #平均流量 Min: 1.39 kBit/s #最小流量 Max: 894.77 kBit/s #最大流量 Ttl: 58.23 MByte #流量總和 Outgoing:#出去的網絡流浪 Curr: 16.16 kBit/s Avg: 15.37 kBit/s Min: 4.52 kBit/s Max: 32.62 kBit/s Ttl: 766.79 kByte
(2)使用nethogs找出使用帶寬最多的進程
tom@ubuntu1804:~$sudonethogs NetHogs version 0.8.5-2 PID USER PROGRAM DEV SENT RECEIVED 1733 root wget eth0 13.352 4317.425 KB/sec 1605 tom sshd: tom@pts/0 eth0 1.025 0.07013.276 KB/sec 1732 root wget tom@pts/0 eth0 0.000 0.000 KB/sec ? root unknown TCP 0.000 0.000 KB/sec TOTAL 0.000 0.000 KB/sec 14.378 4317.701 # PID:行程 ID。 # USER:行程的擁有者。 # PROGRAM:程序路徑。 # DEV:網絡接口。 # SENT:目前傳送數據的速度。 # RECEIVED:目前接收數據的速度 #TOTAL 總計、總和 #快捷鍵: # m:切換帶寬單位,可用單位有 KB/s、KB、B、MB。 # r:以數據接收速度排序。 # s:以數據傳送速度排序。 # q:離開 NetHogs。
鏈接:https://www.cnblogs.com/heyongshen/p/16947514.html
-
Linux
+關注
關注
87文章
11496瀏覽量
213244 -
服務器
+關注
關注
13文章
9753瀏覽量
87562 -
環境監測
+關注
關注
3文章
373瀏覽量
19082
原文標題:【Linux運維必備】系統環境監測終極指南:從CPU到磁盤,一文掌握所有監控技巧?
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
評論