DigitalOcean:如何在CentOS中添加Swap

admin 2015年05月07日 Linux学习 857次阅读 查看评论

  使用 DigitalOcean 有很长一段时间了,前几天在编译 PHP 的时候出现了进程被 killed 的状况,经过我的吐槽以及和别人交流后发现,是内存耗尽的缘故。其实是因为当时开着 MySQL 进程消耗了不少内存,后来觉得有必要手动添加一下 Swap(交换分区),这样以免以后再编译什么的时候进程被K 。

  关于 Linux 中 Swap(交换分区),类似于 Windows 的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。

  那么如何在 CentOS 中手动添加 Swap 呢?

  1、检查 Swap 空间

  在设置 Swap 文件之前,有必要先检查一下系统里有没有既存的 Swap 文件。

  运行以下命令:

swapon -s

  如果返回的信息概要是空的,则表示 Swap 文件不存在。

  2、检查文件系统

  在设置 Swap 文件之前,同样有必要检查一下文件系统,看看是否有足够的硬盘空间来设置 Swap 。运行以下命令:

df -hal

  检查返回的信息,还剩余足够的硬盘空间即可。

  3、创建并允许 Swap 文件

  下面使用 dd 命令来创建 Swap 文件。

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

  参数解读:

  if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >

  of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >

  bs=bytes:同时设置读入/输出的块大小为bytes个字节

  count=blocks:仅拷贝blocks个块,块大小等于bs指定的字节数。

  4、格式化并激活 Swap 文件

  上面已经创建好 Swap 文件,还需要格式化后才能使用。运行命令:

mkswap /swapfile

  激活 Swap ,运行命令:

swapon /swapfile

  以上步骤做完,再次运行命令:

swapon -s

  你会发现返回的信息概要:

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

  如果要机器重启的时候自动挂载 Swap ,那么还需要修改 fstab 配置。

  用 vim 打开 /etc/fstab 文件,在其最后添加如下一行:

/swapfile swap swap defaults 0 0

  最后,赋予 Swap 文件适当的权限:

chown root:root /swapfile chmod 0600 /swapfile

  同时,我们还可以修改 Linux Swap 空间的 swappiness ,降低对硬盘的缓存。

  Linux 会使用硬盘的一部分做为 Swap 分区,用来进行进程调度–进程是正在运行的程序–把当前不用的进程调成‘等待(standby)’,甚至‘睡眠(sleep)’,一旦要用,再调成‘活动(active)’,睡眠的进程就会在 Swap 分区,把内存空出来让给‘活动’的进程。

  如果内存够大,应当告诉 Linux 不必太多的使用 Swap 分区,可以通过修改 swappiness 的参数来设置。swappiness=0 的时候表示最大限度使用物理内存,然后才是 Swap 空间,swappiness=100 的时候表示积极的使用 Swap 分区,并且把内存上的数据及时的搬运到 Swap 空间里面。

  在 CentOS 中,swappiness 的默认值是60。

  通过以下命令可以看到:

cat /proc/sys/vm/swappiness

  返回值60

  我们可以调整 swappiness 的值到一个合适的参数,从而达到最优化使用 Swap 的目的。这里我们将其设为10。

  使用 sysctl 命令:

sysctl vm.swappiness=10

  但是这只是临时性的修改,在你重启系统后会恢复默认的60,要永久设置,还需要在 vim 中修改sysctl.conf:

vi /etc/sysctl.conf

  在这个文档的最后加上这样一行:

# Search for the vm.swappiness setting. Uncomment and change it as necessary.vm.swappiness=10

  输入:x,保存退出 vim 。

  这样一来,Swap 分区重启后都会生效了。

« 上一篇 下一篇 » admin原创文章,转载请注明出处! 标签:DigitalOcean如何在CentOS中添加Swap

相关日志:

«   2019年11月   »
123
45678910
11121314151617
18192021222324
252627282930
控制面板
您好,欢迎到访网站!
  [查看权限]
网站分类
文章归档
网站收藏
友情链接
图标汇集
  • 又拍云
  • 订阅ipvb的RSS 2.0聚合