[[email protected] ~]# free -m total used free shared buffers cached Mem: 2004 573 1431 0 47 201 -/+ buffers/cache: 323 1680 Swap: 1983 0 1983從輸出結果可以看到,該系統共 2GB 記憶體,其中系統空閒記憶體還有 1431MB,並且 swap 交換分割區還未使用,因此可以判斷出當前系統的記憶體資源還非常充足。
[[email protected] ~]# free -m -s 5 total used free shared buffers cached Mem: 2004 571 1433 0 47 202 -/+ buffers/cache: 321 1683 Swap: 1983 0 1983 total used free shared buffers cached Mem: 2004 571 1433 0 47 202 -/+ buffers/cache: 321 1683 Swap: 1983 0 1983 #省略後續輸出要想實現動態地監控記憶體使用狀況,除了使用 free 命令提供的 -s 選項,還可以借助 watch 命令。通過給 watch 命令後面新增需要執行的命令,watch 就會自行重複去執行這個命令(預設 2 秒執行一次),例如:
[[email protected] ~]# watch -n 3 -d free Every 3.0s: free Tue Oct 29 03:05:43 2019 total used free shared buffers cached Mem: 2052988 586504 1466484 0 49184 207360 -/+ buffers/cache: 329960 1723028 Swap: 2031608 0 2031608上面執行的命令中,-n 選項用於執行重複執行的間隔時間,-d 選項用於在顯示資料時,高亮顯示變動了的資料。
[[email protected] ~]# vmstat 2 3 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 0 1436128 53004 210744 0 0 7 0 13 14 0 0 100 0 0 1 0 0 1436112 53004 210744 0 0 0 0 128 226 0 0 100 0 0 0 0 0 1435988 53004 210744 0 0 0 0 144 220 1 0 99 0 0對於記憶體的監控,我們只需要重點關注 swpd、si 和 so 這 3 列。從此輸出結果可以看出,當前系統中,虛擬記憶體沒有使用,硬碟和記憶體之間沒有交換資料,可見記憶體資源處於空閒狀態。
如下是執行“sar -r”命令的輸出結果:有關 sar 命令的基本用法,可以閱讀《Linux sar命令》一文做詳細了解。
[[email protected] ~]# sar -r 2 3 Linux 2.6.32-431.el6.x86_64 (localhost) 10/29/2019 _x86_64_ (8 CPU) 04:54:20 AM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit 04:54:22 AM 1218760 834228 40.63 53228 424908 738312 18.08 04:54:24 AM 1218744 834244 40.64 53228 424908 738312 18.08 04:54:26 AM 1218712 834276 40.64 53228 424908 738312 18.08 Average: 1218739 834249 40.64 53228 424908 738312 18.08此輸出結果中,各個參數列示的含義如下: