Linux下装机后对swap分区的操作

一、提出转换需求

近日博主的某些操作需要大内存,Ubuntu物理内存不足,故磁盘空间转换虚拟内存.
什么是虚拟内存呢?什么是swap呢?我们看看亲爱的度娘怎么说,她说的很好~(✈机票点我)

二、开始转换

转换共有两种方式,无论哪种方式,均应获取Root权限.(操作需谨慎)

1.方式一:用文件作为Swap分区

  • (1) 查看内存信息free -m
    终端输入free -m
alien@Noah-s-Ark:~$ free -m
              total        used        free      shared  buff/cache   available
Mem:           7873        3716         147        2156        4008        1647
Swap:          8081           7        8074
alien@Noah-s-Ark:~$
  • (2)创建一个 Swap 文件

    mkdir /swap
    cd /swap
    sudo dd if=/dev/zero of=swapfile bs=1024 count=1000000

    或 (个人比较喜欢下面这种,方便计算[这两种都是创建1G的Swap文件])

    sudo dd if=/dev/zero of=/root/swapfile bs=1M count=1024

    注:bs应该是单位,count是虚拟内存的大小

    稍微等一丢丢,能看到以下信息:

    记录了1000000+0 的读入  
    记录了1000000+0 的写出  
    1024000000字节(1.0 GB)已复制,27.2124 秒,37.6 MB/秒  

    这个时候在/swap目录下就生成了swapfile文件。
    终端输入:du -h swapfile 可以查看生成的文件swapfile大小为977M.

    alien@Noah-s-Ark:/swap$ du -h swapfile   
    977M    swapfile  
  • (3) 格式化为交换分区文件.
    建立swap的文件系统

    sudo mkswap -f  swapfile 

    注: mkswap是命令,后面的swapfile/swap文件夹下新生成的文件名字

  • (4) 激活swap文件,启用交换分区文件.

    sudo swapon swapfile

     注: swapon是命令,swapfile是文件名字

    free -m 看一下下,这样就添加成功了.

  • (5) 扩展
    长期使用
    使系统开机时自启用,在文件/etc/fstab中添加一行
    如果要一直保持这个新增的swap,通过切换到root,vim /etc/fstab
    在里面增加一句:/swap/swapfile none swap defaults 0 0
    卸载
    如果需要卸载这个 swap 文件,可以进入建立的 swap 文件目录。执行下列命令。
    sudo swapoff swap
    这就卸载了。swapfile文件就可以删除了,否则会提示正在使用或忙 无法删除.

    关于这句话:
    参考1的命令是/swap/swapfile none swap defaults 0 0
    参考2的命令是/swap/swapfile /swap swap defaults 0 0
    个人觉的第二个参数表示原来系统的swap文件夹,如果原系统没有swap文件夹,则用参考1里的命令。如果原系统本来就有/swap文件夹了,也即本来就有swap空间然后又新增加了一个,就用参考2的命令。

2.方式二:新建磁盘分区作为Swap分区
  新建磁盘分区作为swap分区
  在这里,方式二的分区方式不做过多介绍.

注! 创建swap时大小是bs*count,如果bs=1Mcount =1k表示1G,如果bs=1024count=1000000 表示1G.

三、更改Swap后应该进行的优化.

在ubuntu 里面,swappiness的值的大小对如何使用swap分区是有着很大的联系的。swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。两个极端,对于 ubuntu的默认设置,这个值等于60,建议修改为10。具体这样做:

1.查看你的系统里面的swappiness
$ cat /proc/sys/vm/swappiness
不出意外的话,你应该看到是 60

2.修改swappiness值为10
$ sudo sysctl vm.swappiness=10

3.永久修改
上面的只是临时性的修改,在你重启系统后会恢复默认的60,所以,还要做一步:
$ sudo vim /etc/sysctl.conf

在这个文档的最后加上这样一行:
vm.swappiness=10

然后保存,重启。ok,你的设置就生效了。你会发现,现在乌斑兔儿跑得更快了!

注! 关于swappiness再多说一点,swappiness=60的意思就是当物理内存剩余60%的时候就要开始使用swap分区.即swappiness表示物理内存剩余swappiness%的时候开始使用交换分区


!!!版权声明!!!

本系列为博主学心得与体会,所有内容均为原创(✿◡‿◡)

欢迎传播、复制、修改。引用、转载等请注明转载来源。感谢您的配合

用于商业目的,请与博主采取联系,并请与原书版权所有者联系,谢谢!\(≧▽≦)/

我的联系方式:email–> [email protected]

!!!版权声明!!!



生活嘛~ 最重要的就是开心喽~ O(∩_∩)O~~

这里写图片描述


猜你喜欢

转载自blog.csdn.net/aa1209551258/article/details/81672228