Ubuntu设置Swap分区

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ubuntu设置Swap分区相关的知识,希望对你有一定的参考价值。

参考技术A

前几天尝试用一台新的服务器进行开发,运行两个Node进程后CPU占用率直接上升到100%,开始以为是Node版本问题,切换版本后仍存在这个问题,使用 top 命令查看运行中进程,发现一个名为 kswapd0 的进程占用极高的CPU,这个进程的作用其实是在内存不足时将暂时用不到的数据转存到虚拟内存(Swap分区),而刚好我的服务器没有设置Swap分区,才导致CPU占用率过高,看来问题的原因找到了,接下来只需要设置Swap分区即可。

如果没有任何输出,表明系统没有配置swap

确保有足够的空间创建Swap分区

以上命令会在根目录创建大小为1G的文件,大小可根据需要进行调整,一般取和内存一般大小

验证是否创建成功

修改分区文件的权限,只允许 root 用户进行读取

将其标记为swap分区

启用分区,允许系统开始使用

再次检查系统分区

如果输出类似

表示分区已经创建成功

目前已经在当前会话的启用的swap分区,但是如果系统重新启动,分区就会消失,我们可以通过修改 /etc/fstab 的配置来使分区持久化

swappiness 参数配置系统使用swap分区的频率,数字越小,系统对swap的依赖越小,如果设置为接近0的数字,那么内核只有在绝对必要情况下才会将数据交换到磁盘。应为和硬盘交换数据比RAM慢的多,所以这个数字越小,通常会让系统加快

查看当前swappiness

临时修改swappiness

永久修改(推荐)

/etc/sysctl.conf

增大 vfs_cache_pressure 的值会让系统倾向于删除缓存中inode和dentry信息,进而导致系统频繁访问文件系统,我们可以通过输入以下内容将其设置为更保守的设置,例如50:

只在当前会话生效

永久修改(推荐)

/etc/sysctl.conf

Ubuntu 16.04创建Swap分区或增加Swap分区容量

要在Ubuntu中要创建Swap分区主要有如下2种方式:

一、传统创建方式

一般情况下,我们都会使用dd命令来预先创建交换分区文件,然后再用/dev/zero将该文件的内容全部置零,创建时还将用到bs参数来设置要创建的交换空间大小,以及使用count来指定要创建的block数。

例如,我们要创建4G的交换分区文件可以使用如下命令:

sudo dd if=/dev/zero of=/swapfile bs=1G count=4

二、快速创建方式

你可能已经注意到了,上述方式创建Swap交换文件的过程比较慢,如果想快速创建交换分区可以使用fallocate程序来实现。该命令会立即创建一个预分配的交换文件,而产是按实际大小写入分配的大小。

如果同样是要创建4G大小的交换创建文件,快捷创建方式的命令如下:

sudo fallocate -l 4G /swapfile

三、启用Swap分区文件

我们的swapfile交换文件已经创建好了,但Ubuntu还不知道它是被用作交换分区,所以我们还需要将此文件格式化为Swap分区交启用它。

1、首先,我们需要使用如下命令更改下swapfile文件的权限:

sudo chmod 600 /swapfile

2、然后,我们需要用如下将swapfile初始化为交换文件:

sudo mkswap /swapfile

3、最后,还需要使用如下命令来启用交换文件:

sudo swapon /swapfile

5、查看结果

free -m

6、配置启用时挂载Swap分区文件

Swap交换文件虽然已经配置好并已经启用了,但Ubuntu在重启后是不会挂载我们刚创建的交换分区文件的,因此我们还需要对/etc/fstab文件进行更改,让其在系统启动时就自动挂载我们创建的/swapfile文件。

sudo vim /etc/fstab

添加如下内容:

/swapfile none swap sw 0 0

提示:按【Esc】后输入:":wq!"退出。

7、卸载Swap分区

sudo swapoff /swapfile

三、总结

1、经过测试,无论是有没有创建过Swap分区的,都可以用这个方法进行设置,并且容量是叠加的。

 

参考:

http://www.linuxidc.com/Linux/2014-08/105223.htm(以上内容转自此篇文章)

http://blog.csdn.net/xb_0226/article/details/51185326

http://blog.csdn.net/yanlai20/article/details/46907353

http://blog.csdn.net/mznewfacer/article/details/7334592

以上是关于Ubuntu设置Swap分区的主要内容,如果未能解决你的问题,请参考以下文章

如何扩大ubuntu的swap分区?

用wubi安装Ubuntu如何自定义swap和root虚拟分区大小

阿里云服务器设置swap交换分区

Ubuntu 16.04创建Swap分区或增加Swap分区容量

安装ubuntu的坑

Ubuntu19.08安装