一、提出转换需求
近日博主的某些操作需要大内存,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=1M
则count =1k
表示1G
,如果bs=1024
, count=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~~