胖蔡说技术
随便扯扯

Linux中swap虚拟内存配置

前言

在实际生产环境中,我们的服务器由于内存配置资源有限,会遇到一些线上服务宕机或者内存溢出等问题,那么如何解决这些问题呢,一方面我们要确认问题的具体原因,通过排查自身应用服务的问题,一方面增加我们的内存资源配置,如果短期内无法增加内存资源配置,还可以通过增加虚拟内存配置,已实现系统内存资源的配置优化。在linux虚拟机中我们是通过创建swap分区,增加虚拟内存空间,实现服务器内存资源的优化。本节内容以centos7为例,实现服务器内存优化。通过top命令查看服务器是否有在使用虚拟内存。

正文

  • 查看系统内存资源
    命令:free -mh
  • 创建swap分区
    ①使用dd命令创建名为swapdataswap交换分区文件(文件名和目录任意)

命令:

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虚拟内存作为辅助使用。本节内容到这里就结束了,下期见。。。。。。

赞(3) 打赏
转载请附上原文出处链接:胖蔡说技术 » Linux中swap虚拟内存配置
分享到: 更多 (0)

请小编喝杯咖啡~

支付宝扫一扫打赏

微信扫一扫打赏