• 为了保证你在浏览本网站时有着更好的体验,建议使用类似Chrome、Firefox之类的浏览器~~
    • 如果你喜欢本站的内容何不Ctrl+D收藏一下呢,与大家一起分享各种编程知识~
    • 本网站研究机器学习、计算机视觉、模式识别~当然不局限于此,生命在于折腾,何不年轻时多折腾一下

阿里云ecs设置swap分区

Linux admin 2年前 (2017-05-20) 1156次浏览 0个评论 扫描二维码

使用 swap 分区也是博主的网站经常挂掉,以前用其他的服务器主要是内存大不会出现啥问题,主要就是 wordpress 服务,现在搬到阿里云,内存只有 1G,其实也跟优化有关,博主不是专业的,查看一下当前的内存占用情况发现没有 swap 分区,阿里云默认不开启 swap 有一定原因,但是又不想买内存(没钱钱),下面就开始设置 swap 分区

Swap 分区,即交换区,系统在物理内存不够时,与 Swap 进行交换。 其实,Swap 的调整对 Linux 服务器,特别是 Web 服务器的性能至关重要。通过调整 Swap,有时可以越过系统性能瓶颈,节省系统升级费用。

分配太多的 Swap 空间会浪费磁盘空间,而 Swap 空间太少,则系统会发生错误。

如果系统的物理内存用光了,系统就会跑得很慢,但仍能运行;如果 Swap 空间用光了,那么系统就会发生错误。例如,Web 服务器能根据不同的请求数量衍生出多个服务进程(或线程),如果 Swap 空间用完,则服务进程无法启动,通常会出现“application is out of memory”的错误,严重时会造成服务进程的死锁。因此 Swap 空间的分配是很重要的。

通常情况下,Swap 空间应大于或等于物理内存的大小,最小不应小于 64M,通常 Swap 空间的大小应是物理内存的 2-2.5 倍。但根据不同的应用,应有不同的配置:如果是小的桌面系统,则只需要较小的 Swap 空间,而大的服务器系统则视情况不同需要不同大小的 Swap 空间。特别是数据库服务器和 Web 服务器,随着访问量的增加,对 Swap 空间的要求也会增加,具体配置参见各服务器产品的说明。

另外,Swap 分区的数量对性能也有很大的影响。因为 Swap 交换的操作是磁盘 IO 的操作,如果有多个 Swap 交换区,Swap 空间的分配会以轮流的方式操作于所有的 Swap,这样会大大均衡 IO 的负载,加快 Swap 交换的速度。如果只有一个交换区,所有的交换操作会使交换区变得很忙,使系统大多数时间处于等待状态,效率很低。用性能监视工具就会发现,此时的 CPU 并不很忙,而系统却慢。这说明,瓶颈在 IO 上,依靠提高 CPU 的速度是解决不了问题的。

下面说一下 linux 添加 swap 交换分区的方法

1、进入一个目录:

cd /var/

2、获取 256M 的文件块:

dd if=/dev/zero of=swapfile bs=1024 count=262144

如果需要添加 2G 的 SWAP 分区,则获取 2G 的文件块:

dd if=/dev/zero of=swapfile bs=1024 count=2097152

3、创建 swap 文件:

/sbin/mkswap swapfile

4、激活 swap 文件:

/sbin/swapon swapfile

5、查看一下 swap 是否正确:

/sbin/swapon -s

6、加到 fstab 文件中让系统引导时自动启动:

vi /etc/fstab

在末尾增加以下内容:/var/swapfile swap swap defaults 0 0
也可以执行如下命令,感觉这样更方便 :echo “/var/swapfile swap swap defaults 0 0” >>/etc/fstab
顺便附上 DD 命令的参数介绍:

7、查看内核参数 vm.swappiness 中的数值是否为 0,如果为 0 则根据实际需要调整成 30 或者 60

cat /proc/sys/vm/swappiness   
sysctl -a | grep swappiness    
sysctl -w vm.swappiness=60

功能:把指定的输入文件拷贝到指定的输出文件中,并且在拷贝过程中可以进行格式转换。可以用该命令实现 DOS 下的 diskcopy 命令的作用。先用 dd 命令把软盘上的数据写成硬盘的一个寄存文件,再把这个寄存文件写入第二张软盘上,完成 diskcopy 的功能。需要注意的是,应该将硬盘上的寄存文件用 rm 命令删除掉。系统默认使用标准输入文件和标准输出文件。

语法:dd [选项]
if =输入文件(或设备名称)。
of =输出文件(或设备名称)。
ibs = bytes 一次读取 bytes 字节,即读入缓冲区的字节数。
skip = blocks 跳过读入缓冲区开头的 ibs*blocks 块。
obs = bytes 一次写入 bytes 字节,即写入缓冲区的字节数。
bs = bytes 同时设置读/写缓冲区的字节数(等于设置 ibs 和 obs)
cbs = byte 一次转换 bytes 字节。
count=blocks 只拷贝输入的 blocks 块。

注意:阿里云默认在启动项里关闭了 SWAP 分区,在/etc/rc.d/rc.local 文件里有一行 swapoff -a ,表示禁用 swap。把这行删掉就好了。


Deeplearn, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明阿里云 ecs 设置 swap 分区
喜欢 (1)
admin
关于作者:

您必须 登录 才能发表评论!