今天打开阿里云一看,我这 2G 的小内存一下干到了 1.9G, 吓的我赶紧百度,找到了这篇文章,结果还没配置虚拟内存呢,心想要不直接宝塔面板释放一下内存试试吧(反正我这博客也没人看,清缓存不会有啥大影响),清完之后直接降 0.8……
不过还是记录一下这篇文章,以后如果有需要的话可以直接配置。
原创地址:http://www.xianzilei.cn/blog/3(请大家尊重原创哟)
一、问题发现
- 最近在使用 jenkins 部署博客项目的时候发现总是失败,失败日志如下
1234509:20:23 [my-blog] $ /bin/sh -xe /tmp/jenkins4789431099800043038.sh09:20:23 ERROR: Maven JVM terminated unexpectedly with exit code 13709:20:23 SSH: Current build result is [FAILURE], not going to run.09:20:23 Finished: FAILURE - Google 走起,发现是由于内存不足导致 jenkins 被强制终止,想起前几天整了个 es 玩玩,结果那玩意太占用内存了,而我部署博客项目的阿里云服务器内存只有可怜的 2G(穷。。。), 于是按照大部分网上教程使用虚拟内存来弥补。
二、启用步骤
1. 查看服务器是否已经启用了虚拟内存
1 2 3 4 5 |
[root@iz2zehcv8qx0677zmjq8wnz ~]# free -h total used free shared buff/cache available Mem: 1.8G 1.5G 106M 512K 182M 136M Swap: 0B 0B 0B |
Mem: 表示物理内存统计 Swap: 表示硬盘上交换分区的使用情况,即内存不够时磁盘虚拟出来的内存,速度处理速度跟 Mem 区不是一个等级
可以看到 Swap 均为 0,确实没有启用。
2. 创建 swap 分区
就是创建一个文件,然后将这块文件格式化为 swap 格式
2.1 创建 swap 文件夹
在根目录下创建文件夹 swap(阿里云服务器默认没有 swap,需要自己手动创建)
1 2 |
[root@iz2zehcv8qx0677zmjq8wnz /]# mkdir /swap |
2.2 创建虚拟内存磁盘卷
可以视自己服务器的磁盘大小和需求进行创建,以 2G 为例
1 2 3 4 |
#count=2024288,2G左右 # 默认存放在/swap/swapadd dd if=/dev/zero of=/swap/swapadd bs=1024 count=2024288 |
创建时间稍微久一点点,耐心等一下下即可
2.3 启用虚拟内存服务
1 2 3 4 |
[root@iz2zehcv8qx0677zmjq8wnz /]# mkswap /swap/swapadd Setting up swapspace version 1, size = 2024284 KiB no label, UUID=45ebd39e-f8f6-43c4-9172-3c034c1a7827 |
2.4 配置 swappiness 参数
swappiness 指的就是启动虚拟内存的最小物理内存使用量,例如 vm.swappiness=80, 代表物理内存使用到了 80% 的时候启用虚拟内存,如果不配置默认为 0
- 先使用命令查看当前 swappiness 参数值
123[root@iz2zehcv8qx0677zmjq8wnz /]# cat /proc/sys/vm/swappiness0 - 修改 vm.swappiness 参数,采用推荐的 60 配置
123[root@iz2zehcv8qx0677zmjq8wnz /]# sysctl -w vm.swappiness=60vm.swappiness = 60 - 如果想要永久修改,则需要修改/etc/sysctl.conf 配置文件中的 vm.swappiness
123#使用vi命令修改下面参数为60vm.swappiness = 60
2.5 启用虚拟内存服务
1 2 3 |
[root@iz2zehcv8qx0677zmjq8wnz /]# swapon /swap/swapadd swapon: /swap/swapadd: insecure permissions 0644, 0600 suggested. |
2.6 再来查看内存使用情况
1 2 3 4 5 |
[root@iz2zehcv8qx0677zmjq8wnz /]# free -h total used free shared buff/cache available Mem: 1.8G 1.5G 75M 516K 207M 126M Swap: 1.9G 0B 1.9G |
可以看到 Swap 扩充到了 2G 左右
2.7 最后添加开机自动挂载
- 即在**/etc/fstab**文件添加如下一句即可
12/swaps/swaps swap swap defaults 0 0
三、相关操作
- 关闭虚拟内存服务
12swapoff -v /swap/swapadd
这个也需要等一小会会 - 移动虚拟内存空间如果当前的虚存所在的磁盘空间不够,可以首先关闭虚存服务,将其移动到别的磁盘,再启用即可。
12345#依次执行swapoff -v /swap/swapaddmv /swap/swapadd /mnt/swapswapon /swap/swapadd
四、总结
以上就是阿里云服务器启用虚拟内存的详细步骤,对于买不起大内存服务器的伙伴和学生党(就是穷。。。)来说,可以说是一种好的方式。如果有错误的地方,也请读者指正。
发表评论