Linux配置系统缓存文件
安装Ubuntu时需要配置swap交换分区,但是安装好系统后如何增加缓存(swap)大小呢,下面介绍一下通过设置缓存文件配置linux缓存大小的方法。
首先在终端中输入命令htop,可以看到目前系统的缓存(swap)为0 K:
使用dd命令创建指定大小的文件,这里选择在根目录创建一个名为swapfile的文件(名称不一定非要为swapfile,可以自行选择):
sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
这里简单说明一下,/dev/zero是linux内核的一个虚拟设备,用于无限输出0,bs用于设置dd的输入输出块的大小,这里为1M,count是输出块的数量,4096个1M的输出块就是4G,dd命令的更多操作参考:linux中dd命令详解。
这个时候可以看到根目录下创建了一个大小为4GB的名为swapfile的文件:
将swapfile的文件权限修改为600,并将其配置为缓存文件(权限必须为600,如果设置为777或者755设置mkswap的时候也会提示让你设置成600):
sudo chmod 600 /swapfile
sudo mkswap /swapfile
出现下面的提示则说明创建缓存成功:
使用下面的命令使缓存文件生效:
sudo swapon /swapfile
这个时候使用htop可以看到系统已经挂载上了4GB大小的缓存了:
但是需要注意的是,swapon命令是一个临时命令,这意味着重启后需要重新使用swapon命令来使缓存文件生效,因此我们需要将上面的命令加入到/etc/rc.local中,这样每次开机会自动使用该命令生效缓存文件:
如需卸载缓存文件,使用命令:
sudo swapoff /swapfile
下面的命令可以查看目前已挂载的缓存文件:
sudo swapon -s
通过设置缓存文件方法相比较设置交换分区可以更灵活的配置缓存大小,这种方法允许同时挂载多个缓存文件,我的习惯是长期挂载一个比较小的缓存文件,在进行比较费内存的操作时(比如编译一个大型的库)再临时创建一个更大的缓存文件挂载上去,用完再卸载删除这个缓存文件,避免长期占用硬盘空间。