为群晖NAS等Linux设备设置虚拟内存,扩充可用内存容量。
Swap介绍
SWaP是指Linux系统中的交换分区。
Linux中Swap(即:交换分区),类似于Windows的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。Android是基于Linux的操作系统,所以也可以使用Swap分区来提升系统运行效率。
交换分区,英文的说法是swap,意思是“交换”、“实物交易”。它的功能就是在内存不够的情况下,操作系统先把内存中暂时不用的数据,存到硬盘的交换空间,腾出内存来让别的程序运行,和Windows的虚拟内存(pagefile.sys)的作用是一样的。
SWAP就是LINUX下的虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间(也就是SWAP分区)虚拟成内存来使用。
它和Windows系统的交换文件作用类似,但是它是一段连续的磁盘空间,并且对用户不可见。
需要注意的是,虽然这个SWAP分区能够作为"虚拟"的内存,但它的速度比物理内存可是慢多了,因此如果需要更快的速度的话,并不能寄厚望于SWAP,
最好的办法仍然是加大物理内存
。SWAP分区只是临时的解决办法。一种流行的、以讹传讹的说法是,安装Linux系统时,交换分区swap的大小应该是内存的两倍。也就是说,如果内存是2G,那么就应该分出4G的硬盘空间作为交换空间。其实这是严重的浪费。真实的情况是:可以根据你系统内存的大小,以及所使用的程序,自行决定交换分区的大小,甚至可以完全不用交换分区!
设置教程
演示以在群晖NAS系统上设置为例
其他Linux系统基本通用
查看现有虚拟内存
打开群晖的SSH功能,使用终端软件进行连接,并切换到root状态下。
查看现有设备的虚拟内存占用情况
free -h
我这里物理黑群晖安装的是8GB内存,目前只占用了782MB。
创建存储虚拟内存文件的文件夹
打开群晖控制面板--共享文件夹--新增--新增
对照下图创建一个共享文件夹
名称:swap
所在位置:选择你的固态硬盘存储空间(勿在默认的Docker共享文件夹中创建,操作不了。)
勾选下面两个因此选项,取消勾选回收站。
然后点击下一步下一步
下一步
下一步
点击应用
创建完成
打开File Station,选择创建的虚拟内存共享文件夹,右键查看文件夹路径。
设置虚拟内存
在终端软件内执行下面的命令创建虚拟内存文件
#执行时终端会停顿几秒 # if是文件格式,of是虚拟内存文件路径和名字,bs是容量单位,count是容量大小,1G=1024M,演示设置的是增加4096mb(4GB内存),根据自己的硬盘可用空间和自己的需求设置。 #将需要创建的虚拟内存文件路径换成你自己实际的 dd if=/dev/zero of=/volume1/swap/swapfile bs=1M count=4096
创建成功
设置虚拟内存文件权限,确保只有root用户可以读写。
#将后面的路径换成你自己实际的 chmod 600 /volume1/swap/swapfile
格式化虚拟内存文件
mkswap /volume1/swap/swapfile #演示结果 root@nas:/# mkswap /volume1/swap/swapfile Setting up swapspace version 1, size = 4 GiB (4294963200 bytes) no label, UUID=f2d16141-4e38-4872-ac39-1ac1fd7e4c90 root@nas:/#
开启虚拟内存
swapon /volume1/swap/swapfile
设置虚拟内存开机自启
打开群晖控制面板--任务计划--新增--触发的任务--用户定义的脚本
常规
任务名称:随意,自己分的清就行
用户账户:root
事件:开机任务设置--运行命令,复制下面的粘贴进去后点击确定。
#将/volume/swap/swapfile换成你自己实际的虚拟内存文件路径 swapon -p 1 /volume/swap/swapfile
点击确定
输入你的群晖NAS的密码后点击提交
添加任务成功
检查虚拟内存
执行命令,再查看虚拟内存大小。
free -h
可以看到虚拟内存大小已经更改成功
参考资料
网络资料:https://mp.weixin.qq.com/s/lNt2nhDk7DQ2rvEP4n87Dw
👇👇👇
- 感谢你赐予我前进的力量