Ubuntu修改swap交換空間

原文鏈接:http://www.darrenfang.com/2014/01/modify-swap-on-ubuntu-12-04/

新安裝的Ubuntu 12.04 VPS內存爲512M,安裝完MySQL運行一段時間後會出現MySQL停止運行的情況,查看MySQL的錯誤日誌後發現是內存不足。然後用free命令查看系統內存,發現內存已基本耗盡,而且swap區大小爲0。由於網站訪問量並不大,暫時用增加swap區來解決內存不足的問題。

Digital Ocean提供了這方面的教程:How To Add Swap on Ubuntu 12.04

查看swap空間使用情況

sudo swapon -s

由於VPS上面沒有使用swap,得出的結果是一個空的列表:

Filename    Type    Size    Used    Priority

查看硬盤使用情況

df -lh

這是服務器上的輸出,可以看到還有17G的可用空間,有足夠的空間去分配swap空間了。

Filesystem      Size  Used Avail Use% Mounted on
/dev/vda         20G  2.1G   17G  11% /
udev            237M   12K  237M   1% /dev
tmpfs            99M  228K   98M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            246M     0  246M   0% /run/shm

創建並啓用swap文件

sudo dd if=/dev/zero of=/swapfile bs=1024 count=512k

這樣就創建了一個512M的swap文件,文件名是swapfile,放在根目錄下。如果想要更大的swap空間,可以將上述命令中的512改爲合適的值。 接着創建swap交換區。

sudo mkswap /swapfile

根據文件大小,需要稍等一會才能執行完畢。執行完後可以看到類似的輸出:

Setting up swapspace version 1, size = 262140 KiB
no label, UUID=103c4545-5fc5-47f3-a8b3-dfbdb64fd7eb

激活交換文件:

sudo swapon /swapfile

查看swap空間使用情況:

sudo swapon -s

激活成功後的輸出結果是:

Filename        Type        Size    Used    Priority
/swapfile        file        524284  38936   -1

設置開機自動掛載swap文件
這樣設置完,重啓服務器後,swap交換區的信息將丟失。修改/etc/fstab文件可以實現開機自動掛載。

sudo vi /etc/fstab

在文件最下面添加:

/swapfile       none    swap    sw      0       0

修改swappiness參數,提高swap交換區性能

echo 0 | sudo tee /proc/sys/vm/swappiness
echo vm.swappiness = 0 | sudo tee -a /etc/sysctl.conf

設置爲0後,swap僅在內存不足的時候纔會使用,這樣可以提高性能。

設置swap文件訪問權限

sudo chown root:root /swapfile 
sudo chmod 0600 /swapfile

這樣只有root用戶才能對swap有讀寫權限。

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