2

阿里云服务器添加swap分区和删除swap分区

Posted by 撒得一地 on 2016年1月10日 in Linux笔记

使用阿里云服务器也有一段时间了,不过由于对Linux知识了解的比较少,加上服务器稳定性一直都比较好的,所以便很少去折腾服务器。直到最近,站点时常打不开,查了很久的原因,才发现是内存不够导致的:

[root@lmode ~]# cat /var/log/messages | grep mem | more

Jan  3 06:34:49 lmode kernel: lowmem_reserve[]: 0 0 0 0

Jan  3 06:34:49 lmode kernel: Out of memory: Kill process 3300 (httpd) score 255 or sacrifice child

Jan  3 06:36:54 lmode kernel: httpd cpuset=/ mems_allowed=0

Jan  3 06:36:54 lmode kernel: [] out_of_memory+0x263/0x320

Jan  3 06:36:54 lmode kernel: mapped:428 shmem:105 pagetables:1152 bounce:0 

用命令free查看内存使用情况,发现swap分区大小为0,原来阿里云主机默认是没有划分swap分区的。我的服务器物理内存本身就很少,而且又没设置swap分区,运行效果可想而知,稍有点并发量、或者恶意用户探测访问等,网站就很容易卡壳了。

swap是用来做虚拟内存的。虽然swap无法代替物理内存,但不可缺少。swap分区作用:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。

建立swap有两种方法——1.建立分区;2.创建交换文件。运行速度:物理内存 > swap分区 > swap文件。当你的数据盘已经装了很多内容,不方便重新规划的话,也只好使用swap文件了。像我由于只有一块磁盘,而且磁盘已经装了不少内容,所以就没有选择磁盘格式化,而是选择创建swap文件。下面介绍创建swap文件的方法:

创建swap文件

首先,选择你swap文件要放置的位置,比如直接在 根目录/ 下创建或者选择一个目录,如/var

比如我直接在根目录下创建,然后设置swap分区的名称为swapfile:

1.定义swap的大小及位置

[root@lmode logs]# cd /
[root@lmode /]# dd if=/dev/zero of=/swapfile bs=1k count=2048000

上面swapfile为你创建swap文件分区的名称,你可以根据需要改成你自己的名称;bs 即blocksizes,每个块大小为1k;count=2048000,总大小为2G的文件。因为建立swap分区大小的标准一般为物理内存的两倍,而我的内存是1G,所以我选择swap文件大小为2G,当然,也要考虑你硬盘剩余容量的大小。我的硬盘还剩15G,所以再划分2G给swap文件绰绰有余。如果你的内存是0.5G,那么count大小可以选择1024000(1G)。

2.建立swap

[root@lmode /]# mkswap /swapfile

3.启动swap

[root@lmode /]# swapon /swapfile

4.检查是否正确

[root@iZ94aucqfjcZ /]# free -m
             total   used   free  shared  buffers   cached
Mem:           995    145    850    0      5       35
-/+ buffers/cache:     103    891 
Swap:         1999    149   1850 

或者使用swapon -s 命令查看:

[root@iZ94aucqfjcZ /]# swapon -s
Filename    Type    Size    Used    Priority
/swapfile    file    2047996  153276    -1

上面的Swap和/swapfile都分别能看到总容量大小,使用了多少。

5.设置开机时自启用swap分区

修改/etc/fstab使其启动时自动mount,这个操作与swap分区法一样,在/etc/fstab中最后一行增加如下语句:

/swapfile  swap  swap    defaults 0 0

添加方法可以用vi进行编辑,或者直接echo添加:

[root@lmode /]# echo "/swapfile swap swap defaults 0 0" >>/etc/fstab

注意:/swapfile 路径可以修改,可以根据创建的swap文件具体路径来配置。

修改完后具体效果如下:

阿里云服务器添加swap分区和删除swap分区

删除swap分区

如果不再需要swap,可以清理该分区:

[root@lmode /]# swapoff /swapfile

如果你想使用数据盘建立swap分区,可以参考:

http://blog.csdn.net/simplty/article/details/38355257

标签:

上一篇:

下一篇:

相关推荐

2 Comments

Comments are closed. Would you like to contact the author directly?
网站地图|XML地图

Copyright © 2015-2024 技术拉近你我! All rights reserved.
闽ICP备15015576号-1 版权所有©psz.