Linux内存修改

Linux内存修改

        虚拟内存是为了满足物理内存不足采用的策略,利用磁盘空间虚拟出一块逻辑内存,用作虚拟内存的空间也就是交换分区。作为物理内存的扩展,Linux会在物理内存不足时,使用交换分区的逻辑内存,内核会把暂时不用的内存块信息写到交换空间,这样物理内存就得到了释放,这块儿内存就可以用于其他目的,而需要用到这些内容的时候,这些信息就会被重新从交换分区读入物理内存。Linux的内存管理采用的是分页存取机制,为了保证物理内存得到充分的利用,内核会在适当的时间把物理内存中不经常使用的数据块儿自动交换到虚拟内存中,而将充分使用的信息保留到物理内存中。
注:一般在各个云产商购买的云服务器都是不会给我们添加虚拟内存。
        例如通过阿里云安装的系统,不会自动给我们分配Swap虚拟内存空间;Swap分区或虚拟内存文件,是在系统物理内存不够用的时候,由系统内存管理程序将那些很长时间没有操作内存数据,临时保存到Swap分区虚拟内存文件中,以提高可用内存额度的一种机制。当那些程序要再次重新运行时,会再从Swap分区或虚拟内存文件中恢复之前保存的数据到内存中。
一开始用 free -m 和 df -h查看现在内存的情况
在这里插入图片描述
        创建 swap 分区,输入指令: dd if=/dev/zero of=/data/swap bs=512 count=4096000 (因为我的内存是2G,所以虚拟内存设为内存的1~2倍,则2048 * 2 = 4096)
此处的命令创建 swap 大小为bs*count=4096000(4G),如下图:
在这里插入图片描述
        通过 mkswap 命令将上面新建出的文件做成 swap 分区, 指令: mkswap /opt/swap
在这里插入图片描述
        查看内核参数 vm.swappiness 中的数值是否为0,如果为0则根据实际需要调整成,
查看指令:cat /proc/sys/vm/swappiness
调整指令:sysctl -w vm.swappiness=60
此处默认为0,根据需要调整为60.(我这里设置的是60,因为物理内存比较小,如果大量使用swap空间影响IO性能。还是要充分压榨物理内存。)
在这里插入图片描述
         输入 swapon /data/swap
在这里插入图片描述
        输入 echo “/data/swap swap swap defaults 0 0” >> /etc/fstab
(虽然现在已经生效,但是等下次服务器重启之后。该swap虚拟磁盘会失效,为保证永久生效,还需往/etc/fstab文件添加分区信息:)
在这里插入图片描述
        再次使用 cat /proc/swaps 查看swap分区是否启动, 如下图已经为启动成功.
在这里插入图片描述
        再次用 free -m 和 df -h 查看磁盘情况,可以看到 swap 交换区已经建立,磁盘相比一开始的容量减少了1.9G
在这里插入图片描述
        PS:相关操作会导致额外的IO开销,特别是,如果内存使用率已经非常高,而同时IO性能也不是很好的情况下,该机制其实会起到相反的效果:不仅系统性能提升较小(因为内存使用率已经非常高了),而且由于频繁的内存到Swap的切换操作,会导致产生大量额外的IO操作,导致IO性能进一步降低,最终反而降低了系统总体性能。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值