要瞭解 Linux/UNIX 的記憶體使用狀況,可以用 vmstat 工具,以下詳述這個工具的用法:
#>vmstat 2
Tip: 每2秒蒐集一次資訊
範例一,CPU & RAM 負載低
[root@deki ~]# vmstat 2 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 60 163016 252108 363996 0 0 4 172 23 16 2 3 94 0 0 0 0 60 163016 252108 363996 0 0 0 60 1025 248 0 0 100 0 0 0 0 60 163016 252108 364000 0 0 0 0 1073 416 3 4 94 0 0 0 0 60 163016 252108 364000 0 0 0 0 1042 248 0 0 100 0 0 0 0 60 163016 252108 364000 0 0 0 54 1030 249 0 0 99 0 0 0 0 60 163016 252108 364000 0 0 0 0 1032 247 0 1 100 0 0 0 0 60 163016 252108 364000 0 0 0 0 1035 228 0 0 100 0 0 0 0 60 162892 252108 364000 0 0 0 12 1041 516 12 68 21 0 0 0 0 60 162892 252108 364000 0 0 0 0 1020 240 0 0 100 0 0 0 0 60 162892 252108 364000 0 0 0 42 1024 249 0 0 100 0 0 0 0 60 162892 252108 364000 0 0 0 0 1035 248 0 0 100 0 0 0 0 60 162892 252108 364000 0 0 0 2 1029 267 0 1 99 0 0 0 0 60 163016 252108 364000 0 0 0 0 1018 219 0 0 100 0 0 0 0 60 163016 252108 364000 0 0 0 12 1026 603 7 8 85 0 0 1 0 60 163016 252108 364004 0 0 0 0 1044 270 0 0 100 0 0 0 0 60 163016 252108 364004 0 0 0 0 1025 267 0 0 100 0 0 7 0 60 162272 252108 364004 0 0 0 54 1026 1127 8 14 78 0 0
範裡二 - CPU 負載高,RAM 負載低
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ r b swpd free buff cache si so bi bo in cs us sy id wa st 13 0 0 204372 46688 3261856 0 0 0 3146 2024 5151 18 82 0 0 0 15 0 0 204248 46708 3261900 0 0 4 3920 1919 5839 17 83 0 0 0 11 1 0 204248 46716 3261956 0 0 6 2940 1868 4863 19 81 0 0 0 16 1 0 209212 46736 3262004 0 0 4 5142 2194 5447 17 83 0 0 0 8 0 0 210332 46776 3262248 0 0 122 3002 2267 5818 15 85 0 0 0 6 0 0 210704 46808 3262300 0 0 0 3090 1982 4658 17 83 0 0 0 11 1 0 211076 46872 3262384 0 0 2 2986 2102 4890 17 83 0 0 0 9 0 0 210952 46884 3262408 0 0 2 0 1815 4891 18 82 0 0 0 6 0 0 210952 46896 3262440 0 0 0 2978 1588 4877 23 77 0 0 0 3 0 0 210828 46920 3262468 0 0 0 2968 1859 4424 18 82 0 0 0 4 0 0 211324 46932 3262580 0 0 0 0 2182 5391 16 84 0 0 0 4 0 0 211324 46976 3262000 0 0 0 2992 1638 3973 17 83 0 0 0 3 0 0 211324 47008 3262060 0 0 0 5190 1838 4707 19 81 0 0 0 9 0 0 211324 47008 3262072 0 0 0 0 1688 5711 39 61 0 0 0 7 0 0 208968 47020 3262072 0 0 0 2974 1389 4076 24 76 0 0 0 2 0 0 206364 47020 3262080 0 0 0 0 1053 3283 40 60 0 0 0 11 0 0 204628 47028 3262080 0 0 0 3020 1995 6525 32 68 0 0 0 4 0 0 199668 47044 3262084 0 0 0 2946 1813 4977 21 79 0 0 0 4 0 0 193344 47064 3262120 0 0 0 2962 2455 6091 15 85 0 0 0 5 0 0 191608 47092 3262316 0 0 0 2980 2255 5560 18 82 0 0 0 10 0 0 188632 47132 3262248 0 0 0 2960 2591 6128 15 85 0 0 0 5 0 0 186524 47168 3262448 0 0 0 3026 2210 5305 19 81 0 0 0 3 0 0 186276 47192 3262328 0 0 0 4 1919 4915 24 76 0 0 0 4 0 0 186028 47216 3262372 0 0 0 2994 1878 4399 19 81 0 0 0 5 0 0 185780 47244 3262412 0 0 0 2970 2001 4915 18 82 0 0 0 5 0 0 185532 47276 3262400 0 0 0 3128 2159 5427 16 84 0 0 0 3 0 0 185532 47284 3262372 0 0 0 0 2173 5393 16 84 0 0 0 3 0 0 185408 47320 3262396 0 0 0 2966 2247 5286 15 85 0 0 0 4 0 0 185284 47340 3262464 0 0 0 2958 2237 5438 15 85 0 0 0
範例三:連接 storage 與 SAN switch 的光纖線發生異常,時好時壞。
CPU - wa 始終大於 0 甚至更高 IO - bi, bo 常有兩者都是 0,bi 偶爾會有高數值出現 NOTE: 當系統有 I/O 行為時,正常狀態 bi 或 bo 應該都是連續有數值,不應該會是 0
Tips:
r - 執行中或等待執行的程序數量
b - 未中斷的休眠中程序數量,例如等待 IO,或正在作 Swaping
swpd - 目前已使用的虛擬記憶(KB)
free - 目前尚未被使用的實體記憶體(KB)
buff - 目前在暫存區用於讀/寫操作的實體記憶體(KB)
cache - 目前對應程序位址空間的實體記憶體(KB)
si - 從 swap disk 讀取到 RAM(KB)
so - 從 RAM 寫入 swap disk(KB)
bi - 從檔案系統或 swap disk 讀取的分頁區塊
bo - 從 RAM 寫到 swap disk 的分頁區塊CPU:
us - User 佔用 CPU %
sy - System 佔用 CPU %
id - Idle 閒置 CPU %
wa - 因為 I/O Waiting CPU %
st - 虛擬機佔用 CPU % (kernel 2.6.1 以後才支援)