[root@tyzz ~]# w
23:13:58 up 11 days, 9:15, 1 user, load average: 0.00, 0.01, 0.05
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 23:03 6.00s 0.02s 0.00s w
[root@tyzz ~]# uptime
23:14:04 up 11 days, 9:15, 1 user, load average: 0.00, 0.01, 0.05
[root@tyzz ~]# ^C
[root@tyzz ~]#
[root@tyzz ~]# vmstat 1 5
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 105532 124448 436356 0 0 1 23 5 27 0 0 99 0 0
0 0 0 105524 124448 436356 0 0 0 0 132 286 1 0 99 0 0
0 0 0 105524 124448 436356 0 0 0 0 126 272 0 0 100 0 0
4 0 0 102964 124452 436352 0 0 0 28 229 585 3 3 94 0 0
0 0 0 105276 124452 436356 0 0 0 32 227 528 2 4 94 0 0
si:從交換分區到記憶體,so:從記憶體到交換分區;bi:從硬碟到記憶體,bo:從記憶體到硬碟;
如果bi,bo值很大 看是什麼程序導緻io高。 可以用指令 iotop 看看。如果沒有這指令,yum install iotop 安裝
top指令
第一行,任務隊列資訊,同 uptime 指令的執行結果,具體參數說明情況如下:
14:06:23 — 目前系統時間
up 70 days, 16:44 — 系統已經運作了70天16小時44分鐘(在這期間系統沒有重新開機過的吆!)
2 users — 目前有2個使用者登入系統
load average: 1.15, 1.42, 1.44 — load average後面的三個數分别是1分鐘、5分鐘、15分鐘的負載情況。
load average資料是每隔5秒鐘檢查一次活躍的程序數,然後按特定算法計算出的數值。如果這個數除以邏輯CPU的數量,結果高于5的時候就表明系統在超負荷運轉了。
第二行,Tasks — 任務(程序),具體資訊說明如下:
系統現在共有206個程序,其中處于運作中的有1個,205個在休眠(sleep),stoped狀态的有0個,zombie狀态(僵屍)的有0個。
第三行,cpu狀态資訊,具體屬性說明如下:
5.9%us — 使用者空間占用CPU的百分比。
3.4% sy — 核心空間占用CPU的百分比。
0.0% ni — 改變過優先級的程序占用CPU的百分比
90.4% id — 空閑CPU百分比
0.0% wa — IO等待占用CPU的百分比
0.0% hi — 硬中斷(Hardware IRQ)占用CPU的百分比
0.2% si — 軟中斷(Software Interrupts)占用CPU的百分比
備注:在這裡CPU的使用比率和windows概念不同,需要了解linux系統使用者空間和核心空間的相關知識!
第四行,記憶體狀态,具體資訊如下:
32949016k total — 實體記憶體總量(32GB)
14411180k used — 使用中的記憶體總量(14GB)
18537836k free — 空閑記憶體總量(18GB)
169884k buffers — 緩存的記憶體量 (169M)
第五行,swap交換分區資訊,具體資訊說明如下:
32764556k total — 交換區總量(32GB)
0k used — 使用的交換區總量(0K)
32764556k free — 空閑交換區總量(32GB)
3612636k cached — 緩沖的交換區總量(3.6GB)
備注:
第四行中使用中的記憶體總量(used)指的是現在系統核心控制的記憶體數,空閑記憶體總量(free)是核心還未納入其管控範圍的數量。納入核心管理的記憶體不見得都在使用中,還包括過去使用過的現在可以被重複利用的記憶體,核心并不把這些可被重新使用的記憶體交還到free中去,是以在linux上free記憶體會越來越少,但不用為此擔心。
如果出于習慣去計算可用記憶體數,這裡有個近似的計算公式:第四行的free + 第四行的buffers + 第五行的cached,按這個公式此台伺服器的可用記憶體:18537836k +169884k +3612636k = 22GB左右。
對于記憶體監控,在top裡我們要時刻監控第五行swap交換分區的used,如果這個數值在不斷的變化,說明核心在不斷進行記憶體和swap的資料交換,這是真正的記憶體不夠用了。
第六行,空行。
第七行以下:各程序(任務)的狀态監控,項目列資訊說明如下:
PID — 程序id
USER — 程序所有者
PR — 程序優先級
NI — nice值。負值表示高優先級,正值表示低優先級
VIRT — 程序使用的虛拟記憶體總量,機關kb。VIRT=SWAP+RES
RES — 程序使用的、未被換出的實體記憶體大小,機關kb。RES=CODE+DATA
SHR — 共享記憶體大小,機關kb
S — 程序狀态。D=不可中斷的睡眠狀态 R=運作 S=睡眠 T=跟蹤/停止 Z=僵屍程序
%CPU — 上次更新到現在的CPU時間占用百分比
%MEM — 程序使用的實體記憶體百分比
TIME+ — 程序使用的CPU時間總計,機關1/100秒
COMMAND — 程序名稱(指令名/指令行)
敲擊鍵盤“x”(打開/關閉排序列的加亮效果
通過”shift + >”或”shift + <”可以向右或左改變排序列
SCO_SV scosysv 3.2v5.0.5 i80386 10/01/2001
11:06:43 device %busy avque r+w/s blks/s avwait avserv (-d)
11:07:13 wd-0 1.47 2.75 4.67 14.73 5.50 3.14
11:07:43 wd-0 0.43 18.77 3.07 8.66 25.11 1.41
11:08:13 wd-0 0.77 2.78 2.77 7.26 4.94 2.77
11:08:43 wd-0 1.10 11.18 4.10 11.26 27.32 2.68
11:09:13 wd-0 1.97 21.78 5.86 34.06 69.66 3.35
Average wd-0 1.15 12.11 4.09 15.19 31.12 2.80
顯示内容包括:
device: sar指令正在監視的塊裝置的名字。
%busy: 裝置忙時,傳送請求所占時間的百分比。
avque: 隊列站滿時,未完成請求數量的平均值。
r+w/s: 每秒傳送到裝置或從裝置傳出的資料量。
blks/s: 每秒傳送的塊數,每塊512位元組。
avwait: 隊列占滿時傳送請求等待隊列空閑的平均時間。
avserv: 完成傳送請求所需平均時間(毫秒)。