Swap用途:
Swap意思是交換分區,通常我們說的虛擬內存,是從硬盤中划分出的一個分區。當物理內存不夠用的時候,內核就會釋放緩存區(buffers/cache)里一些長時間不用的程序,然后將這些程序臨時放到Swap中,也就是說如果物理內存和緩存區內存不夠用的時候,才會用到Swap。
swap清理:swapoff -a && swapon -a
注意:這樣清理有個前提條件,空閑的內存必須比已經使用的swap空間大
建議 swap 分區的大小是內存的兩倍,但不超過 2GB。但是有時服務器的訪問量確實很大,有可能出現 swap 分區不夠用的情況,所以我們需要學習 swap 分區的構建方法。建立新的 swap 分區,只需要執行以下幾個步驟。
- 分區:不管是 fdisk 命令還是 parted 命令,都需要先區。
- 格式化:格式化命令稍有不同,使用 mkswap 命令把分區格式化成 swap 分區。
- 使用 swap 分區。
實例操作后續添加......
----------------------------------------------------------------------------
Linux的SWAP分區空間不夠用的情況下,如何添加SWAP分區
通常情況下,SWAP空間應大於或等於物理內存的大小,最小不應小於64M,通常應是物理內存的2-2.5倍。但根據不同的應用,應有不同的配置。如果是小的桌面系統,則只需要較小的SWAP空間,而大的服務器系統則視情況不同需要不同大小的SWAP空間。特別是數據庫服務器和Web服務器,隨着訪問量的增加,對SWAP空間的要求也會增加。
方式一、通過新建磁盤文件的方式增加SWAP空間:
>> dd if=/dev/zero of=swapfree bs=32k count=32768 #新建一個磁盤文件(32*32768=1048576KB,亦等於1024MB)。 >> /sbin/mkswap /home/swap #格式化成SWAP分區 >> /sbin/swapon /home/swap #啟動新的SWAP分區 >> /sbin/swapon -s #檢查SWAP分區
現在再用free -m命令查看一下內存和swap分區大小,就發現增加了1024M的空間了。不過當計算機重啟了以后,發現swap還是原來那么大,新的swap沒有自動啟動,還要手動啟動。那我們需要修改/etc/fstab文件,增加如下一行
/home/swap swap swap defaults 0 0
方式二、通過磁盤分區增加SWAP空間:
> /sbin/mkswap /dev/sdb1 #格式化成SWAP分區 > /sbin/swapon /dev/sdb1 #啟動新的SWAP分區 > /sbin/swapon -s #檢查SWAP分區
修改/etc/fstab文件,讓其永久生效:
/dev/sdb1 swap swap defaults 0 0
二、查看緩存區及內存使用情況
free 命令主要是用來査看內存和 swap 分區的使用情況的,其中:
- total:是指總數;
- used:是指已經使用的;
- free:是指空閑的;
- shared:共享內存(Shared memory),主要用於在UNIX 環境下不同進程之間共享數據,是進程間通信的一種方法,一般的應用程序不會申請使用共享內存
- buffers:是指緩沖內存數;
- cached:是指緩存內存數,單位是KB;
[root@localhost ~]# free -m total used free shared buffers cached Mem: 257853 48822 209030 0 594 43939 -/+ buffers/cache: 4288 253564 Swap: 30719 0 30719
buffers和cached解釋:
buffer和cache都是內存中的一塊區域,
當CPU需要寫數據到磁盤時,由於磁盤速度比較慢,所以CPU先把數據存進buffer,
然后CPU去執行其他任務,buffer中的數據會定期寫入磁盤;
當CPU需要從磁盤讀入數據時,由於磁盤速度比較慢,
可以把即將用到的數據提前存入cache,CPU直接從Cache中拿數據要快的多。
參考文檔: http://blog.sina.com.cn/s/blog_af6bb6bc0102v1ik.html
https://www.cnblogs.com/kevingrace/p/5991604.html