常用監控指令
top
$top
top - 09:14:56 up 264 days, 20:56, 1 user, load average: 0.02, 0.04, 0.00
Tasks: 87 total, 1 running, 86 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.2%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.2%st
Mem: 377672k total, 322332k used, 55340k free, 32592k buffers
Swap: 397308k total, 67192k used, 330116k free, 71900k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 2856 656 388 S 0.0 0.2 0:49.40 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 7:15.20 ksoftirqd/0
4 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
-
- 第一行
-
- 09:14:56 : 系統目前時間
- 264 days, 20:56 : 系統開機到現在經過了多少時間
- 1 users : 目前2使用者線上
- load average: 0.02, 0.04, 0.00: 系統1分鐘、5分鐘、15分鐘的CPU負載資訊
-
- 第二行
-
- Tasks:任務;
- 87 total:很好了解,就是目前有87個任務,也就是87個程序。
- 1 running:1個程序正在運作
- 86 sleeping:86個程序睡眠
- 0 stopped:停止的程序數
- 0 zombie:僵死的程序數
-
- 第三行
-
- Cpu(s):表示這一行顯示CPU總體資訊
- 0.0%us:使用者态程序占用CPU時間百分比,不包含renice值為負的任務占用的CPU的時間。
- 0.7%sy:核心占用CPU時間百分比
- 0.0%ni:改變過優先級的程序占用CPU的百分比
- 99.3%id:空閑CPU時間百分比
- 0.0%wa:等待I/O的CPU時間百分比
- 0.0%hi:CPU硬中斷時間百分比
- 0.0%si:CPU軟中斷時間百分比
- 注:這裡顯示資料是所有cpu的平均值,如果想看每一個cpu的處理情況,按1即可;折疊,再次按1;
-
- 第四行
-
- Men:記憶體的意思
- 8175320kk total:實體記憶體總量
- 8058868k used:使用的實體記憶體量
- 116452k free:空閑的實體記憶體量
- 283084k buffers:用作核心緩存的實體記憶體量
-
- 第五行
-
- Swap:交換空間
- 6881272k total:交換區總量
- 4010444k used:使用的交換區量
- 2870828k free:空閑的交換區量
- 4336992k cached:緩沖交換區總量
-
- 程序資訊
-
- 再下面就是程序資訊:
- PID:程序的ID
- USER:程序所有者
- PR:程序的優先級别,越小越優先被執行
- NInice:值
- VIRT:程序占用的虛拟記憶體
- RES:程序占用的實體記憶體
- SHR:程序使用的共享記憶體
- S:程序的狀态。S表示休眠,R表示正在運作,Z表示僵死狀态,N表示該程序優先值為負數
- %CPU:程序占用CPU的使用率
- %MEM:程序使用的實體記憶體和總記憶體的百分比
- TIME+:該程序啟動後占用的總的CPU時間,即占用CPU使用時間的累加值。
- COMMAND:程序啟動指令名稱
- 使用頻率最高的是P、T、M,因為通常使用top,我們就想看看是哪些程序最耗cpu資源、占用的記憶體最多; 注:通過”shift + >”或”shift + <”可以向右或左改變排序列 如果隻需要檢視記憶體:可用free指令。隻檢視uptime資訊(第一行),可用uptime指令;
- 在top基本視圖中,按鍵盤數字“1”,可監控每個邏輯CPU的狀況
- top -Hp 檢視指定程序 可通過Threads判斷線程數
top -Hp 11757
top - 19:36:11 up 266 days, 2:43, 1 user, load average: 0.31, 0.18, 0.13
Threads: 115 total, 0 running, 115 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 0.2 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 8010424 total, 733756 free, 5278396 used, 1998272 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 2421932 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
11767 admin 20 0 8204136 4.7g 18876 S 0.3 62.0 32:55.74 java
11757 admin 20 0 8204136 4.7g 18876 S 0.0 62.0 0:00.00 java
11762 admin 20 0 8204136 4.7g 18876 S 0.0 62.0 0:32.20 java
11763 admin 20 0 8204136 4.7g 18876 S 0.0 62.0 0:17.34 java
11764 admin 20 0 8204136 4.7g 18876 S 0.0 62.0 0:17.36 java
11765 admin 20 0 8204136 4.7g 18876 S 0.0 62.0 0:17.31 java
11766 admin 20 0 8204136 4.7g 18876 S 0.0 62.0 0:17.39 java
11768 admin 20 0 8204136 4.7g 18876 S 0.0 62.0 0:02.17 java
11770 admin 20 0 8204136 4.7g 18876 S 0.0 62.0 0:02.90 java
11771 admin 20 0 8204136 4.7g 18876 S 0.0 62.0 0:04.30 java
11772 admin 20 0 8204136 4.7g 18876 S 0.0 62.0 0:06.85 java
11773 admin 20 0 8204136 4.7g 18876 S 0.0 62.0 0:00.16 java
11774 admin 20 0 8204136 4.7g 18876 S 0.0 62.0 0:18.34 java
11796 admin 20 0 8204136 4.7g 18876 S 0.0 62.0 2:27.85 java
11797 admin 20 0 8204136 4.7g 18876 S 0.0 62.0 0:00.62 java
11798 admin 20 0 8204136 4.7g 18876 S 0.0 62.0 0:01.35 java
11799 admin 20 0 8204136 4.7g 18876 S 0.0 62.0 0:00.00 java
11800 admin 20 0 8204136 4.7g 18876 S 0.0 62.0 0:00.00 java
11801 admin 20 0 8204136 4.7g 18876 S 0.0 62.0 1:32.81 java
11802 admin 20 0 8204136 4.7g 18876 S 0.0 62.0 1:31.72 java
11803 admin 20 0 8204136 4.7g 18876 S 0.0 62.0 0:22.92 java
11804 admin 20 0 8204136 4.7g 18876 S 0.0 62.0 0:00.19 java
11805 admin 20 0 8204136 4.7g 18876 S 0.0 62.0 0:01.67 java
11806 admin 20 0 8204136 4.7g 18876 S 0.0 62.0 0:01.16 java
11807 admin 20 0 8204136 4.7g 18876 S 0.0 62.0 0:00.00 java
11808 admin 20 0 8204136 4.7g 18876 S 0.0 62.0 3:57.39 java
11824 admin 20 0 8204136 4.7g 18876 S 0.0 62.0 0:00.24 java
11855 admin 20 0 8204136 4.7g 18876 S 0.0 62.0 0:03.40 java
11856 admin 20 0 8204136 4.7g 18876 S 0.0 62.0 0:01.75 java
11858 admin 20 0 8204136 4.7g 18876 S 0.0 62.0 0:03.75 java
11868 admin 20 0 8204136 4.7g 18876 S 0.0 62.0 0:11.62 java
11882 admin 20 0 8204136 4.7g 18876 S 0.0 62.0 0:00.00 java
free
A buffer is something that has yet to be "written" to disk.
A cache is something that has been "read" from the disk and stored for later use.
uptime
uptime
17:38:53 up 265 days, 46 min, 1 user, load average: 0.17, 0.09, 0.12
- 系統時間 運作時間 連接配接數(每個終端算一個連接配接) 1,5,15 分鐘的系統平均負載(運作隊列中的平均程序數)
load average
- 3個數字的含義:分别表示系統在過去1分鐘、5分鐘、15分鐘内運作程序隊列中的平均程序數量。運作隊列,沒有等待IO,沒有WAIT,沒有KILL的程序通通都進這個隊列。
- 用交通流量來做類比
- 1、單核CPU - 單車道 - 數字在0.00-1.00之間正常
- 0.00-1.00 之間的數字表示此時路況非常良好,沒有擁堵,車輛可以毫無阻礙地通過。
- 1.00 表示道路還算正常,但有可能會惡化并造成擁堵。此時系統已經沒有多餘的資源了,管理者需要進行優化。
- 1.00-* 表示路況不太好了,如果到達2.00表示有橋上車輛一倍數目的車輛正在等待。這種情況你必須進行檢查了。
- 2、多核CPU - 多車道 - 數字/CPU核數 在0.00-1.00之間正常
- 多核CPU的話,滿負荷狀态的數字為 "1.00 * CPU核數",即雙核CPU為2.00,四核CPU為4.00。
- 單核負載在0.7以下是安全的,超過0.7就需要進行優化了。
- 看5分鐘和15分鐘的比較好,即後面2個數字
- 獲得CPU核心數目 grep 'model name' /proc/cpuinfo | wc -l
vmstat
- 監視記憶體使用情況,vmstat是Virtual Meomory Statistics(虛拟記憶體統計)的縮寫,可實時動态監視作業系統的虛拟記憶體、程序、CPU活動。
- 可對作業系統的虛拟記憶體、程序、IO 讀寫、CPU 活動等進行監視。它是對系統的整體情況進行統計,不足之處是無法對某個程序進 行深入分析
- 可觀察每秒上下文切換數
vmstat 2 20
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 731272 169216 1833540 0 0 1 7 0 0 2 1 98 0 0
0 0 0 731256 169216 1833540 0 0 0 36 742 1312 0 0 100 0 0
0 0 0 733284 169216 1833540 0 0 0 38 2074 2814 7 2 91 0 0
0 0 0 733036 169216 1833540 0 0 0 0 724 1293 0 0 100 0 0
1 0 0 731052 169216 1833540 0 0 0 48 1295 1954 4 1 96 0 0
0 0 0 731052 169216 1833540 0 0 0 0 720 1301 0 0 100 0 0
0 0 0 731052 169216 1833540 0 0 0 0 757 1323 0 0 100 0 0
0 0 0 730804 169216 1833548 0 0 0 36 867 1402 0 0 99 0 0
0 0 0 730804 169216 1833548 0 0 0 76 774 1332 0 0 100 0 0
0 0 0 731052 169216 1833552 0 0 0 70 1442 2084 4 1 95 0 0
1 0 0 727732 169216 1833552 0 0 0 24 867 1429 0 0 99 0 0
0 0 0 731176 169216 1833552 0 0 0 16 1262 1892 3 1 96 0 0
0 0 0 731176 169216 1833552 0 0 0 8 769 1300 0 0 100 0 0
0 0 0 731176 169216 1833552 0 0 0 26 769 1329 0 0 100 0 0
0 0 0 731176 169216 1833552 0 0 0 4 802 1364 0 0 100 0 0
0 0 0 731176 169216 1833552 0 0 0 0 693 1272 0 0 100 0 0
0 0 0 730680 169216 1833552 0 0 0 16 1341 2010 4 1 96 0 0
0 0 0 730680 169216 1833552 0 0 0 26 1049 1592 1 1 99 0 0
0 0 0 731548 169216 1833552 0 0 0 16 1341 1980 4 1 95 0 0
0 0 0 731532 169216 1833552 0 0 0 22 728 1304 0 0 100 0 0
- Procs(程序):
-
- r: 運作隊列中程序數量
- b: 等待IO的程序數量
- Memory(記憶體):
-
- swpd: 使用虛拟記憶體大小
- free: 可用記憶體大小
- buff: 用作緩沖的記憶體大小
- cache: 用作緩存的記憶體大小
- Swap:
-
- si: 每秒從交換區寫到記憶體的大小
- so: 每秒寫入交換區的記憶體大小
- IO:(現在的Linux版本塊的大小為1024bytes)
-
- system:
-
- in: 每秒中斷數,包括時鐘中斷
- cs: 每秒上下文切換數
- CPU(以百分比表示)
-
- us: 使用者程序執行時間(user time)
- sy: 系統程序執行時間(system time)
- id: 空閑時間(包括IO等待時間)
- wa: 等待IO時間
pidstat
- 用于細緻地觀察程序,可監控 CPU、IO、記憶體。
- 示例:-p 指定程序,-u 表示監控 CPU(-t 表示監控線程,-d 表示監控磁盤 io 的情況),每秒采樣 1 次,共采樣 4 次。
- -u
pidstat -p 11757 -u 1 10
Linux 3.10.0-514.26.2.el7.x86_64 (spider-competitor-1.real.bj.aly) 06/02/2020 _x86_64_ (4 CPU)
07:59:01 PM UID PID %usr %system %guest %CPU CPU Command
07:59:02 PM 1000 11757 1.00 0.00 0.00 1.00 3 java
07:59:03 PM 1000 11757 0.00 0.00 0.00 0.00 3 java
07:59:04 PM 1000 11757 0.00 0.00 0.00 0.00 3 java
07:59:05 PM 1000 11757 1.00 0.00 0.00 1.00 3 java
07:59:06 PM 1000 11757 0.00 0.00 0.00 0.00 3 java
07:59:07 PM 1000 11757 0.00 0.00 0.00 0.00 3 java
07:59:08 PM 1000 11757 2.00 0.00 0.00 2.00 3 java
07:59:09 PM 1000 11757 0.00 0.00 0.00 0.00 3 java
07:59:10 PM 1000 11757 1.00 0.00 0.00 1.00 3 java
pidstat -p 11757 -r 1 10
Linux 3.10.0-514.26.2.el7.x86_64 (spider-competitor-1.real.bj.aly) 06/02/2020 _x86_64_ (4 CPU)
07:59:35 PM UID PID minflt/s majflt/s VSZ RSS %MEM Command
07:59:36 PM 1000 11757 0.00 0.00 8205164 4963196 61.96 java
07:59:37 PM 1000 11757 2.00 0.00 8205164 4963196 61.96 java
07:59:38 PM 1000 11757 1.00 0.00 8205164 4963196 61.96 java
07:59:39 PM 1000 11757 0.00 0.00 8205164 4963196 61.96 java
07:59:40 PM 1000 11757 6.00 0.00 8205164 4963196 61.96 java
07:59:41 PM 1000 11757 0.00 0.00 8205164 4963196 61.96 java
07:59:42 PM 1000 11757 2.00 0.00 8205164 4963196 61.96 java
07:59:43 PM 1000 11757 2.00 0.00 8205164 4963196 61.96 java
07:59:44 PM 1000 11757 0.00 0.00 8205164 4963196 61.96 java
minflt/s: 每秒次缺頁錯誤次數(minor page faults),次缺頁錯誤次數意即虛拟記憶體位址映射成實體記憶體位址産生的page fault次數
majflt/s: 每秒主缺頁錯誤次數(major page faults),當虛拟記憶體位址映射成實體記憶體位址時,相應的page在swap中,這樣的page fault為major page fault,一般在記憶體使用緊張時産生
VSZ: 該程序使用的虛拟記憶體(以kB為機關)
RSS: 該程序使用的實體記憶體(以kB為機關)
%MEM: 該程序使用記憶體的百分比
Command: 拉起程序對應的指令
pidstat -p 11757 -d 1 10
Linux 3.10.0-514.26.2.el7.x86_64 (spider-competitor-1.real.bj.aly) 06/02/2020 _x86_64_ (4 CPU)
07:59:58 PM UID PID kB_rd/s kB_wr/s kB_ccwr/s Command
07:59:59 PM 1000 11757 0.00 0.00 0.00 java
08:00:00 PM 1000 11757 0.00 0.00 0.00 java
08:00:01 PM 1000 11757 0.00 0.00 0.00 java
08:00:02 PM 1000 11757 0.00 0.00 0.00 java
08:00:03 PM 1000 11757 0.00 0.00 0.00 java
08:00:04 PM 1000 11757 0.00 0.00 0.00 java
08:00:05 PM 1000 11757 0.00 0.00 0.00 java
kB_rd/s: 每秒程序從磁盤讀取的資料量(以kB為機關)
kB_wr/s: 每秒程序向磁盤寫的資料量(以kB為機關)
Command: 拉起程序對應的指令