前言
用的linux最近在跑东西的时候cpu100%,看了下swap空间所在的机械硬盘的占用率很高,就想把swap空间改到固态硬盘看看是否能提升性能。这个地方我用的是centos7,但是理论上大部分linux都应该一样。
开始改
先看下
使用free命令查看内存信息,会返回系统的内存和swap大小等信息。
free -m
使用swapon命令查看swap空间信息,会返回系统的swap空间组成信息。
swapon -s
创建swap空间
先cd到你要放swap空间的目录,我这里是cd到固态硬盘的挂载目录/mnt/ssd。
使用dd命令生成swap空间文件,of=后面是文件的名称,这里就用swapfile作为文件名。count=后面可以调整你需要的swap空间大小,单位是G(bs指定的1G)。
使用mkswap命令处理生成的文件,文件名写第2步指定的swapfile。
使用swapon命令启用swap空间,文件名还是写第2步指定的swapfile。
到这里swap空间就生效了,但是重启后会恢复之前的状态,所以后面要配置启动生效的逻辑。
cd /mnt/ssd
dd if=/dev/zero of=swapfile bs=1G count=4
mkswap -f swapfile
swapon swapfile
删除老的swap空间
因为我们上面刚创建了一个,加上老的swap空间就是两个。因为用不到这么多swap空间,这里我们把老的swap空间删掉。
使用swapon命令查看swap空间,我们会发现有两个,使用swapoff把老的swap空间删掉,一般是按顺序显示的也就是说第一个是我们要删的,这里我老的swap空间是/dev/dm-1。
swapoff /dev/dm-1
启动生效配置
上面提到过我们的配置重启后会失效,所以这里需要让我们的配置启动生效。使用vi修改/etc/fstab文件。
vi /etc/fstab
注释掉老的swap空间,并且新增一行我们新的配置,修改后见下下。这里我只贴出来我们要修改的这块,第一行注释掉的就是我的老swap空间,第二行是我新加的,其它行大家保持不变。
#UUID=93aa0bfb-dd6e-4168-b2c6-21f9b58d02e4 swap swap defaults 0 0
/mnt/ssd/swapfile swap swap defaults 0 0
这里需要特别注意,一定要用文件路径,不要用UUID(mkswap、blkid swapfile会返回UUID),重启后虽然能进入系统但是swap分区会为0。配置是否正确可以保存文件后使用sawpon命令测试一下。
sawpon -a
这里如果你用了UUID就会报错 swapon: cannot find the device for UUID=93aa0bfb-dd6e-4168-b2c6-21f9b58d02e4
搞定
到这里就全部搞定了,cpu使用率也降低了很多😄