轉:Linux check mem,cpu,Swap
1.什麼是swap
inux作業系統將實體記憶體分為多個小的記憶體塊,稱之為頁(pages). 當應用請求的實體記憶體不夠分配時,作業系統會將一段時間之內不用的記憶體頁交換至swap分割槽,從而為應用釋放記憶體空間。
Swap對於系統過來說非常重要:
1.首先,當主記憶體不夠用時,作業系統可以swap out一部分記憶體頁,迅速為當前急需記憶體的應用或者程式分配記憶體; 2.其次,某些記憶體頁只在應用初始化階段用到,之後可能就不再使用了,作業系統可以將這些記憶體頁swap out,從而為應用或者磁碟cache騰出更多的記憶體空間;
2.swap會帶來哪些問題
我們知道,計算機磁碟I/O通常是系統的瓶頸所在。主記憶體的讀寫速度是納秒級別,而磁碟讀寫速度是毫秒級別,兩者相差3、4個數量級。然而,即使是當前廣泛使用的SSD,讀寫速度相比主記憶體或者CPU cache也相差2、3個數量級。系統發生swap交換越多,那麼系統自然也越慢。
特別對於web伺服器來說,都是面對使用者的互動式應用,因此響應速度尤其重要。如果系統經常因為swap交換而變得響應遲鈍,那麼使用者體驗效果可想而知。
總結成一句話:swap分割槽要有,在關鍵時刻不至於讓你的應用因為記憶體不夠用而被作業系統OOM KILLER幹掉;但是不到關鍵時刻不要進行swap交換,因為這些操作會影響系統的響應速度。
關於swap的swap in和swap out可以從vmstat命令檢視(si表示swap in, so表示swap out).參考: http://xiaobaoqiu.github.io/blog/2015/01/26/vmstatgong-ju/
3.檢視swap佔用
free命令, 參考: http://xiaobaoqiu.github.io/blog/2014/09/04/linux-memory-usage/
4.找到swap佔用元兇
Linux系統中有一個檔案smaps檔案,記錄了當前程式所對應的記憶體映像資訊,路徑為/proc/$pid/smaps.以本機的一個執行緒為例子:
其中Swap表示這個執行緒佔有Swap的情況.
檢視swap的佔有情況的指令碼,按照佔用swap的佔用多少從高到底排序:
然後執行:
5.清除被佔用的swap
在我們明確知道哪些程式吃swap以後,接下來的問題就是我們如何釋放這些swap,釋放swap的意思就是把交換到swap中的資料swap in到實體記憶體頁中。
1.重啟吃swap的服務,比如重啟一下我們的java程式; 2.swapoff + swapon 這個方法的好處是,不用重啟服務,但是需要確保現在有足夠的實體記憶體可以容下從swap中釋放出來的資料。下面給出了swapoff和swapon的具體做法,注意看swapoff後和swapon後,free的輸出有什麼異同; sudo /sbin/swapoff -a sudo /sbin/swapon -a swapoff後,free的輸出裡,swap分割槽的大小變為0,佔用變為0,也就是說swap分割槽中的資料已經釋放到實體記憶體中,同時swap分割槽被禁用。swapon後,free的輸出裡,swap分割槽的容量又恢復了 ,也就是說swap分割槽重新被啟用了。當然我們可以把這兩個命令寫到一起: sudo /sbin/swapoff -a && sudo /sbin/swapon -a http://xiaobaoqiu.github.io/blog/2015/06/23/linux-swap/ http://blog.csdn.net/longerzone/article/details/8015941 http://www.cnblogs.com/lidabo/p/4738113.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14710393/viewspace-2131566/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- unix CPU、Disk、Mem、Swap檢視工具
- 2.linux monitor cpu&mem收集資料Linux
- db2 cpu mem選型DB2
- [Shell] monitor cpu&mem收集資料
- 檢視linux系統版本,核心,CPU,MEM,位數的相關命令Linux
- (轉) linux下增加swap分割槽Linux
- unix linux 下彙總單一使用者 cpu mem 使用率 等維護資訊Linux
- FreeBSD和Linux共享swap分割槽(轉)Linux
- Linux新增SWAPLinux
- linux swap(交換)Linux
- linux 禁止swap交換Linux
- Linux Swap擴容Linux
- linux下新增SWAPLinux
- linux 增加swap大小!Linux
- 【轉載】【AIX】AIX常用命令之檢視cpu/memory/swap/network/disk資訊AI
- LINUX 建立swap空間Linux
- linux 修改swap空間Linux
- Linux 建立swap分割槽Linux
- Linux增加swap空間Linux
- Linux 增加 swap 分割槽Linux
- linux新增swap分割槽Linux
- 擴充linux swap空間Linux
- Linux之 增加swap空間Linux
- linux下增加swap分割槽Linux
- 使用磁碟為Linux新增swapLinux
- linux 增加 刪除swap方法Linux
- 手工為Linux新增swap大小Linux
- Linux2.6對新型CPU的支援(2)(轉)Linux
- swap分割槽的知識(轉)
- Linux系統調整swap大小Linux
- Linux交換空間swap講解Linux
- Linux記憶體、Swap、Cache、BufferLinux記憶體
- 在Linux中增加swap空間Linux
- Linux swap 佔用分析指令碼Linux指令碼
- Linux環境下Swap配置方法Linux
- 增加、刪除、修改LINUX SWAP區Linux
- LINUX SWAP的檢視與維護Linux
- Linux系統中管理Swap分割槽Linux