您的位置:首页 > 其它

Ubuntu修改swap交换空间

2016-07-17 16:38 218 查看
原文链接: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有读写权限。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: