LInux下的交換分區以及相關查看命令

linux下SWAP爲交換分區,也就是虛擬內存;

當linux系統的物理內存不夠的時候,就需要將物理內存中的一些東西釋放出來,以供當前程序使用;

那些被釋放的空間可能來自於一些很長沒有什麼操作的程序,被釋放出來的空間中保存的內容就會被臨時放入swap中;

等到那些程序要運行時,再從swap中恢復保存的數據。

具體swap分區的大小設置問題參考Linux交換分區設置多大爲好?

如何查看系統的swap分區?

1. 使用free命令;用以顯示當前系統未使用的和已使用的內存數目,還可以顯示被內核使用的內存緩衝區。

-b:以Byte爲單位顯示內存使用情況;
-k:以KB爲單位顯示內存使用情況;
-m:以MB爲單位顯示內存使用情況;
-o:不顯示緩衝區調節列;
-s<間隔秒數>:持續觀察內存使用狀況;
-t:顯示內存總和列;
-V:顯示版本信息。

一般比較常用的是free -m, 執行結果如下:

      total   used    free    shared    buff/cache   available
Mem:   7865   3025    203     754        4636        3775
Swap:  17578  60      17518

因爲是以MB爲單位,可以看到我這裏的縱內存是8GB,已經使用的是3GB左右,free表示物理內存中剩餘的實際空間,而available則包含了緩存或緩衝區域的內存,大致計算就是free+buff/cache, 因此,available都比free要大很多。shared表示當前已經廢棄不用的內存。第二行swap表示交換分區中的內存情況。

這裏簡單總結一下buffer和cache的區別,想要詳細瞭解的可以參考這篇文章:
buffer和cache怎麼讓你們解釋的那麼難理解?簡單來講,buffer一個是緩衝,cache是緩存。因爲硬件上的區別,在電腦內部信息交換的時候就存在速度的快慢問題,有的設備快有的設備慢。那麼爲了提高效率,就需要設置一個專門的區域來對兩個快慢不一致的區域進行交流。buffer爲當傳輸速度較快的設備向傳輸較慢的設備進行數據傳輸時,可以現將內存放置在buffer中,這樣就無需等待慢設備,而慢設備也可以在需要數據時隨時從buffer中拿; 同理,當慢設備向快設備進行數據輸送時,由於其速度太慢,快設備就需要等,但是如果有cache,就可以在第一次傳輸時就將數據放在cache中,等到第二次第三次需要同樣的內容時就可以更快。

2. top命令也可以實時動態地查看系統的整體運行情況。

使用方法爲top (選項), 具體的參考選項如下:

-b:以批處理模式操作;
-c:顯示完整的治命令;
-d:屏幕刷新間隔時間;
-I:忽略失效過程;
-s:保密模式;
-S:累積模式;
-i<時間>:設置間隔時間;
-u<用戶名>:指定用戶名;
-p<進程號>:指定進程;
-n<次數>:循環顯示的次數。

常見的如: top -d 1 ,即爲每1s刷新一下數據,顯示內存的實時使用情況。可以用在debug時觀察線程的佔用內存情況等等。

實例:

top - 09:44:56 up 16 days, 21:23,  1 user,  load average: 9.59, 4.75, 1.92
Tasks: 145 total,   2 running, 143 sleeping,   0 stopped,   0 zombie
Cpu(s): 99.8%us,  0.1%sy,  0.0%ni,  0.2%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   4147888k total,  2493092k used,  1654796k free,   158188k buffers
Swap:  5144568k total,       56k used,  5144512k free,  2013180k cached

主要內容解釋如下:

Tasks: 145 total[總進程數],
2 running[正在運行的進程數],
Cpu(s): 99.8%us[用戶空間佔用CPU百分比],
0.1%sy[內核空間佔用CPU百分比],
0.0%ni[用戶進程空間內改變過優先級的進程佔用CPU百分比],
0.2%id[空閒CPU百分比], 0.0%wa[等待輸入輸出的CPU時間百分比],
Mem: 
4147888k total[物理內存總量],
2493092k used[使用的物理內存總量],
1654796k free[空閒內存總量],
158188k buffers[用作內核緩存的內存量]
Swap:  5144568k total[交換區總量],
56k used[使用的交換區總量],
5144512k free[空閒交換區總量],
2013180k cached[緩衝的交換區總量],

更多linux命令解釋可以參考linux命令大全

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章