天天看點

linux添加swap分區的方法

  一.swap交換分區

   Swap分區在系統的實體記憶體不夠用的時候,把硬碟空間中的一部分空間釋放出來,以供目前運作的程式使用。那些被釋放的空間可能來自一些很長時間沒有什麼操作的程式,這些被釋放的空間被臨時儲存到Swap分區中,等到那些程式要運作時,再從Swap分區中恢複儲存的資料到記憶體中。

   用于當實體記憶體不足時,調用硬碟的一部分來充當記憶體使用,這個就是所謂的虛拟記憶體。其類似Windows的pagesfile.sys.

         二.swap分區大小

       分區時一般設定:swap分區的大小=1.5*實體記憶體容量。當記憶體比較小的時候(8G或8G以下),可以為記憶體的1.5-2倍(因為記憶體小的時候,記憶體很容易被充滿,這個時候就要把交換分區分大點)。

      正常情況下,當記憶體充足的時候,swap分區是不會被使用的,是以,一旦發生記憶體充足時,而swap使用了很多,說明應用程式等程序有記憶體洩露,此時就要和開發程式人員一起來分析哪裡記憶體洩露,當系統使用swap分區用的越多,系統性能反而會下降,某些大型資料庫也可能不使用swap分區,也是可以考慮的,不過,這也會帶來記憶體耗盡,服務直接挂掉的風險。而swap是記憶體不夠時的一個緩沖地帶。雖然慢,伺服器不會挂掉,這點就仁者見仁了。

      三.linux中增加swap分區檔案的步驟方法:

1、檢查目前的分區情況(使用free -m或cat /proc/swaps ):

<code>[root@master ~]</code><code># free -m</code>

<code>             </code><code>total       used       </code><code>free</code>     <code>shared    buffers     cached</code>

<code>Mem:           980        872        108          0         46        726</code>

<code>-/+ buffers</code><code>/cache</code><code>:         99        881</code>

<code>Swap:         1499          0       1499</code>

2、增加交換分區檔案及大小:

檢查沒有swap,下面就需要增加:

判定新交換檔案的大小,将大小乘以1024來判定塊的大小。例如,大小為64MB的交換檔案的塊大小為65536,在 shell 提示下以根使用者身份鍵入以下指令,其中的 count 等于想要的塊大小。  

<code>[root@iZ2zee7gmybverl53rfZ ~]</code><code># dd if=/dev/zero of=/var/swap bs=1024 count=1024000</code>

<code>1024000+0 records </code><code>in</code>

<code>1024000+0 records out</code>

<code>1048576000 bytes (1.0 GB) copied, 27.1894 s, 38.6 MB</code><code>/s</code>

<code>[root@iZ2zee7gmybverl53rfZ ~]</code><code># ll /var/swap </code>

<code>-rw-r--r-- 1 root root 1048576000 Nov 16 14:20 </code><code>/var/swap</code>

<code>[root@iZ2zee7gmy40tbverl53rfZ ~]</code><code># ll -h  /var/swap </code>

<code>-rw-r--r-- 1 root root 1000M Nov 16 14:20 </code><code>/var/swap</code>

3.使用以下指令來設定交換檔案:

<code>[root@iZ2zee7gmybverl53rfZ ~]</code><code># mkswap /var/swap </code>

<code>mkswap: </code><code>/var/swap</code><code>: warning: don't erase bootbits sectors</code>

<code>        </code><code>on whole disk. Use -f to force.</code>

<code>Setting up swapspace version 1, size = 1023996 KiB</code>

<code>no label, UUID=fe9d1189-aaa7-4744-a056-5126ee051632</code>

<code>[root@iZ2zee7gmy40tbverl53rfZ ~]</code><code>#</code>

4.啟用交換分區檔案:

要立即啟用交換檔案而不是在引導時自動啟用,使用以下指令:

 [root@db2 root]# swapon /home/swap

檢查增加後的交換情況: 

5.加入開機挂載

要在引導時啟用,編輯 /etc/fstab 檔案來包含以下行(/var/swap               swap                    swap    defaults        0 0 ):

<code>[root@iZ2zee7gmybverl53rfZ ~]</code><code># cp /etc/fstab /etc/fstab.bak    </code>

<code>###操作挂載檔案時,一定要備份,否則修改失敗時,會造成不能開機的危險。</code>

<code>[root@iZ2zee7gmy40tbverl53rfZ ~]</code><code># ll /etc/fstab*                ###備份完畢後,檢查是否備份成功</code>

<code>-rw-r--r-- 1 root root 693 Nov 16 14:28 </code><code>/etc/fstab</code>

<code>-rw-r--r-- 1 root root 617 Nov 16 14:27 </code><code>/etc/fstab</code><code>.bak</code>

<code>[root@iZ2zee7gmybverl53rfZ ~]</code><code># cat /etc/fstab                  ##            修改完挂載檔案後檢視</code>

<code>[root@master ~]</code><code># cat /etc/fstab </code>

<code>#</code>

<code># /etc/fstab</code>

<code># Created by anaconda on Mon Sep 25 15:36:47 2017</code>

<code># Accessible filesystems, by reference, are maintained under '/dev/disk'</code>

<code># See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info</code>

<code>UUID=16374817-681c-4c75-95dd-a6fe323ceb03 /                       ext4    defaults        1 1</code>

<code>UUID=53605068-3d62-4c37-9d51-29b9e7927b01 </code><code>/boot</code>                   <code>ext4    defaults        1 2</code>

<code>UUID=e9e1c650-32df-40be-912b-00231844173a swap                    swap    defaults        0 0</code>

<code>tmpfs                   </code><code>/dev/shm</code>                <code>tmpfs   defaults        0 0</code>

<code>devpts                  </code><code>/dev/pts</code>                <code>devpts  gid=5,mode=620  0 0</code>

<code>sysfs                   </code><code>/sys</code>                    <code>sysfs   defaults        0 0</code>

<code>proc                    </code><code>/proc</code>                   <code>proc    defaults        0 0</code>

<code>/tmp/swap</code>               <code>swap                    swap    defaults        0 0</code>

系統下次引導時,它就會啟用建立的交換檔案   。       

再次檢查添加後的情況:

<code>[root@master ~]</code><code># free  -m</code>

<code>Mem:           980        111        868          0          9         27</code>

<code>-/+ buffers</code><code>/cache</code><code>:         74        906</code>

<code>Swap:         2499          0       2499</code>

<code></code>

本文轉自 藍葉子Sheep 51CTO部落格,原文連結:http://blog.51cto.com/dellinger/1983692,如需轉載請自行聯系原作者

繼續閱讀