用Ubuntu已经将近1年了,最近重装了16.04之后,每天到下午5点左右,都会发现Swap交换空间有几百兆的写入,系统内存8G,硬盘是SSD,i5处理器,配置中档,也没有启动什么大型软件,就是用IDEA做开发,虽然没有影响,但本着一颗求知的心,google一下,第一篇是《All about Linux swap space》,口气很大,直接翻译了。 Linux将随机存储RAM称为内存页。交换技术就是将一页内存复制到预先设定的硬盘上的交换空间,来释放该页占用内存。物理内存和交换空间的和就是可提供的虚拟内存的总量。
每一行列出的都是系统正在使用的交换空间。这里的’Type’字段表明该交换空间是一个分区而不是文件,通过’Filename’可以知道交换分区是磁盘sda5。’Size’字段磁盘大小,单位是KB,’Used’字段是表示有多少交换空间被使用。’Priority’字段表示Linux系统的交换空间使用优先级。有一个重要的特性,如果在Linux系统中挂载两个(或更多)具有相同优先级的交换空间(最好是两个不同的设备),Linux将交替使用,可以提升交换性能。 交换分区要为系统添加一个额外的交换分区,首先你需要准备一个。第一步是确保分区标记为交换分区,第二步是将格式设置为swap文件系统。将分区标记为swap分区,以root权限运行:
将’/dev/hdb’替换为你的交换分区的磁盘。输出类似于:
如果分区没有标记为swap分区,你需要使用命令
如果运行没有错误,你的交换空间就开始使用。立即激活:
可以通过
检查你的交换空间是无需重新启动,你可以运行 交换文件和交换分区类似,Linux也支持使用交换文件,你可以创建、准备,以交换分区的方式挂载。交换文件的好处是,你不需要找一个空的分区或添加额外的交换分区磁盘。
‘/swapfile’是交换文件的名字,’count’的1048576是文件大小,单位KB。
同样的,挂载交换文件使用
在’/etc/fstab’中输入下面的内容:
交换空间的大小如果你有很大的内存,有可能没有交换空间,系统也能运行良好。但是如果物理内存耗光,系统就会崩溃,因为它没有其他缓解方式,所以最好还是提供一个交换空间,更何况磁盘比内存便宜很多。
Linux 2.6内核中增加一个新的内核参数’swappiness’,管理员可以通过该参数修改Linux交换方式。参数值从0到100.从本质上说,值越大,将引起越多内存页发生交换;值越小,就有越多的应用驻留在内存中,而交换空间是空闲的。内核维护者Andrew Morton说过,他在他的台式机中设置swappiness值是100,说:“我的观点是,通过内核参数降低交换是错误的。你不需要几百兆的无用应用占用内存。把它放在磁盘上,把内存留给有用的东西。”
如果你需要使参数永久有效,就需要修改’/etc/sysctl.conf’中的’vm.swappiness’参数。 结论管理交换空间是系统管理的一个重要方面。有了良好的规划和合理的使用交换技术可以有很多好处。不要害怕实验,并且经常监控你的系统,以确保你得到你需要的结果。 写在最后就目前来说,内存和SSD都开始降价,基本上很轻松就能把机器攒到8G(RAM)+120G(SSD),这样的话,就个人用户的桌面系统而言,交换空间的作用被大大削弱,但是正如上面说的,如果没有交换空间,内存耗光的时候,机器就挂了。因为SSD不建议分多个分区,所以使用swap file的方式比较好,而且还可以多建几个swap file文件,提升交换性能。 |
|
来自: qweertt4747 > 《Linux》