前言
在实际生产环境中,我们的服务器由于内存配置资源有限,会遇到一些线上服务宕机或者内存溢出等问题,那么如何解决这些问题呢,一方面我们要确认问题的具体原因,通过排查自身应用服务的问题,一方面增加我们的内存资源配置,如果短期内无法增加内存资源配置,还可以通过增加虚拟内存配置,已实现系统内存资源的配置优化。在linux虚拟机中我们是通过创建swap分区,增加虚拟内存空间,实现服务器内存资源的优化。本节内容以centos7为例,实现服务器内存优化。通过top命令查看服务器是否有在使用虚拟内存。
正文
- 查看系统内存资源
命令:free -mh
- 创建swap分区
①使用dd命令创建名为swapdata的swap交换分区文件(文件名和目录任意)
命令:
dd if=/dev/zero of=/var/swapdata bs=1024 count=4194304
②参数说明
dev/zero:是Linux的一种特殊字符设备(输入设备),可以用来创建一个指定长度用于初始化的空文件,如临时交换文件,该设备无穷尽地提供0,可以提供任何你需要的数目。
of=/var/swapdata:swap分区存储目录和文件名称
bs=1024:单位数据块(block)同时读入/输出的块字节大小为1024 个字节即1KB,bs(即block size)。
count = 4194304 表示的是4G,即虚拟内存的总大小,单位是KB
- 将交换文件swapdata格式化为swap分区文件
命令:
mkswap /var/swapdata
- 修改swap分区文件权限
命令:
chmod -R 0600 /var/swapdata
- 挂载并激活分区
命令:
swapon /var/swapdata
- 使用vi编辑器编辑配置文件/etc/fstab,设置开机自动挂载该swap分区
/var/swapdata swap swap defaults 0 0
- 配置swap分区的使用机制
①可以通过swappiness值进行管理,swappiness表示系统对Swap分区的依赖程度,范围是0~100,数值越大,依赖程度越高,也就是越高越会使用Swap分区。例如该值配置为50,表示当物理内存的使用比例达到50%时,虚拟内存开始工作,这个比例值一般不宜配置过高,一般使用10,尽量优先使用物理内存。
②查看swappiness值配置
命令:
cat /proc/sys/vm/swappiness
③修改swappiness的配置值
命令:
sysctl vm.swappiness=10
④设置永久有效
命令:
echo "vm.swappiness = 10" >> /etc/sysctl.conf
- 关闭并删除swap分区虚拟内存
①关闭swap分区
命令:
swapoff /var/swapdata
②删除swap分区文件
命令:
rm -rf /var/swapdata
③删除fstab文件里追加的swap分区开机自动挂载配置内容
结语
至此,关于swap虚拟内存配置的内容到这里就结束了,这里要说明的是如果物理内存够用的话,我们尽量优先使用物理内存,swap虚拟内存作为辅助使用。本节内容到这里就结束了,下期见。。。。。。